Resource Library

Built on behavioral science. Tested in the wild. Most are free - take what you need and put it to work.

All Resources

No resources found

Try a different search term or adjust your filters.

const f = document.getElementById('pageseditorIframe'); const doc = f.contentDocument; const active = [...doc.querySelectorAll('.CodeMirror')].find(el => el.offsetHeight > 0); const text = atob('PHNlY3Rpb24gY2xhc3M9Imhlcm8iPgogIDxoMT5SZXNvdXJjZSBMaWJyYXJ5PC9oMT4KICA8cD5CdWlsdCBvbiBiZWhhdmlvcmFsIHNjaWVuY2UuIFRlc3RlZCBpbiB0aGUgd2lsZC4gTW9zdCBhcmUgZnJlZSAtIHRha2Ugd2hhdCB5b3UgbmVlZCBhbmQgcHV0IGl0IHRvIHdvcmsuPC9wPgo8L3NlY3Rpb24+Cgo8ZGl2IGNsYXNzPSJwYWdlLXdyYXAiPgoKICA8YXNpZGUgY2xhc3M9InNpZGViYXIiPgogICAgPGRpdiBjbGFzcz0icy1jYXJkIj4KICAgICAgPGRpdiBjbGFzcz0ic2VhcmNoLXdyYXAiPgogICAgICAgIDxzdmcgd2lkdGg9IjE0IiBoZWlnaHQ9IjE0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIuMiI+PGNpcmNsZSBjeD0iMTEiIGN5PSIxMSIgcj0iOCIvPjxwYXRoIGQ9Im0yMSAyMS00LjM1LTQuMzUiLz48L3N2Zz4KICAgICAgICA8aW5wdXQgaWQ9InNlYXJjaElucHV0IiB0eXBlPSJ0ZXh0IiBwbGFjZWhvbGRlcj0iU2VhcmNoIHJlc291cmNlcy4uLiIgb25pbnB1dD0iYXBwbHlGaWx0ZXJzKCkiIGF1dG9jb21wbGV0ZT0ib2ZmIiBhdXRvY29ycmVjdD0ib2ZmIiBhdXRvY2FwaXRhbGl6ZT0ib2ZmIiBzcGVsbGNoZWNrPSJmYWxzZSIgcmVhZG9ubHkgb25mb2N1cz0idGhpcy5yZW1vdmVBdHRyaWJ1dGUoJ3JlYWRvbmx5JykiPgogICAgICA8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0icmVzdWx0LWNvdW50IiBpZD0icmVzdWx0Q291bnQiPlNob3dpbmcgPHN0cm9uZyBpZD0iY291bnROdW0iPjYzPC9zdHJvbmc+IHJlc291cmNlczwvZGl2PgogICAgICA8YnV0dG9uIGNsYXNzPSJjbGVhci1idG4iIGlkPSJjbGVhckJ0biIgb25jbGljaz0iY2xlYXJBbGwoKSI+Q2xlYXIgYWxsIGZpbHRlcnM8L2J1dHRvbj4KICAgIDwvZGl2PgoKICAgIDxkaXYgY2xhc3M9InMtY2FyZCI+CiAgICAgIDxkaXYgY2xhc3M9InMtdGl0bGUiPkxlYXJuaW5nIFBhdGg8L2Rpdj4KICAgICAgPHVsIGNsYXNzPSJmaWx0ZXItbGlzdCIgaWQ9ImNhdEZpbHRlcnMiPjwvdWw+CiAgICA8L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJzLWNhcmQiPgogICAgICA8ZGl2IGNsYXNzPSJzLXRpdGxlIj5Gb3JtYXQ8L2Rpdj4KICAgICAgPHVsIGNsYXNzPSJmaWx0ZXItbGlzdCIgaWQ9ImZtdEZpbHRlcnMiPjwvdWw+CiAgICA8L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJzLWNhcmQiPgogICAgICA8ZGl2IGNsYXNzPSJzLXRpdGxlIj5QcmljZTwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJwcmljZS1vcHRzIj4KICAgICAgICA8bGFiZWwgY2xhc3M9InByaWNlLW9wdCI+PGlucHV0IHR5cGU9InJhZGlvIiBuYW1lPSJwcmljZSIgdmFsdWU9ImFsbCIgY2hlY2tlZCBvbmNoYW5nZT0iYXBwbHlGaWx0ZXJzKCkiPiBBbGwgcmVzb3VyY2VzPC9sYWJlbD4KICAgICAgICA8bGFiZWwgY2xhc3M9InByaWNlLW9wdCI+PGlucHV0IHR5cGU9InJhZGlvIiBuYW1lPSJwcmljZSIgdmFsdWU9ImZyZWUiIG9uY2hhbmdlPSJhcHBseUZpbHRlcnMoKSI+IEZyZWUgb25seTwvbGFiZWw+CiAgICAgICAgPGxhYmVsIGNsYXNzPSJwcmljZS1vcHQiPjxpbnB1dCB0eXBlPSJyYWRpbyIgbmFtZT0icHJpY2UiIHZhbHVlPSJwYWlkIiBvbmNoYW5nZT0iYXBwbHlGaWx0ZXJzKCkiPiBQYWlkIG9ubHk8L2xhYmVsPgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgogIDwvYXNpZGU+CgogIDxtYWluIGNsYXNzPSJtYWluIj4KICAgIDxkaXYgY2xhc3M9Im1haW4tYmFyIj4KICAgICAgPGgyIGlkPSJtYWluVGl0bGUiPkFsbCBSZXNvdXJjZXM8L2gyPgogICAgPC9kaXY+CiAgICA8ZGl2IGNsYXNzPSJncmlkIiBpZD0iY2FyZEdyaWQiPjwvZGl2PgogICAgPGRpdiBjbGFzcz0iZW1wdHkiIGlkPSJlbXB0eVN0YXRlIj4KICAgICAgPGgzPk5vIHJlc291cmNlcyBmb3VuZDwvaDM+CiAgICAgIDxwPlRyeSBhIGRpZmZlcmVudCBzZWFyY2ggdGVybSBvciBhZGp1c3QgeW91ciBmaWx0ZXJzLjwvcD4KICAgIDwvZGl2PgogIDwvbWFpbj4KCjwvZGl2PgoKPHNjcmlwdD4KLy8g4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQCi8vIFJFU09VUkNFIERBVEEKLy8gVXBkYXRlIHRoZSBgdXJsYCBmaWVsZCBmb3IgZWFjaCBpdGVtOgovLyAgIEZyZWUgLyBQYWlkIERpZ2l0YWwgICAtPiBMZWFybndvcmxkcyBwcm9kdWN0IFVSTAovLyAgIFRyYWluaW5nIFByb2dyYW0gV29ya2Jvb2sgLyBTaG9wIC0+IFNob3BpZnkgcHJvZHVjdCBVUkwKLy8g4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQCmNvbnN0IFJFU09VUkNFUyA9IFsKICB7CiAgICAibmFtZSI6ICJQcm9jZXNzIE1hcHBpbmcgV29ya2Jvb2siLAogICAgImZvcm1hdCI6ICJXb3JrYm9vayIsCiAgICAiZGVzY3JpcHRpb24iOiAiQSBoYW5kcy1vbiB3b3JrYm9vayBmb3IgYnVpbGRpbmcgZmx1ZW5jeSBpbiBwcm9jZXNzIG1hcHBpbmcgZnJvbSB0YXNrIGFuYWx5c2lzIHRvIHdvcmtmbG93IHJlZGVzaWduLiBVc2UgaXQgdG8gaWRlbnRpZnkgaW5lZmZpY2llbmNpZXMgYW5kIGRlc2lnbiBzY2FsYWJsZSwgYmVoYXZpb3ItaW5mb3JtZWQgcHJvY2Vzc2VzLiIsCiAgICAiY2F0ZWdvcmllcyI6IFsKICAgICAgIkJlaGF2aW9yYWwgU3lzdGVtcyBBbmFseXNpcyIKICAgIF0sCiAgICAicHJpY2UiOiAiIC0gIiwKICAgICJ0aWVyIjogIkZyZWUiLAogICAgInVybCI6ICJodHRwczovL21vcmFsaXNtYWNoaW5hLm15c2hvcGlmeS5jb20vcHJvZHVjdHMvcHJvY2Vzcy1tYXBwaW5nLXdvcmtib29rIgogIH0sCiAgewogICAgIm5hbWUiOiAiSG93IHRvIFN1cHBvcnQgQ29udmVyc2F0aW9ucyBpbiBWaXN1YWwgQW5hbHlzaXMiLAogICAgImZvcm1hdCI6ICJDaGVhdCBTaGVldCIsCiAgICAiZGVzY3JpcHRpb24iOiAiQSBwcmFjdGljYWwgcmVmZXJlbmNlIGZvciBsZWFkaW5nIGRhdGEtZHJpdmVuIGNvbnZlcnNhdGlvbnMgdXNpbmcgdmlzdWFsIGFuYWx5c2lzIHdpdGggc3Rha2Vob2xkZXJzLiBVc2UgaXQgdG8gdHJhbnNsYXRlIGdyYXBocyBpbnRvIGRlY2lzaW9ucyBhbmQgZW5zdXJlIGluc2lnaHRzIGRyaXZlIGFjdGlvbi4iLAogICAgImNhdGVnb3JpZXMiOiBbCiAgICAgICJQZXJmb3JtYW5jZSBNYW5hZ2VtZW50IiwKICAgICAgIkxlYWRlcnNoaXAiLAogICAgICAiQ29tcGFueSBDdWx0dXJlIgogICAgXSwKICAgICJwcmljZSI6ICIgLSAiLAogICAgInRpZXIiOiAiRnJlZSIsCiAgICAidXJsIjogImh0dHBzOi8vbW9yYWxpc21hY2hpbmEubXlzaG9waWZ5LmNvbS9wcm9kdWN0cy9ob3ctdG8tc3VwcG9ydC1jb252ZXJzYXRpb24taW4tdmlzdWFsLWFuYWx5c2lzIgogIH0sCiAgewogICAgIm5hbWUiOiAiQ3VzdG9tZXIgRXhwZXJpZW5jZSBEaWFnbm9zdGljIFRvb2wiLAogICAgImZvcm1hdCI6ICJBc3Nlc3NtZW50IiwKICAgICJkZXNjcmlwdGlvbiI6ICJBIHN5c3RlbXMtbGV2ZWwgd29ya3NoZWV0IGZvciBhbmFseXppbmcgY3VzdG9tZXIgZXhwZXJpZW5jZSB0aHJvdWdoIGEgYmVoYXZpb3JhbCBsZW5zLiBVc2UgaXQgdG8gaWRlbnRpZnkgY29udHJpYnV0aW5nIHN5c3RlbXMgYW5kIHJlaW5mb3JjZW1lbnQgc3RydWN0dXJlcyBkcml2aW5nIHJlY3VycmluZyBleHBlcmllbmNlIG91dGNvbWVzLiIsCiAgICAiY2F0ZWdvcmllcyI6IFsKICAgICAgIkJlaGF2aW9yYWwgU3lzdGVtcyBBbmFseXNpcyIsCiAgICAgICJNYXJrZXRpbmcgJiBDb25zdW1lciBCZWhhdmlvciBBbmFseXNpcyIKICAgIF0sCiAgICAicHJpY2UiOiAiIC0gIiwKICAgICJ0aWVyIjogIkZyZWUiLAogICAgInVybCI6ICJodHRwczovL21vcmFsaXNtYWNoaW5hLm15c2hvcGlmeS5jb20vcHJvZHVjdHMvY3VzdG9tZXItZXhwZXJpZW5jZS1kaWFnbm9zdGljLXRvb2wiCiAgfSwKICB7CiAgICAibmFtZSI6ICJHYXAgQW5hbHlzaXMgRXhjZWwgVGVtcGxhdGUiLAogICAgImZvcm1hdCI6ICJUZW1wbGF0ZSIsCiAgICAiZGVzY3JpcHRpb24iOiAiQW4gRXhjZWwgdGVtcGxhdGUgZm9yIGNvbXBhcmluZyBhbiBvcmdhbml6YXRpb24ncyBjdXJyZW50IHN0YXRlIHRvIGl0cyBkZXNpcmVkIGZ1dHVyZSBzdGF0ZSwgd2l0aCBhdXRvbWF0aWMgY2FsY3VsYXRpb25zIGJ1aWx0IGluLiBVc2UgaXQgdG8gYW5jaG9yIHN0cmF0ZWdpYyBwbGFubmluZywgY29uc3VsdGluZyBwcm9qZWN0cywgb3Igb3JnYW5pemF0aW9uYWwgYXNzZXNzbWVudHMuIiwKICAgICJjYXRlZ29yaWVzIjogWwogICAgICAiQmVoYXZpb3JhbCBTeXN0ZW1zIEFuYWx5c2lzIiwKICAgICAgIkJ1c2luZXNzIFNraWxscyIKICAgIF0sCiAgICAicHJpY2UiOiAiIC0gIiwKICAgICJ0aWVyIjogIkZyZWUiLAogICAgInVybCI6ICJodHRwczovL21vcmFsaXNtYWNoaW5hLm15c2hvcGlmeS5jb20vcHJvZHVjdHMvZ2FwLWFuYWx5c2lzLWV4Y2VsLXRlbXBsYXRlIgogIH0sCiAgewogICAgIm5hbWUiOiAiSFIgb3IgTm90IEhSIERlY2lzaW9uIFRyZWUiLAogICAgImZvcm1hdCI6ICJDaGVhdCBTaGVldCIsCiAgICAiZGVzY3JpcHRpb24iOiAiQSBiZWhhdmlvci1pbmZvcm1lZCBkZWNpc2lvbiB0cmVlIGZvciBkZXRlcm1pbmluZyB3aGVuIGEgcGVyZm9ybWFuY2UgaXNzdWUgcmVxdWlyZXMgSFIgaW52b2x2ZW1lbnQgdmVyc3VzIGRpcmVjdCBzdXBlcnZpc2lvbi4gVXNlIGl0IHRvIHJlc3BvbmQgY29uc2lzdGVudGx5IGFuZCBjb25maWRlbnRseSB0byBjb21tb24gd29ya3BsYWNlIGNoYWxsZW5nZXMuIiwKICAgICJjYXRlZ29yaWVzIjogWwogICAgICAiTGVhZGVyc2hpcCIsCiAgICAgICJQZXJmb3JtYW5jZSBNYW5hZ2VtZW50IiwKICAgICAgIlN1cGVydmlzaW9uIiwKICAgICAgIkNvbXBhbnkgQ3VsdHVyZSIKICAgIF0sCiAgICAicHJpY2UiOiAiIC0gIiwKICAgICJ0aWVyIjogIkZyZWUiLAogICAgInVybCI6ICJodHRwczovL21vcmFsaXNtYWNoaW5hLm15c2hvcGlmeS5jb20vcHJvZHVjdHMvaHItb3Itbm90LWhyLWRlY2lzaW9uLXRyZWUiCiAgfSwKICB7CiAgICAibmFtZSI6ICJQZXJmb3JtYW5jZSBNYW5hZ2VtZW50IFBsYW5uZXIiLAogICAgImZvcm1hdCI6ICJXb3Jrc2hlZXQiLAogICAgImRlc2NyaXB0aW9uIjogIkEgc3RlcC1ieS1zdGVwIHdvcmtzaGVldCBmb3IgZGVzaWduaW5nIGJlaGF2aW9yLWJhc2VkIHBlcmZvcm1hbmNlIG1hbmFnZW1lbnQgaW50ZXJ2ZW50aW9ucyBmcm9tIHByb2JsZW0gaWRlbnRpZmljYXRpb24gdGhyb3VnaCBtZWFzdXJlbWVudC4gVXNlIGl0IHRvIGJ1aWxkIGludGVudGlvbmFsIHN5c3RlbXMgdGhhdCBzdXBwb3J0IGVtcGxveWVlIGJlaGF2aW9yIGFuZCBvcmdhbml6YXRpb25hbCBnb2Fscy4iLAogICAgImNhdGVnb3JpZXMiOiBbCiAgICAgICJQZXJmb3JtYW5jZSBNYW5hZ2VtZW50IiwKICAgICAgIlN1cGVydmlzaW9uIgogICAgXSwKICAgICJwcmljZSI6ICIgLSAiLAogICAgInRpZXIiOiAiRnJlZSIsCiAgICAidXJsIjogImh0dHBzOi8vbW9yYWxpc21hY2hpbmEubXlzaG9waWZ5LmNvbS9wcm9kdWN0cy9wZXJmb3JtYW5jZS1tYW5hZ2VtZW50LXBsYW5uZXIiCiAgfSwKICB7CiAgICAibmFtZSI6ICJHYW1pZmljYXRpb24gVGlwcyAmIFRyaWNrcyIsCiAgICAiZm9ybWF0IjogIkNoZWF0IFNoZWV0IiwKICAgICJkZXNjcmlwdGlvbiI6ICJBIHByYWN0aWNhbCBvdmVydmlldyBvZiBnYW1pZmljYXRpb24gcHJpbmNpcGxlcyBhbmQgaG93IHRvIGFwcGx5IHRoZW0gaW4gdHJhaW5pbmcsIHRlYW0gc3lzdGVtcywgYW5kIGJlaGF2aW9yIGNoYW5nZSB3b3JrLiBVc2UgaXQgdG8gZGVzaWduIG1vcmUgZW5nYWdpbmcsIHJlaW5mb3JjZW1lbnQtYmFzZWQgZXhwZXJpZW5jZXMgd2l0aG91dCBvdmVyY29tcGxpY2F0aW5nIHRoZSBtZWNoYW5pY3MuIiwKICAgICJjYXRlZ29yaWVzIjogWwogICAgICAiUHJvZHVjdCBEZXZlbG9wbWVudCIKICAgIF0sCiAgICAicHJpY2UiOiAiIC0gIiwKICAgICJ0aWVyIjogIkZyZWUiLAogICAgInVybCI6ICJodHRwczovL21vcmFsaXNtYWNoaW5hLm15c2hvcGlmeS5jb20vcHJvZHVjdHMvZ2FtaWZpY2F0aW9uLXRpcHMtdHJpY2tzIgogIH0sCiAgewogICAgIm5hbWUiOiAiSW50ZXJ2aWV3IFByZXBhcmF0aW9uIFdvcmtzaGVldCIsCiAgICAiZm9ybWF0IjogIldvcmtzaGVldCIsCiAgICAiZGVzY3JpcHRpb24iOiAiQSBzdHJ1Y3R1cmVkIHdvcmtzaGVldCBmb3IgcHJlcGFyaW5nIGZvciBqb2IgaW50ZXJ2aWV3cyBhbmQgcmVmbGVjdGluZyBvbiB0aGVtIGFmdGVyd2FyZCB0aHJvdWdoIGEgYmVoYXZpb3JhbCBsZW5zLiBVc2UgaXQgdG8gYXNzZXNzIG9yZ2FuaXphdGlvbmFsIGZpdCwgaWRlbnRpZnkgcmVkIGFuZCBncmVlbiBmbGFncywgYW5kIGFwcHJvYWNoIGVhY2ggaW50ZXJ2aWV3IGludGVudGlvbmFsbHkuIiwKICAgICJjYXRlZ29yaWVzIjogWwogICAgICAiRm9yIEpvYiBTZWVrZXJzIgogICAgXSwKICAgICJwcmljZSI6ICIgLSAiLAogICAgInRpZXIiOiAiRnJlZSIsCiAgICAidXJsIjogImh0dHBzOi8vbW9yYWxpc21hY2hpbmEubXlzaG9waWZ5LmNvbS9wcm9kdWN0cy9pbnRlcnZpZXctcHJlcGVyYXRpb24td29ya3NoZWV0IgogIH0sCiAgewogICAgIm5hbWUiOiAiSm9iIENyYWZ0aW5nIFF1ZXN0aW9ubmFpcmUiLAogICAgImZvcm1hdCI6ICJJbnRlcmFjdGl2ZSIsCiAgICAiZGVzY3JpcHRpb24iOiAiQSBmcmVlIDE1LXF1ZXN0aW9uIHNlbGYtYXNzZXNzbWVudCBtZWFzdXJpbmcgaG93IGFjdGl2ZWx5IHlvdSByZXNoYXBlIHlvdXIgd29yayBhY3Jvc3MgdGFzaywgY29nbml0aXZlLCBhbmQgcmVsYXRpb25hbCBjcmFmdGluZyBkaW1lbnNpb25zLiBUYWtlcyBhYm91dCAzIG1pbnV0ZXMgYW5kIGRlbGl2ZXJzIGEgcGVyc29uYWxpemVkIHByb2ZpbGUgd2l0aCB0YXJnZXRlZCBncm93dGggc3VnZ2VzdGlvbnMuIiwKICAgICJjYXRlZ29yaWVzIjogWwogICAgICAiRm9yIEpvYiBTZWVrZXJzIiwKICAgICAgIkVtcGxveWVlIEhlYWx0aCAmIFdlbGxuZXNzIgogICAgXSwKICAgICJwcmljZSI6ICIgLSAiLAogICAgInRpZXIiOiAiRnJlZSIsCiAgICAidXJsIjogImh0dHBzOi8vbW9yYWxpc21hY2hpbmEtamNxLm5ldGxpZnkuYXBwLyIKICB9LAogIHsKICAgICJuYW1lIjogIlNhbXBsZSBJbnRlcnZpZXcgUXVlc3Rpb25zIiwKICAgICJmb3JtYXQiOiAiQ2hlYXQgU2hlZXQiLAogICAgImRlc2NyaXB0aW9uIjogIkEgY3VyYXRlZCBzZXQgb2YgYmVoYXZpb3ItYmFzZWQgaW50ZXJ2aWV3IHF1ZXN0aW9ucyBmb3IgYXNzZXNzaW5nIHdoZXRoZXIgYW4gb3JnYW5pemF0aW9uJ3Mgc3RhdGVkIHZhbHVlcyBzaG93IHVwIGluIGFjdHVhbCBwcmFjdGljZS4gVXNlIHRoZW0gdG8gZXZhbHVhdGUgcmVhbCBkZWNpc2lvbi1tYWtpbmcsIGFjY291bnRhYmlsaXR5LCBhbmQgZml0IGJlZm9yZSBhY2NlcHRpbmcgYW4gb2ZmZXIuIiwKICAgICJjYXRlZ29yaWVzIjogWwogICAgICAiRm9yIEpvYiBTZWVrZXJzIgogICAgXSwKICAgICJwcmljZSI6ICIgLSAiLAogICAgInRpZXIiOiAiRnJlZSIsCiAgICAidXJsIjogImh0dHBzOi8vbW9yYWxpc21hY2hpbmEubXlzaG9waWZ5LmNvbS9wcm9kdWN0cy9zYW1wbGUtaW50ZXJ2aWV3LXF1ZXN0aW9ucyIKICB9LAogIHsKICAgICJuYW1lIjogIkNyb3NzLVRyYWluaW5nIEV2YWx1YXRpb24iLAogICAgImZvcm1hdCI6ICJBc3Nlc3NtZW50IiwKICAgICJkZXNjcmlwdGlvbiI6ICJBIGRlY2lzaW9uLW1ha2luZyB3b3Jrc2hlZXQgZm9yIGV2YWx1YXRpbmcgd2hldGhlciBhIGNlcnRpZmljYXRpb24sIGNyZWRlbnRpYWwsIG9yIHNraWxsIGFyZWEgaXMgd29ydGggeW91ciB0aW1lIGFuZCBpbnZlc3RtZW50LiBVc2UgaXQgdG8gYXNzZXNzIGNyZWRpYmlsaXR5LCBjb3N0LCByZXF1aXJlbWVudHMsIGFuZCBjYXJlZXIgYWxpZ25tZW50IGJlZm9yZSBjb21taXR0aW5nLiIsCiAgICAiY2F0ZWdvcmllcyI6IFsKICAgICAgIkZvciBKb2IgU2Vla2VycyIsCiAgICAgICJCdXNpbmVzcyBTa2lsbHMiCiAgICBdLAogICAgInByaWNlIjogIiAtICIsCiAgICAidGllciI6ICJGcmVlIiwKICAgICJ1cmwiOiAiaHR0cHM6Ly9tb3JhbGlzbWFjaGluYS5teXNob3BpZnkuY29tL3Byb2R1Y3RzL2Nyb3NzLXRyYWluaW5nLWV2YWx1YXRpb24iCiAgfSwKICB7CiAgICAibmFtZSI6ICJLUEkgQ2hlYXQgU2hlZXQiLAogICAgImZvcm1hdCI6ICJDaGVhdCBTaGVldCIsCiAgICAiZGVzY3JpcHRpb24iOiAiQSBwbGFpbi1sYW5ndWFnZSByZWZlcmVuY2UgZm9yIHNlbGVjdGluZyBhbmQgdW5kZXJzdGFuZGluZyBrZXkgcGVyZm9ybWFuY2UgaW5kaWNhdG9ycyBhY3Jvc3MgY29yZSBidXNpbmVzcyBmdW5jdGlvbnMuIFVzZSBpdCB0byBtZWFzdXJlIHdoYXQgZHJpdmVzIGRlY2lzaW9ucyBhbmQgYXZvaWQgdHJhY2tpbmcgbWV0cmljcyB0aGF0IGRvbid0IGNvbm5lY3QgdG8gb3V0Y29tZXMuIiwKICAgICJjYXRlZ29yaWVzIjogWwogICAgICAiQnVzaW5lc3MgU2tpbGxzIiwKICAgICAgIkJlaGF2aW9yYWwgU3lzdGVtcyBBbmFseXNpcyIKICAgIF0sCiAgICAicHJpY2UiOiAiIC0gIiwKICAgICJ0aWVyIjogIkZyZWUiLAogICAgInVybCI6ICJodHRwczovL21vcmFsaXNtYWNoaW5hLm15c2hvcGlmeS5jb20vcHJvZHVjdHMva3BpLWNoZWF0LXNoZWV0IgogIH0sCiAgewogICAgIm5hbWUiOiAiR2FpbmluZyBMZWFkZXJzaGlwIEJ1eS1JbiBDaGVhdCBTaGVldCIsCiAgICAiZm9ybWF0IjogIkNoZWF0IFNoZWV0IiwKICAgICJkZXNjcmlwdGlvbiI6ICJBIHF1aWNrLXJlZmVyZW5jZSBndWlkZSBmb3IgY2hvb3NpbmcgdGhlIHJpZ2h0IGluZmx1ZW5jZSBzdHJhdGVneSB3aGVuIHBpdGNoaW5nIGlkZWFzIHRvIGxlYWRlcnMgYW5kIHN0YWtlaG9sZGVycy4gVXNlIGl0IHRvIG1hdGNoIHlvdXIgbWVzc2FnZSB0byB5b3VyIGF1ZGllbmNlIGFuZCBpbmNyZWFzZSB0aGUgbGlrZWxpaG9vZCBvZiBmb2xsb3ctdGhyb3VnaC4iLAogICAgImNhdGVnb3JpZXMiOiBbCiAgICAgICJMZWFkZXJzaGlwIiwKICAgICAgIk9DTSIKICAgIF0sCiAgICAicHJpY2UiOiAiIC0gIiwKICAgICJ0aWVyIjogIkZyZWUiLAogICAgInVybCI6ICJodHRwczovL21vcmFsaXNtYWNoaW5hLm15c2hvcGlmeS5jb20vcHJvZHVjdHMvZ2FpbmluZy1sZWFkZXJzaGlwLWJ1eS1pbi1jaGVhdC1zaGVldCIKICB9LAogIHsKICAgICJuYW1lIjogIkNvbnN1bWVyIEJlaGF2aW9yIFdvcmtib29rIiwKICAgICJmb3JtYXQiOiAiV29ya2Jvb2siLAogICAgImRlc2NyaXB0aW9uIjogIkEgZmlsbGFibGUgRXhjZWwgd29ya2Jvb2sgZm9yIGFuYWx5emluZyBjb25zdW1lciBiZWhhdmlvciB0aHJvdWdoIGEgYmVoYXZpb3ItYW5hbHl0aWMgbGVucy4gVXNlIGl0IHRvIG1hcCwgbWVhc3VyZSwgYW5kIGRlc2lnbiBpbnRlcnZlbnRpb25zIHRhcmdldGluZyBwdXJjaGFzaW5nIGJlaGF2aW9yIHVzaW5nIGZ1bmN0aW9uYWwgYXNzZXNzbWVudCBhbmQgQUJDIGRhdGEuIiwKICAgICJjYXRlZ29yaWVzIjogWwogICAgICAiTWFya2V0aW5nICYgQ29uc3VtZXIgQmVoYXZpb3IgQW5hbHlzaXMiLAogICAgICAiT0JNIgogICAgXSwKICAgICJwcmljZSI6ICIgLSAiLAogICAgInRpZXIiOiAiUGFpZCBEaWdpdGFsIiwKICAgICJ1cmwiOiAiaHR0cHM6Ly9tb3JhbGlzbWFjaGluYS5teXNob3BpZnkuY29tL3Byb2R1Y3RzL2NvbnN1bWVyLWJlaGF2aW9yLXdvcmtib29rIgogIH0sCiAgewogICAgIm5hbWUiOiAiQXBwbGljYW50IFRyYWNraW5nIFN5c3RlbSBJbmZvZ3JhcGhpYyIsCiAgICAiZm9ybWF0IjogIkNoZWF0IFNoZWV0IiwKICAgICJkZXNjcmlwdGlvbiI6ICJBIHZpc3VhbCBndWlkZSBleHBsYWluaW5nIGhvdyBBcHBsaWNhbnQgVHJhY2tpbmcgU3lzdGVtcyB3b3JrIGFuZCB3aGF0IEJDQkFzIG5lZWQgdG8gZG8gdG8gZ2V0IHRoZWlyIHJlc3VtZXMgcGFzdCBhdXRvbWF0ZWQgZmlsdGVycy4gVXNlIGl0IHRvIHVwZGF0ZSB5b3VyIHJlc3VtZSBmb3IgQVRTIGNvbXBhdGliaWxpdHkgYmVmb3JlIGFwcGx5aW5nIHRvIGNvcnBvcmF0ZSByb2xlcy4iLAogICAgImNhdGVnb3JpZXMiOiBbCiAgICAgICJGb3IgSm9iIFNlZWtlcnMiCiAgICBdLAogICAgInByaWNlIjogIiAtICIsCiAgICAidGllciI6ICJGcmVlIiwKICAgICJ1cmwiOiAiaHR0cHM6Ly9tb3JhbGlzbWFjaGluYS5teXNob3BpZnkuY29tL3Byb2R1Y3RzL2ZyZWUtYXBwbGljYW50LXRyYWNraW5nLXN5c3RlbS1pbmZvZ3JhcGhpYyIKICB9LAogIHsKICAgICJuYW1lIjogIkZyZWUgQURLQVIgVGVtcGxhdGUgKyBBREtBUiBCZWhhdmlvcmFsIEVsZW1lbnRzIiwKICAgICJmb3JtYXQiOiAiVGVtcGxhdGUiLAogICAgImRlc2NyaXB0aW9uIjogIkEgcGxhbm5pbmcgdGVtcGxhdGUgYW5kIGJlaGF2aW9yYWwgaW50ZXJwcmV0YXRpb24gb2YgZWFjaCBBREtBUiBjaGFuZ2UgbWFuYWdlbWVudCBjb21wb25lbnQsIGFkYXB0ZWQgZm9yIGJlaGF2aW9yIGFuYWx5c3RzLiBVc2UgaXQgdG8gZGVzaWduIHNjaWVuY2UtYmFja2VkIGNoYW5nZSBpbml0aWF0aXZlcyBhbmQgYWxpZ24gcmVpbmZvcmNlbWVudCBzeXN0ZW1zIHdpdGggbG9uZy10ZXJtIGJlaGF2aW9yIGNoYW5nZS4iLAogICAgImNhdGVnb3JpZXMiOiBbCiAgICAgICJPQ00iCiAgICBdLAogICAgInByaWNlIjogIiAtICIsCiAgICAidGllciI6ICJGcmVlIiwKICAgICJ1cmwiOiAiaHR0cHM6Ly9tb3JhbGlzbWFjaGluYS5teXNob3BpZnkuY29tL3Byb2R1Y3RzL2ZyZWUtYWRrYXItdGVtcGxhdGUtYWRrYXItYmVoYXZpb3JhbC1lbGVtZW50cyIKICB9LAogIHsKICAgICJuYW1lIjogIkZyZWUgQURESUUgVHJhbnNsYXRpb24iLAogICAgImZvcm1hdCI6ICJDaGVhdCBTaGVldCIsCiAgICAiZGVzY3JpcHRpb24iOiAiQSBvbmUtcGFnZSBndWlkZSBtYXBwaW5nIGVhY2ggcGhhc2Ugb2YgdGhlIEFERElFIGluc3RydWN0aW9uYWwgZGVzaWduIG1vZGVsIHRvIGJlaGF2aW9yYWwgc2NpZW5jZSBzdHJhdGVnaWVzLiBVc2UgaXQgdG8gZGVzaWduIHRyYWluaW5nLCBDRVVzLCBvciBvbmJvYXJkaW5nIHByb2dyYW1zIGdyb3VuZGVkIGluIHNoYXBpbmcsIHNjYWZmb2xkaW5nLCBhbmQgYmVoYXZpb3JhbCBhc3Nlc3NtZW50LiIsCiAgICAiY2F0ZWdvcmllcyI6IFsKICAgICAgIkxlYXJuaW5nICYgRGV2ZWxvcG1lbnQiCiAgICBdLAogICAgInByaWNlIjogIiAtICIsCiAgICAidGllciI6ICJGcmVlIiwKICAgICJ1cmwiOiAiaHR0cHM6Ly9tb3JhbGlzbWFjaGluYS5teXNob3BpZnkuY29tL3Byb2R1Y3RzL2ZyZWUtYWRkaWUtdHJhbnNsYXRpb24iCiAgfSwKICB7CiAgICAibmFtZSI6ICJGcmVlIFBsYW5uaW5nIFByb21wdHMgQ2hlYXQgU2hlZXQiLAogICAgImZvcm1hdCI6ICJDaGVhdCBTaGVldCIsCiAgICAiZGVzY3JpcHRpb24iOiAiQSBxdWljay1yZWZlcmVuY2UgZ3VpZGUgb24gd2hlbiBhbmQgaG93IHRvIHVzZSBwbGFubmluZyBwcm9tcHRzIHRvIGluY3JlYXNlIGZvbGxvdy10aHJvdWdoIG9uIGdvYWxzIGFuZCBpbnRlbnRpb25zLiBVc2UgaXQgdG8gZGVzaWduIGJlaGF2aW9yLWNoYW5nZSBpbnRlcnZlbnRpb25zLCBzdXBwb3J0IHN0YWZmIGdvYWwgcGxhbm5pbmcsIG9yIGluY3JlYXNlIGFjY291bnRhYmlsaXR5IGluIGNvYWNoaW5nLiIsCiAgICAiY2F0ZWdvcmllcyI6IFsKICAgICAgIlBlcmZvcm1hbmNlIE1hbmFnZW1lbnQiLAogICAgICAiRW1wbG95ZWUgSGVhbHRoICYgV2VsbG5lc3MiCiAgICBdLAogICAgInByaWNlIjogIiAtICIsCiAgICAidGllciI6ICJGcmVlIiwKICAgICJ1cmwiOiAiaHR0cHM6Ly9tb3JhbGlzbWFjaGluYS5teXNob3BpZnkuY29tL3Byb2R1Y3RzL2ZyZWUtcGxhbm5pbmctcHJvbXB0cy1jaGVhdC1zaGVldCIKICB9LAogIHsKICAgICJuYW1lIjogIlVtYXR0ZXIgJiBRdWFsaXR5IG9mIFdvcmsgTGlmZSBBc3Nlc3NtZW50cyIsCiAgICAiZm9ybWF0IjogIkFzc2Vzc21lbnQiLAogICAgImRlc2NyaXB0aW9uIjogIlR3byBFeGNlbC1iYXNlZCB0b29scyBmb3IgYXNzZXNzaW5nIHdvcmtwbGFjZSB3ZWxsbmVzcyAgLSAgb25lIG1hcHBpbmcgdGVhbS1kZWZpbmVkIHByaW9yaXRpZXMsIG9uZSBtZWFzdXJpbmcgcHN5Y2hvbG9naWNhbCBzYWZldHksIGVuZ2FnZW1lbnQsIGFuZCBidXJub3V0IHJpc2suIFVzZSB0aGVtIHRvIGxhdW5jaCBvciByZWZpbmUgd2VsbG5lc3MgaW5pdGlhdGl2ZXMgYWxpZ25lZCB3aXRoIHdoYXQgZW1wbG95ZWVzIGFjdHVhbGx5IG5lZWQuIiwKICAgICJjYXRlZ29yaWVzIjogWwogICAgICAiRW1wbG95ZWUgSGVhbHRoICYgV2VsbG5lc3MiLAogICAgICAiQ29tcGFueSBDdWx0dXJlIgogICAgXSwKICAgICJwcmljZSI6ICJGcmVlIiwKICAgICJ0aWVyIjogIkZyZWUiLAogICAgInVybCI6ICJodHRwczovL21vcmFsaXNtYWNoaW5hLm15c2hvcGlmeS5jb20vcHJvZHVjdHMvZnJlZS11bWF0dGVyLWFuZC1xdWFsaXR5LW9mLXdvcmstbGlmZS1hc3Nlc3NtZW50IgogIH0sCiAgewogICAgIm5hbWUiOiAiTldJIFdlbGxuZXNzIEludmVudG9yeSIsCiAgICAiZm9ybWF0IjogIkFzc2Vzc21lbnQiLAogICAgImRlc2NyaXB0aW9uIjogIkEgZGlhZ25vc3RpYyB0b29sIGZvciBldmFsdWF0aW5nIGFuIG9yZ2FuaXphdGlvbidzIHdlbGxuZXNzIGVmZm9ydHMgYWNyb3NzIGVpZ2h0IGRvbWFpbnMgaW5jbHVkaW5nIG1lbnRhbCBoZWFsdGgsIGNhcmVlciBkZXZlbG9wbWVudCwgYW5kIHNvY2lhbCBjb25uZWN0aW9uLiBVc2UgaXQgdG8gaWRlbnRpZnkgZ2FwcywgdHJhY2sgcHJvZ3Jlc3MsIGFuZCBidWlsZCBhIGJlaGF2aW9yLWluZm9ybWVkIGNhc2UgZm9yIHdlbGxuZXNzIGludmVzdG1lbnQuIiwKICAgICJjYXRlZ29yaWVzIjogWwogICAgICAiRW1wbG95ZWUgSGVhbHRoICYgV2VsbG5lc3MiCiAgICBdLAogICAgInByaWNlIjogIkZyZWUiLAogICAgInRpZXIiOiAiRnJlZSIsCiAgICAidXJsIjogImh0dHBzOi8vbW9yYWxpc21hY2hpbmEubXlzaG9waWZ5LmNvbS9wcm9kdWN0cy9mcmVlLW53aS13ZWxsbmVzcy1pbnZlbnRvcnkiCiAgfSwKICB7CiAgICAibmFtZSI6ICJNb3JhbCBJbmp1cnkgU3ltcHRvbSBTY2FsZSIsCiAgICAiZm9ybWF0IjogIkFzc2Vzc21lbnQiLAogICAgImRlc2NyaXB0aW9uIjogIkEgZ3VpZGVkIHNwcmVhZHNoZWV0IGZvciByZWZsZWN0aW5nIG9uIG1vcmFsIGluanVyeSBpbmRpY2F0b3JzICAtICBzaXR1YXRpb25zIHdoZXJlIHByb2Zlc3Npb25hbHMgYWN0IGFnYWluc3QgdGhlaXIgdmFsdWVzIG9yIHdpdG5lc3MgdW5ldGhpY2FsIHN5c3RlbXMgd2l0aG91dCByZWNvdXJzZS4gVXNlIGl0IGluIGNvYWNoaW5nLCBkZWJyaWVmcywgb3IgY2xpbWF0ZSBhc3Nlc3NtZW50cyB0byBzdXJmYWNlIHJvb3QgY2F1c2VzIG9mIGJ1cm5vdXQuIiwKICAgICJjYXRlZ29yaWVzIjogWwogICAgICAiRW1wbG95ZWUgSGVhbHRoICYgV2VsbG5lc3MiLAogICAgICAiRXRoaWNzIiwKICAgICAgIlN1cGVydmlzaW9uIiwKICAgICAgIlBlcmZvcm1hbmNlIE1hbmFnZW1lbnQiCiAgICBdLAogICAgInByaWNlIjogIkZyZWUiLAogICAgInRpZXIiOiAiRnJlZSIsCiAgICAidXJsIjogImh0dHBzOi8vbW9yYWxpc21hY2hpbmEubXlzaG9waWZ5LmNvbS9wcm9kdWN0cy9mcmVlLW1vcmFsLWluanVyeS1zeW1wdG9tLXNjYWxlIgogIH0sCiAgewogICAgIm5hbWUiOiAiRWxlbWVudHMgb2YgSGlnaGx5IEVuZ2FnZWQgQ3VsdHVyZXMiLAogICAgImZvcm1hdCI6ICJDaGVhdCBTaGVldCIsCiAgICAiZGVzY3JpcHRpb24iOiAiQSBwcmludGFibGUgZ3VpZGUgYnJlYWtpbmcgZG93biBzZXZlbiBjb3JlIGRyaXZlcnMgb2YgZW5nYWdlZCB3b3JrcGxhY2UgY3VsdHVyZXMsIGluY2x1ZGluZyB3aGF0IHRoZXkgbG9vayBsaWtlIGluIGFjdGlvbiBhbmQgd2hhdCBnZXRzIGluIHRoZSB3YXkuIFVzZSBpdCB0byBkaWFnbm9zZSBlbmdhZ2VtZW50IGdhcHMsIHN1cHBvcnQgbGVhZGVyc2hpcCBjb2FjaGluZywgb3IgZ3VpZGUgY3VsdHVyZSBhdWRpdHMuIiwKICAgICJjYXRlZ29yaWVzIjogWwogICAgICAiQ29tcGFueSBDdWx0dXJlIiwKICAgICAgIkxlYWRlcnNoaXAiCiAgICBdLAogICAgInByaWNlIjogIiAtICIsCiAgICAidGllciI6ICJGcmVlIiwKICAgICJ1cmwiOiAiaHR0cHM6Ly9tb3JhbGlzbWFjaGluYS5teXNob3BpZnkuY29tL3Byb2R1Y3RzL2ZyZWUtZWxlbWVudHMtb2YtaGlnaGx5LWVuZ2FnZWQtY3VsdHVyZXMiCiAgfSwKICB7CiAgICAibmFtZSI6ICJTTUUgR3VpZGVsaW5lcyBSZXNvdXJjZXMiLAogICAgImZvcm1hdCI6ICJDaGVhdCBTaGVldCIsCiAgICAiZGVzY3JpcHRpb24iOiAiQSBxdWljay1zdGFydCBndWlkZSBmb3IgYXNzZW1ibGluZyBleHBlcnQgcGFuZWxzIHRoYXQgcmVmbGVjdCBnZW51aW5lIGRpdmVyc2l0eSBvZiBpZGVudGl0eSwgZXhwZXJpZW5jZSwgYW5kIHBlcnNwZWN0aXZlLiBVc2UgaXQgdG8gZGVzaWduIGluY2x1c2l2ZSBDRVVzLCBjb25mZXJlbmNlcywgb3IgZXZlbnRzIHdoZXJlIHRoZSBzcGVha2VyIGxpbmV1cCByZWZsZWN0cyB5b3VyIHZhbHVlcy4iLAogICAgImNhdGVnb3JpZXMiOiBbCiAgICAgICJMZWFybmluZyAmIERldmVsb3BtZW50IiwKICAgICAgIkV0aGljcyIKICAgIF0sCiAgICAicHJpY2UiOiAiIC0gIiwKICAgICJ0aWVyIjogIkZyZWUiLAogICAgInVybCI6ICJodHRwczovL21vcmFsaXNtYWNoaW5hLm15c2hvcGlmeS5jb20vcHJvZHVjdHMvZnJlZS1zbWUtZ3VpZGVsaW5lcy1yZXNvdXJjZXMiCiAgfSwKICB7CiAgICAibmFtZSI6ICJQZXJmb3JtYW5jZSBBbmFseXNpcyBGbG93IENoYXJ0IiwKICAgICJmb3JtYXQiOiAiQ2hlYXQgU2hlZXQiLAogICAgImRlc2NyaXB0aW9uIjogIkEgb25lLXBhZ2UgZGVjaXNpb24gdHJlZSBmb3IgZGlhZ25vc2luZyB0aGUgcm9vdCBjYXVzZSBvZiBhIHBlcmZvcm1hbmNlIGdhcCBhbmQgY2hvb3NpbmcgdGhlIHJpZ2h0IGludGVydmVudGlvbiAgLSAgdHJhaW5pbmcsIHJlaW5mb3JjZW1lbnQsIG9yIGVudmlyb25tZW50YWwgY2hhbmdlLiBVc2UgaXQgdG8gZ3VpZGUgc3VwZXJ2aXNpb24gY29udmVyc2F0aW9ucyBhbmQgYXZvaWQgZGVmYXVsdGluZyB0byByZXRyYWluaW5nIHdoZW4gdGhlIHByb2JsZW0gbGllcyBlbHNld2hlcmUuIiwKICAgICJjYXRlZ29yaWVzIjogWwogICAgICAiUGVyZm9ybWFuY2UgTWFuYWdlbWVudCIsCiAgICAgICJTdXBlcnZpc2lvbiIKICAgIF0sCiAgICAicHJpY2UiOiAiRnJlZSIsCiAgICAidGllciI6ICJGcmVlIiwKICAgICJ1cmwiOiAiaHR0cHM6Ly9tb3JhbGlzbWFjaGluYS5teXNob3BpZnkuY29tL3Byb2R1Y3RzL2ZyZWUtcGVyZm9ybWFuY2UtYW5hbHlzaXMtZmxvdy1jaGFydCIKICB9LAogIHsKICAgICJuYW1lIjogIkNyaXRpY2FsIEZyaWVuZHMgUmVsYXRpb25zaGlwIFN0cmF0ZWdpZXMgR3VpZGUiLAogICAgImZvcm1hdCI6ICJDaGVhdCBTaGVldCIsCiAgICAiZGVzY3JpcHRpb24iOiAiQSBzdHJ1Y3R1cmVkIGd1aWRlIG91dGxpbmluZyBlaWdodCBzdHJhdGVnaWVzIGZvciBidWlsZGluZyBlZmZlY3RpdmUgcGVlciBjb2FjaGluZyBhbmQgYWNjb3VudGFiaWxpdHkgcmVsYXRpb25zaGlwcy4gVXNlIGl0IHRvIHNldCB1cCBwcm9mZXNzaW9uYWwgbWVudG9yc2hpcCBncm91cHMsIGRlZXBlbiBzdXBlcnZpc2lvbiByZWxhdGlvbnNoaXBzLCBvciByZWluZm9yY2UgcHN5Y2hvbG9naWNhbCBzYWZldHkgdGhyb3VnaCBzdHJ1Y3R1cmVkIHBlZXIgZmVlZGJhY2suIiwKICAgICJjYXRlZ29yaWVzIjogWwogICAgICAiU3VwZXJ2aXNpb24iLAogICAgICAiTGVhZGVyc2hpcCIsCiAgICAgICJDb21wYW55IEN1bHR1cmUiCiAgICBdLAogICAgInByaWNlIjogIkZyZWUiLAogICAgInRpZXIiOiAiRnJlZSIsCiAgICAidXJsIjogImh0dHBzOi8vbW9yYWxpc21hY2hpbmEubXlzaG9waWZ5LmNvbS9wcm9kdWN0cy9mcmVlLWNyaXRpY2FsLWZyaWVuZHMtcmVsYXRpb25zaGlwLXN0cmF0ZWdpZXMtZ3VpZGUiCiAgfSwKICB7CiAgICAibmFtZSI6ICJGZWVkYmFjayBCZXN0IFByYWN0aWNlcyBDaGVhdCBTaGVldCIsCiAgICAiZm9ybWF0IjogIkNoZWF0IFNoZWV0IiwKICAgICJkZXNjcmlwdGlvbiI6ICJBIGNvbmNpc2UgcmVmZXJlbmNlIHN1bW1hcml6aW5nIGV2aWRlbmNlLWJhc2VkIHByaW5jaXBsZXMgZm9yIGRlbGl2ZXJpbmcgYW5kIHJlY2VpdmluZyBmZWVkYmFjayBlZmZlY3RpdmVseSBpbiB3b3JrcGxhY2Ugc2V0dGluZ3MuIFVzZSBpdCB0byBpbXByb3ZlIGZlZWRiYWNrIHF1YWxpdHkgaW4gc3VwZXJ2aXNpb24sIHBlcmZvcm1hbmNlIHJldmlld3MsIG9yIHRlYW0gY29udmVyc2F0aW9ucy4iLAogICAgImNhdGVnb3JpZXMiOiBbCiAgICAgICJQZXJmb3JtYW5jZSBNYW5hZ2VtZW50IiwKICAgICAgIlN1cGVydmlzaW9uIiwKICAgICAgIkxlYWRlcnNoaXAiCiAgICBdLAogICAgInByaWNlIjogIiAtICIsCiAgICAidGllciI6ICJGcmVlIiwKICAgICJ1cmwiOiAiaHR0cHM6Ly9tb3JhbGlzbWFjaGluYS5teXNob3BpZnkuY29tL3Byb2R1Y3RzL2ZyZWUtZmVlZGJhY2stYmVzdC1wcmFjdGljZXMtY2hlYXQtc2hlZXQiCiAgfSwKICB7CiAgICAibmFtZSI6ICJHYW50dCBDaGFydCBUZW1wbGF0ZSIsCiAgICAiZm9ybWF0IjogIlRlbXBsYXRlIiwKICAgICJkZXNjcmlwdGlvbiI6ICJBbiBlZGl0YWJsZSBFeGNlbCBHYW50dCBjaGFydCB3aXRoIGF1dG9tYXRpYyB0aW1lbGluZSB2aXN1YWxpemF0aW9uLCB0YXNrIG93bmVycywgYW5kIHByb2dyZXNzIHRyYWNraW5nLiBVc2UgaXQgdG8gcGxhbiBwcm9qZWN0IHRpbWVsaW5lcywgY29vcmRpbmF0ZSB0ZWFtIGRlbGl2ZXJhYmxlcywgYW5kIGNvbW11bmljYXRlIHByb2dyZXNzIGFjcm9zcyBPQk0gb3IgY2xpZW50IHdvcmsuIiwKICAgICJjYXRlZ29yaWVzIjogWwogICAgICAiUHJvamVjdCBNYW5hZ2VtZW50IiwKICAgICAgIkJ1c2luZXNzIFNraWxscyIKICAgIF0sCiAgICAicHJpY2UiOiAiIC0gIiwKICAgICJ0aWVyIjogIkZyZWUiLAogICAgInVybCI6ICJodHRwczovL21vcmFsaXNtYWNoaW5hLm15c2hvcGlmeS5jb20vcHJvZHVjdHMvZnJlZS1nYW50LWNoYXJ0LXRlbXBsYXRlIgogIH0sCiAgewogICAgIm5hbWUiOiAiUmlzay1CZW5lZml0IEFuYWx5c2lzIFRlbXBsYXRlIiwKICAgICJmb3JtYXQiOiAiVGVtcGxhdGUiLAogICAgImRlc2NyaXB0aW9uIjogIkEgc2NvcmluZyB0ZW1wbGF0ZSBmb3IgYW5hbHl6aW5nIHRoZSBwb3RlbnRpYWwgcmlza3MgYW5kIGJlbmVmaXRzIG9mIG5ldyBpbml0aWF0aXZlcywgd2l0aCBidWlsdC1pbiBjb25zZXF1ZW5jZSBtYXBwaW5nIGFuZCBhIHZpc3VhbCBoZWF0IGdyaWQuIFVzZSBpdCB0byBicmluZyBkYXRhLWRyaXZlbiB0cmFuc3BhcmVuY3kgdG8gb3JnYW5pemF0aW9uYWwgZGVjaXNpb25zIGFuZCBPQk0gaW50ZXJ2ZW50aW9ucy4iLAogICAgImNhdGVnb3JpZXMiOiBbCiAgICAgICJQcm9qZWN0IE1hbmFnZW1lbnQiLAogICAgICAiT0JNIiwKICAgICAgIkJ1c2luZXNzIFNraWxscyIKICAgIF0sCiAgICAicHJpY2UiOiAiIC0gIiwKICAgICJ0aWVyIjogIkZyZWUiLAogICAgInVybCI6ICJodHRwczovL21vcmFsaXNtYWNoaW5hLm15c2hvcGlmeS5jb20vcHJvZHVjdHMvZnJlZS1yaXNrLWJlbmVmaXQtYW5hbHlzaXMiCiAgfSwKICB7CiAgICAibmFtZSI6ICJHYW1pZmljYXRpb24gTWVjaGFuaWNzIENoZWF0IFNoZWV0IiwKICAgICJmb3JtYXQiOiAiQ2hlYXQgU2hlZXQiLAogICAgImRlc2NyaXB0aW9uIjogIkEgb25lLXBhZ2UgcmVmZXJlbmNlIGJyZWFraW5nIGRvd24gY29yZSBnYW1pZmljYXRpb24gbWVjaGFuaWNzIGFuZCB0aGUgYmVoYXZpb3JhbCBmdW5jdGlvbnMgZWFjaCBvbmUgdGFwcyBpbnRvLiBVc2UgaXQgdG8gZGVzaWduIHRyYWluaW5nLCB0b2tlbiBlY29ub21pZXMsIG9yIGluY2VudGl2ZSBzdHJ1Y3R1cmVzIHdpdGggaW50ZW50aW9uLiIsCiAgICAiY2F0ZWdvcmllcyI6IFsKICAgICAgIkxlYXJuaW5nICYgRGV2ZWxvcG1lbnQiLAogICAgICAiUHJvZHVjdCBEZXZlbG9wbWVudCIKICAgIF0sCiAgICAicHJpY2UiOiAiIC0gIiwKICAgICJ0aWVyIjogIkZyZWUiLAogICAgInVybCI6ICJodHRwczovL21vcmFsaXNtYWNoaW5hLm15c2hvcGlmeS5jb20vcHJvZHVjdHMvZnJlZS1nYW1pZmljYXRpb24tbWVjaGFuaWNzLWNoZWF0LXNoZWV0IgogIH0sCiAgewogICAgIm5hbWUiOiAiUHN5Y2hvbG9naWNhbCBTYWZldHkgSW52ZW50b3J5IiwKICAgICJmb3JtYXQiOiAiQXNzZXNzbWVudCIsCiAgICAiZGVzY3JpcHRpb24iOiAiQSBzcHJlYWRzaGVldC1iYXNlZCBpbnZlbnRvcnkgZm9yIGFzc2Vzc2luZyBwc3ljaG9sb2dpY2FsIHNhZmV0eSBhY3Jvc3MgYSB0ZWFtIG9yIG9yZ2FuaXphdGlvbiwgd2l0aCBzY29yaW5nIGd1aWRhbmNlIGFuZCBhY3Rpb24gcGxhbm5pbmcgcHJvbXB0cy4gVXNlIGl0IHRvIGJlbmNobWFyayB0ZWFtIGNsaW1hdGUsIGlkZW50aWZ5IGdhcHMsIGFuZCBzZXQgbWVhc3VyYWJsZSBnb2FscyBmb3IgY3VsdHVyZSBjaGFuZ2UuIiwKICAgICJjYXRlZ29yaWVzIjogWwogICAgICAiQ29tcGFueSBDdWx0dXJlIiwKICAgICAgIkxlYWRlcnNoaXAiLAogICAgICAiU3VwZXJ2aXNpb24iCiAgICBdLAogICAgInByaWNlIjogIiAtICIsCiAgICAidGllciI6ICJGcmVlIiwKICAgICJ1cmwiOiAiaHR0cHM6Ly9tb3JhbGlzbWFjaGluYS5teXNob3BpZnkuY29tL3Byb2R1Y3RzL2ZyZWUtcHN5Y2hvbG9naWNhbC1zYWZldHktaW52ZW50b3J5IgogIH0sCiAgewogICAgIm5hbWUiOiAiRmVlZGJhY2sgUHJlZmVyZW5jZXMgU3VydmV5IiwKICAgICJmb3JtYXQiOiAiQXNzZXNzbWVudCIsCiAgICAiZGVzY3JpcHRpb24iOiAiQSBmaWxsYWJsZSBzdXJ2ZXkgZm9yIGxlYXJuaW5nIGhvdyBpbmRpdmlkdWFsIHRlYW0gbWVtYmVycyBwcmVmZXIgdG8gcmVjZWl2ZSBmZWVkYmFjayAgLSAgdGltaW5nLCBmb3JtYXQsIHByaXZhY3ksIGFuZCB3aGF0IHRoZXkgZmluZCByZWluZm9yY2luZy4gVXNlIGl0IHRvIHBlcnNvbmFsaXplIHlvdXIgcmVpbmZvcmNlbWVudCBhcHByb2FjaCBhbmQgYnVpbGQgcHN5Y2hvbG9naWNhbCBzYWZldHkgaW4gc3VwZXJ2aXNpb24uIiwKICAgICJjYXRlZ29yaWVzIjogWwogICAgICAiUGVyZm9ybWFuY2UgTWFuYWdlbWVudCIsCiAgICAgICJTdXBlcnZpc2lvbiIsCiAgICAgICJDb21wYW55IEN1bHR1cmUiCiAgICBdLAogICAgInByaWNlIjogIiAtICIsCiAgICAidGllciI6ICJGcmVlIiwKICAgICJ1cmwiOiAiaHR0cHM6Ly9tb3JhbGlzbWFjaGluYS5teXNob3BpZnkuY29tL3Byb2R1Y3RzL2ZlZWRiYWNrLXByZWZlcmVuY2VzLXN1cnZleSIKICB9LAogIHsKICAgICJuYW1lIjogIkludGVydmlldyBQcmVwICYgUmVmbGVjdGlvbiBXb3Jrc2hlZXQiLAogICAgImZvcm1hdCI6ICJXb3Jrc2hlZXQiLAogICAgImRlc2NyaXB0aW9uIjogIkEgY29tcHJlaGVuc2l2ZSB0b29sIGZvciBiZWZvcmUtYW5kLWFmdGVyIGludGVydmlldyByZWZsZWN0aW9uLCBpbmNsdWRpbmcgYSBiZWhhdmlvcmFsIHNlbGYtbW9uaXRvcmluZyBwbGFuLCBhbGlnbm1lbnQgY2hlY2tsaXN0LCBhbmQgc3RydWN0dXJlZCBwb3N0LWludGVydmlldyBkZWJyaWVmLiBVc2UgaXQgdG8gZXZhbHVhdGUgZml0LCBzdXJmYWNlIHJlZCBmbGFncywgYW5kIHRha2UgaW50ZW50aW9uYWwgbmV4dCBzdGVwcy4iLAogICAgImNhdGVnb3JpZXMiOiBbCiAgICAgICJGb3IgSm9iIFNlZWtlcnMiCiAgICBdLAogICAgInByaWNlIjogIiAtICIsCiAgICAidGllciI6ICJGcmVlIiwKICAgICJ1cmwiOiAiaHR0cHM6Ly9tb3JhbGlzbWFjaGluYS5teXNob3BpZnkuY29tL3Byb2R1Y3RzL2ludGVydmlldy1wcmVwLXJlZmxlY3Rpb24td29ya3NoZWV0IgogIH0sCiAgewogICAgIm5hbWUiOiAiU2VsZi1BZHZvY2FjeSBXb3Jrc2hlZXQiLAogICAgImZvcm1hdCI6ICJBc3Nlc3NtZW50IiwKICAgICJkZXNjcmlwdGlvbiI6ICJBbiBpbnRlcmFjdGl2ZSB3b3Jrc2hlZXQgZm9yIHJlZmxlY3Rpbmcgb24gc3RyZW5ndGhzLCB2YWx1ZXMsIGxlYWRlcnNoaXAgc3R5bGUsIGFuZCBzZWxmLWFkdm9jYWN5IGdvYWxzIGFjcm9zcyBwZXJzb25hbCwgcGVlciwgYW5kIG9yZ2FuaXphdGlvbmFsIGNvbnRleHRzLiBVc2UgaXQgaW4gc3VwZXJ2aXNpb24sIGNvYWNoaW5nLCBvciBwcm9mZXNzaW9uYWwgZGV2ZWxvcG1lbnQgdG8gc3VwcG9ydCBhdXRvbm9teSBhbmQgZ29hbC1kaXJlY3RlZCBiZWhhdmlvci4iLAogICAgImNhdGVnb3JpZXMiOiBbCiAgICAgICJGb3IgSm9iIFNlZWtlcnMiLAogICAgICAiU3VwZXJ2aXNpb24iLAogICAgICAiRW1wbG95ZWUgSGVhbHRoICYgV2VsbG5lc3MiCiAgICBdLAogICAgInByaWNlIjogIiAtICIsCiAgICAidGllciI6ICJGcmVlIiwKICAgICJ1cmwiOiAiaHR0cHM6Ly9tb3JhbGlzbWFjaGluYS5teXNob3BpZnkuY29tL3Byb2R1Y3RzL3NlbGYtYWR2b2NhY3ktd29ya3NoZWV0IgogIH0sCiAgewogICAgIm5hbWUiOiAiU2VsZi1BZHZvY2FjeSBSYXRpbmcgU2NhbGUiLAogICAgImZvcm1hdCI6ICJBc3Nlc3NtZW50IiwKICAgICJkZXNjcmlwdGlvbiI6ICJBIGZpbGxhYmxlIHJhdGluZyBzY2FsZSBmb3IgcmVmbGVjdGluZyBvbiAxMyBjb3JlIHNlbGYtYWR2b2NhY3kgYmVoYXZpb3JzIGluY2x1ZGluZyBhc3NlcnRpdmVuZXNzLCBhc2tpbmcgcXVlc3Rpb25zLCBhbmQga25vd2luZyB5b3VyIHJpZ2h0cy4gVXNlIGl0IGluIHN1cGVydmlzaW9uIG9yIGNvYWNoaW5nIHRvIHN1cHBvcnQgc3RhZmYgZGV2ZWxvcG1lbnQsIGdvYWwtc2V0dGluZywgYW5kIGluZGVwZW5kZW50IGRlY2lzaW9uLW1ha2luZy4iLAogICAgImNhdGVnb3JpZXMiOiBbCiAgICAgICJGb3IgSm9iIFNlZWtlcnMiLAogICAgICAiU3VwZXJ2aXNpb24iLAogICAgICAiRW1wbG95ZWUgSGVhbHRoICYgV2VsbG5lc3MiCiAgICBdLAogICAgInByaWNlIjogIiAtICIsCiAgICAidGllciI6ICJGcmVlIiwKICAgICJ1cmwiOiAiaHR0cHM6Ly9tb3JhbGlzbWFjaGluYS5teXNob3BpZnkuY29tL3Byb2R1Y3RzL3NlbGYtYWR2b2NhY3ktcmF0aW5nLXNjYWxlIgogIH0sCiAgewogICAgIm5hbWUiOiAiU01BUlQgS1BJcyBDaGVja2xpc3QiLAogICAgImZvcm1hdCI6ICJDaGVja2xpc3QiLAogICAgImRlc2NyaXB0aW9uIjogIkEgcHJpbnRhYmxlIGNoZWNrbGlzdCB3YWxraW5nIHRocm91Z2ggdGhlIGZlYXR1cmVzIG9mIGEgd2VsbC1mb3JtZWQgS1BJICAtICBTcGVjaWZpYywgTWVhc3VyYWJsZSwgQWNoaWV2YWJsZSwgUmVsZXZhbnQsIGFuZCBUaW1lLWJvdW5kLiBVc2UgaXQgdG8gZXZhbHVhdGUsIHJldmlzZSwgb3IgZGVzaWduIHBlcmZvcm1hbmNlIG1ldHJpY3MgdGhhdCBhcmUgZnVuY3Rpb25hbCBhbmQgYmVoYXZpb3JhbGx5IHNvdW5kLiIsCiAgICAiY2F0ZWdvcmllcyI6IFsKICAgICAgIkJ1c2luZXNzIFNraWxscyIsCiAgICAgICJPQk0iCiAgICBdLAogICAgInByaWNlIjogIiAtICIsCiAgICAidGllciI6ICJGcmVlIiwKICAgICJ1cmwiOiAiaHR0cHM6Ly9tb3JhbGlzbWFjaGluYS5teXNob3BpZnkuY29tL3Byb2R1Y3RzL3NtYXJ0LWtwaXMtY2hlY2tsaXN0IgogIH0sCiAgewogICAgIm5hbWUiOiAiQnVzaW5lc3MgQnVpbGRpbmcgQnVuZGxlIiwKICAgICJmb3JtYXQiOiAiVGVtcGxhdGUgQnVuZGxlIiwKICAgICJkZXNjcmlwdGlvbiI6ICJBbiAxOCsgdGVtcGxhdGUgYnVuZGxlIGNvdmVyaW5nIGJ1c2luZXNzIHBsYW5uaW5nLCBtYXJrZXQgcmVzZWFyY2gsIGNsaWVudCBhZ3JlZW1lbnRzLCBvbmJvYXJkaW5nLCBhbmQgb3BlcmF0aW9uYWwgc3lzdGVtcyBmb3Igc2VydmljZS1iYXNlZCBidXNpbmVzc2VzLiBVc2UgaXQgdG8gbGF1bmNoIG9yIHN0cnVjdHVyZSBhIHByaXZhdGUgcHJhY3RpY2UsIE9CTSBmaXJtLCBvciBjb25zdWx0aW5nIGJ1c2luZXNzIHdpdGhvdXQgc3RhcnRpbmcgZnJvbSBzY3JhdGNoLiIsCiAgICAiY2F0ZWdvcmllcyI6IFsKICAgICAgIkJ1c2luZXNzIFNraWxscyIKICAgIF0sCiAgICAicHJpY2UiOiAiIC0gIiwKICAgICJ0aWVyIjogIlBhaWQgRGlnaXRhbCIsCiAgICAidXJsIjogImh0dHBzOi8vbW9yYWxpc21hY2hpbmEubXlzaG9waWZ5LmNvbS9wcm9kdWN0cy9idXNpbmVzcy1idWlsZGluZy1idW5kbGUiCiAgfSwKICB7CiAgICAibmFtZSI6ICJCZWhhdmlvcmFsIE1hcmtldGluZyBTdHJhdGVneSBQYWNrIiwKICAgICJmb3JtYXQiOiAiVGVtcGxhdGUgQnVuZGxlIiwKICAgICJkZXNjcmlwdGlvbiI6ICJBIGZpdmUtdGVtcGxhdGUgYnVuZGxlIGZvciBidWlsZGluZyBhIG1hcmtldGluZyBzdHJhdGVneSBncm91bmRlZCBpbiBiZWhhdmlvcmFsIHNjaWVuY2UgIC0gIG1hcmtldCBhbmFseXNpcywgY29tcGV0aXRpdmUgYW5hbHlzaXMsIGJlaGF2aW9yYWwgcGVyc29uYXMsIGN1c3RvbWVyIHNlZ21lbnRhdGlvbiwgYW5kIGEgZnVsbCBzdHJhdGVnaWMgbWFya2V0aW5nIHBsYW4uIFVzZSBpdCB0byBkZXNpZ24gYXVkaWVuY2UtZmlyc3QgbWFya2V0aW5nIGJhY2tlZCBieSBkYXRhIGFuZCBiZWhhdmlvcmFsIHByaW5jaXBsZXMuIiwKICAgICJjYXRlZ29yaWVzIjogWwogICAgICAiTWFya2V0aW5nICYgQ29uc3VtZXIgQmVoYXZpb3IgQW5hbHlzaXMiLAogICAgICAiQnVzaW5lc3MgU2tpbGxzIgogICAgXSwKICAgICJwcmljZSI6ICIgLSAiLAogICAgInRpZXIiOiAiUGFpZCBEaWdpdGFsIiwKICAgICJ1cmwiOiAiaHR0cHM6Ly9tb3JhbGlzbWFjaGluYS5teXNob3BpZnkuY29tL3Byb2R1Y3RzL2JlaGF2aW9yYWwtbWFya2V0aW5nLXN0cmF0ZWd5LXBhY2siCiAgfSwKICB7CiAgICAibmFtZSI6ICJDdWx0dXJhbCBTeXN0ZW1zIFRlbXBsYXRlIFBhY2siLAogICAgImZvcm1hdCI6ICJUZW1wbGF0ZSIsCiAgICAiZGVzY3JpcHRpb24iOiAiVHdvIGVkaXRhYmxlIHRlbXBsYXRlcyBmb3IgbW9kZWxpbmcgbWV0YWNvbnRpbmdlbmNpZXMgYW5kIG1hY3JvY29udGluZ2VuY2llcyAgLSAgdGhlIGNvcmUgYW5hbHl0aWNhbCB0b29scyBvZiBjdWx0dXJhbCBzeXN0ZW1zIGFuYWx5c2lzLiBVc2UgdGhlbSB0byBkZXNpZ24gb3JnYW5pemF0aW9uYWwgY2hhbmdlIGludGVydmVudGlvbnMsIHZpc3VhbGl6ZSBob3cgZ3JvdXAgYmVoYXZpb3IgaXMgc2VsZWN0ZWQgb3ZlciB0aW1lLCBvciBzdXBwb3J0IHRoZXNpcyBhbmQgc3VwZXJ2aXNpb24gd29yay4iLAogICAgImNhdGVnb3JpZXMiOiBbCiAgICAgICJCZWhhdmlvcmFsIFN5c3RlbXMgQW5hbHlzaXMiLAogICAgICAiQ29tcGFueSBDdWx0dXJlIiwKICAgICAgIk9CTSIKICAgIF0sCiAgICAicHJpY2UiOiAiIC0gIiwKICAgICJ0aWVyIjogIkZyZWUiLAogICAgInVybCI6ICJodHRwczovL21vcmFsaXNtYWNoaW5hLm15c2hvcGlmeS5jb20vcHJvZHVjdHMvY3VsdHVyYWwtc3lzdGVtcy10ZW1wbGF0ZS1wYWNrLW1ldGEtbWFjcm8tY29udGluZ2VuY3ktdGVtcGxhdGVzIgogIH0sCiAgewogICAgIm5hbWUiOiAiU3VwZXJzeXN0ZW0gT3JnYW5pemF0aW9uYWwgTGV2ZWwgV29ya3NoZWV0IiwKICAgICJmb3JtYXQiOiAiV29ya3NoZWV0IiwKICAgICJkZXNjcmlwdGlvbiI6ICJBIGd1aWRlZCB3b3Jrc2hlZXQgZm9yIGNvbmR1Y3Rpbmcgb3JnYW5pemF0aW9uYWwtbGV2ZWwgYmVoYXZpb3JhbCBzeXN0ZW1zIGFuYWx5c2lzICAtICBjbGFyaWZ5aW5nIHN0cmF0ZWdpYyBnb2FscywgY3VzdG9tZXIgZXhwZWN0YXRpb25zLCBhbmQgcGVyZm9ybWFuY2UgZGltZW5zaW9ucy4gVXNlIGl0IGluIHRlYW0gcGxhbm5pbmcsIGNvbnN1bHRpbmcgZW5nYWdlbWVudHMsIG9yIHJldHJlYXRzIHRvIGFsaWduIHN0cmF0ZWd5IHdpdGggc3lzdGVtcy4iLAogICAgImNhdGVnb3JpZXMiOiBbCiAgICAgICJCZWhhdmlvcmFsIFN5c3RlbXMgQW5hbHlzaXMiLAogICAgICAiT0JNIgogICAgXSwKICAgICJwcmljZSI6ICIgLSAiLAogICAgInRpZXIiOiAiRnJlZSIsCiAgICAidXJsIjogImh0dHBzOi8vbW9yYWxpc21hY2hpbmEubXlzaG9waWZ5LmNvbS9wcm9kdWN0cy9zdXBlcnN5c3RlbS1vcmdhbml6YXRpb25hbC1sZXZlbC13b3Jrc2hlZXQiCiAgfSwKICB7CiAgICAibmFtZSI6ICJTV09UIEFuYWx5c2lzIFRlbXBsYXRlIiwKICAgICJmb3JtYXQiOiAiVGVtcGxhdGUiLAogICAgImRlc2NyaXB0aW9uIjogIkEgY2xlYW4sIGVhc3ktdG8tdXNlIHRlbXBsYXRlIGZvciBhc3Nlc3Npbmcgb3JnYW5pemF0aW9uYWwgb3IgcHJvamVjdCBzdHJlbmd0aHMsIHdlYWtuZXNzZXMsIG9wcG9ydHVuaXRpZXMsIGFuZCB0aHJlYXRzLiBVc2UgaXQgaW4gc3RyYXRlZ2ljIHBsYW5uaW5nLCBzdXBlcnZpc2lvbiwgb3IgcGVyZm9ybWFuY2UgYW5hbHlzaXMgYXMgYSBzdGFydGluZyBwb2ludCBmb3IgaW50ZXJ2ZW50aW9uIGRlc2lnbi4iLAogICAgImNhdGVnb3JpZXMiOiBbCiAgICAgICJCdXNpbmVzcyBTa2lsbHMiLAogICAgICAiQmVoYXZpb3JhbCBTeXN0ZW1zIEFuYWx5c2lzIgogICAgXSwKICAgICJwcmljZSI6ICJGcmVlIiwKICAgICJ0aWVyIjogIkZyZWUiLAogICAgInVybCI6ICJodHRwczovL21vcmFsaXNtYWNoaW5hLm15c2hvcGlmeS5jb20vcHJvZHVjdHMvc3dvdC1hbmFseXNpcy10ZW1wbGF0ZSIKICB9LAogIHsKICAgICJuYW1lIjogIlRocmVlLUxldmVsIEZyYW1ld29yayBUZW1wbGF0ZSIsCiAgICAiZm9ybWF0IjogIlRlbXBsYXRlIiwKICAgICJkZXNjcmlwdGlvbiI6ICJBIHNldCBvZiBlZGl0YWJsZSB0ZW1wbGF0ZXMgZm9yIHRoZSBUaHJlZS1MZXZlbCBGcmFtZXdvcmsgb2YgT3JnYW5pemF0aW9uYWwgQlNBICAtICBjb3ZlcmluZyBvcmdhbml6YXRpb25hbCwgcHJvY2VzcywgYW5kIGpvYi1sZXZlbCBhbmFseXNpcy4gVXNlIHRoZW0gdG8gbWFwIHdoZXJlIHBlcmZvcm1hbmNlIGJyZWFrZG93bnMgb2NjdXIgYW5kIGlkZW50aWZ5IHRoZSBoaWdoZXN0LWxldmVyYWdlIHBvaW50cyBmb3IgaW50ZXJ2ZW50aW9uLiIsCiAgICAiY2F0ZWdvcmllcyI6IFsKICAgICAgIkJlaGF2aW9yYWwgU3lzdGVtcyBBbmFseXNpcyIKICAgIF0sCiAgICAicHJpY2UiOiAiJDUiLAogICAgInRpZXIiOiAiRnJlZSIsCiAgICAidXJsIjogImh0dHBzOi8vbW9yYWxpc21hY2hpbmEubXlzaG9waWZ5LmNvbS9wcm9kdWN0cy90aHJlZS1sZXZlbC1mcmFtZXdvcmstdGVtcGxhdGVzIgogIH0sCiAgewogICAgIm5hbWUiOiAiNCBMJ3MgUmV0cm9zcGVjdGl2ZSBUZW1wbGF0ZSArIEluc3RydWN0aW9uIE1hbnVhbCIsCiAgICAiZm9ybWF0IjogIlRlbXBsYXRlIiwKICAgICJkZXNjcmlwdGlvbiI6ICJBIGZhY2lsaXRhdGlvbiBndWlkZSBhbmQgcHJpbnRhYmxlIHRlbXBsYXRlIGZvciB0aGUgNCBMcyByZXRyb3NwZWN0aXZlICAtICBMb3ZlZCwgTG9hdGhlZCwgTG9uZ2VkIEZvciwgTGVhcm5lZCAgLSAgYWRhcHRlZCB3aXRoIGJlaGF2aW9yYWwgc2NpZW5jZSBwcm9tcHRzLiBVc2UgaXQgdG8gYnVpbGQgcHN5Y2hvbG9naWNhbGx5IHNhZmUgcmVmbGVjdGlvbiBoYWJpdHMsIGltcHJvdmUgdGVhbSBjb2hlc2lvbiwgYW5kIGRyaXZlIG1lYW5pbmdmdWwgYWN0aW9uIGFmdGVyIHByb2plY3RzIG9yIHRyYW5zaXRpb25zLiIsCiAgICAiY2F0ZWdvcmllcyI6IFsKICAgICAgIkNvbXBhbnkgQ3VsdHVyZSIsCiAgICAgICJTdXBlcnZpc2lvbiIsCiAgICAgICJQcm9qZWN0IE1hbmFnZW1lbnQiCiAgICBdLAogICAgInByaWNlIjogIiQ1IiwKICAgICJ0aWVyIjogIkZyZWUiLAogICAgInVybCI6ICJodHRwczovL21vcmFsaXNtYWNoaW5hLm15c2hvcGlmeS5jb20vcHJvZHVjdHMvNC1scy1yZXRyb3NwZWN0aXZlLXRlbXBsYXRlLWluc3RydWN0aW9uLW1hbnVhbCIKICB9LAogIHsKICAgICJuYW1lIjogIkxlYWRlcnNoaXAgU2VsZi1Bc3Nlc3NtZW50IGZvciBQc3ljaG9sb2dpY2FsIFNhZmV0eSIsCiAgICAiZm9ybWF0IjogIkFzc2Vzc21lbnQiLAogICAgImRlc2NyaXB0aW9uIjogIkEgMi1wYWdlIHNlbGYtYXNzZXNzbWVudCBiYXNlZCBvbiBFZG1vbmRzb24ncyBGZWFybGVzcyBPcmdhbml6YXRpb24gZnJhbWV3b3JrLCBjb3ZlcmluZyBmaXZlIGxlYWRlcnNoaXAgZG9tYWluczogZnJhbWluZyB0aGUgd29yaywgZW1waGFzaXppbmcgcHVycG9zZSwgc2l0dWF0aW9uYWwgaHVtaWxpdHksIGludml0aW5nIHBhcnRpY2lwYXRpb24sIGFuZCByZXNwb25kaW5nIHByb2R1Y3RpdmVseS4gVXNlIGl0IHRvIGV2YWx1YXRlIGFuZCBzdHJlbmd0aGVuIGxlYWRlcnNoaXAgcHJhY3RpY2VzIHRoYXQgc3VwcG9ydCBwc3ljaG9sb2dpY2FsIHNhZmV0eS4iLAogICAgImNhdGVnb3JpZXMiOiBbCiAgICAgICJMZWFkZXJzaGlwIiwKICAgICAgIkNvbXBhbnkgQ3VsdHVyZSIKICAgIF0sCiAgICAicHJpY2UiOiAiRnJlZSIsCiAgICAidGllciI6ICJGcmVlIiwKICAgICJ1cmwiOiAiaHR0cHM6Ly9tb3JhbGlzbWFjaGluYS5teXNob3BpZnkuY29tL3Byb2R1Y3RzL2xlYWRlcnNoaXAtc2VsZi1hc3Nlc3NtZW50LWZvci1wc3ljaG9sb2dpY2FsLXNhZmV0eSIKICB9LAogIHsKICAgICJuYW1lIjogIlBzeWNob2xvZ2ljYWwgU2FmZXR5IENoZWNrbGlzdCIsCiAgICAiZm9ybWF0IjogIkNoZWNrbGlzdCIsCiAgICAiZGVzY3JpcHRpb24iOiAiQW4gYXVkaXQgY2hlY2tsaXN0IGZvciBhc3Nlc3NpbmcgYW4gb3JnYW5pemF0aW9uJ3Mgc3lzdGVtcywgcG9saWNpZXMsIGFuZCBsZWFkZXJzaGlwIHByYWN0aWNlcyBhY3Jvc3MgdHJhaW5pbmcsIGNoYW5nZSBtYW5hZ2VtZW50LCBhbmQgbWVldGluZyBjdWx0dXJlLiBVc2UgaXQgdG8ga2lja3N0YXJ0IGN1bHR1cmUgY2hhbmdlLCBhbGlnbiBERUkgb3Igd2VsbG5lc3MgaW5pdGlhdGl2ZXMsIGFuZCBob2xkIGxlYWRlcnNoaXAgYWNjb3VudGFibGUgdG8gcHN5Y2hvbG9naWNhbCBzYWZldHkgc3RhbmRhcmRzLiIsCiAgICAiY2F0ZWdvcmllcyI6IFsKICAgICAgIkNvbXBhbnkgQ3VsdHVyZSIsCiAgICAgICJMZWFkZXJzaGlwIgogICAgXSwKICAgICJwcmljZSI6ICIkMyIsCiAgICAidGllciI6ICJGcmVlIiwKICAgICJ1cmwiOiAiaHR0cHM6Ly9tb3JhbGlzbWFjaGluYS5teXNob3BpZnkuY29tL3Byb2R1Y3RzL3BzeWNob2xvZ2ljYWwtc2FmZXR5LWNoZWNrbGlzdCIKICB9LAogIHsKICAgICJuYW1lIjogIlBJQy9OSUMgQXNzZXNzbWVudCBUZW1wbGF0ZSIsCiAgICAiZm9ybWF0IjogIkFzc2Vzc21lbnQiLAogICAgImRlc2NyaXB0aW9uIjogIkFuIGludGVyYWN0aXZlIEV4Y2VsIGltcGxlbWVudGF0aW9uIG9mIHRoZSBQSUMvTklDIHRvb2wgZm9yIGNsYXNzaWZ5aW5nIGNvbnNlcXVlbmNlcyBhcyBQb3NpdGl2ZS9OZWdhdGl2ZSwgSW1tZWRpYXRlL0Z1dHVyZSwgYW5kIENlcnRhaW4vVW5jZXJ0YWluLCB3aXRoIGF1dG9tYXRpYyBjYWxjdWxhdGlvbnMgYW5kIHZpc3VhbCBncmFwaHMuIFVzZSBpdCB0byBhbmFseXplIHRoZSBjb25zZXF1ZW5jZSBsYW5kc2NhcGUgYXJvdW5kIGFueSB0YXJnZXQgYmVoYXZpb3IgaW4gY2xpbmljYWwsIG9yZ2FuaXphdGlvbmFsLCBvciBlZHVjYXRpb25hbCBzZXR0aW5ncy4iLAogICAgImNhdGVnb3JpZXMiOiBbCiAgICAgICJQZXJmb3JtYW5jZSBNYW5hZ2VtZW50IiwKICAgICAgIk9CTSIsCiAgICAgICJTdXBlcnZpc2lvbiIKICAgIF0sCiAgICAicHJpY2UiOiAiRnJlZSIsCiAgICAidGllciI6ICJGcmVlIiwKICAgICJ1cmwiOiAiaHR0cHM6Ly9tb3JhbGlzbWFjaGluYS5teXNob3BpZnkuY29tL3Byb2R1Y3RzL3BpYy1uaWMtYXNzZXNzbWVudC10ZW1wbGF0ZSIKICB9LAogIHsKICAgICJuYW1lIjogIlRhc2sgRW5qb3ltZW50IE1vdGl2YXRpb25hbCBQcm90b2NvbCBUZW1wbGF0ZSIsCiAgICAiZm9ybWF0IjogIkFzc2Vzc21lbnQiLAogICAgImRlc2NyaXB0aW9uIjogIkEgVEVNUCB0ZW1wbGF0ZSBmb3IgaWRlbnRpZnlpbmcgYmFycmllcnMgYmVoaW5kIG5vbi1wcmVmZXJyZWQgdGFza3MgYW5kIGRlc2lnbmluZyB0YXJnZXRlZCBzdHJhdGVnaWVzIHRvIGluY3JlYXNlIGVuZ2FnZW1lbnQuIFVzZSBpdCBpbiBjb2FjaGluZywgbGVhZGVyc2hpcCBkZXZlbG9wbWVudCwgb3Igc3VwZXJ2aXNpb24gdG8gYWRkcmVzcyBhdm9pZGFuY2UgYW5kIGJ1aWxkIHNlbGYtbWFuYWdlbWVudCBza2lsbHMuIiwKICAgICJjYXRlZ29yaWVzIjogWwogICAgICAiUGVyZm9ybWFuY2UgTWFuYWdlbWVudCIsCiAgICAgICJPQk0iLAogICAgICAiU3VwZXJ2aXNpb24iCiAgICBdLAogICAgInByaWNlIjogIiQ1IiwKICAgICJ0aWVyIjogIkZyZWUiLAogICAgInVybCI6ICJodHRwczovL21vcmFsaXNtYWNoaW5hLm15c2hvcGlmeS5jb20vcHJvZHVjdHMvdGFzay1lbmpveW1lbnQtbW90aXZhdGlvbmFsLXByb3RvY29sLXRlbXBsYXRlIgogIH0sCiAgewogICAgIm5hbWUiOiAiQ2hhbmdlIE1hbmFnZW1lbnQgUGxhbiBUZW1wbGF0ZSIsCiAgICAiZm9ybWF0IjogIlRlbXBsYXRlIiwKICAgICJkZXNjcmlwdGlvbiI6ICJBIGNvbXByZWhlbnNpdmUgV29yZC1iYXNlZCBjaGFuZ2UgbWFuYWdlbWVudCBwbGFubmluZyB0ZW1wbGF0ZSBjb3ZlcmluZyBzdGFrZWhvbGRlciBhbmFseXNpcywgQURLQVIgcGxhbm5pbmcsIG1lc3NhZ2luZywgc2tpbGxzIGdhcHMsIHJpc2sgYXNzZXNzbWVudCwgYW5kIGdvLWxpdmUgc3VwcG9ydC4gVXNlIGl0IHRvIHN0cnVjdHVyZSBhbnkgb3JnYW5pemF0aW9uYWwgY2hhbmdlIGluaXRpYXRpdmUgdXNpbmcgUHJvU2NpIG1ldGhvZG9sb2d5IGFuZCBPQk0gYmVzdCBwcmFjdGljZXMuIiwKICAgICJjYXRlZ29yaWVzIjogWwogICAgICAiT0NNIiwKICAgICAgIlByb2plY3QgTWFuYWdlbWVudCIsCiAgICAgICJCZWhhdmlvcmFsIFN5c3RlbXMgQW5hbHlzaXMiCiAgICBdLAogICAgInByaWNlIjogIiQ3IiwKICAgICJ0aWVyIjogIlBhaWQgRGlnaXRhbCIsCiAgICAidXJsIjogImh0dHBzOi8vbW9yYWxpc21hY2hpbmEubXlzaG9waWZ5LmNvbS9wcm9kdWN0cy9jaGFuZ2UtbWFuYWdlbWVudC1wbGFuLXRlbXBsYXRlIgogIH0sCiAgewogICAgIm5hbWUiOiAiUGVyZm9ybWFuY2UgU2NvcmVjYXJkIFRlbXBsYXRlIiwKICAgICJmb3JtYXQiOiAiVGVtcGxhdGUiLAogICAgImRlc2NyaXB0aW9uIjogIkEgYmxhbmssIGN1c3RvbWl6YWJsZSBFeGNlbCBzY29yZWNhcmQgZm9yIGRlZmluaW5nLCBtZWFzdXJpbmcsIGFuZCB0cmFja2luZyBwZXJmb3JtYW5jZSBtZXRyaWNzIGF0IHRoZSBpbmRpdmlkdWFsLCB0ZWFtLCBvciBvcmdhbml6YXRpb25hbCBsZXZlbC4gVXNlIGl0IHRvIHNldCB2aXNpYmxlLCBtZWFzdXJhYmxlIGdvYWxzIGFuZCBzdXBwb3J0IGRhdGEtZHJpdmVuIGFjY291bnRhYmlsaXR5IGluIDE6MXMsIHN1cGVydmlzaW9uLCBvciBsZWFkZXJzaGlwIHJldmlld3MuIiwKICAgICJjYXRlZ29yaWVzIjogWwogICAgICAiUGVyZm9ybWFuY2UgTWFuYWdlbWVudCIKICAgIF0sCiAgICAicHJpY2UiOiAiJDUiLAogICAgInRpZXIiOiAiRnJlZSIsCiAgICAidXJsIjogImh0dHBzOi8vbW9yYWxpc21hY2hpbmEubXlzaG9waWZ5LmNvbS9wcm9kdWN0cy9wZXJmb3JtYW5jZS1zY29yZS1jYXJkLXRlbXBsYXRlIgogIH0sCiAgewogICAgIm5hbWUiOiAiUkFDSSBNYXRyaXggVGVtcGxhdGUiLAogICAgImZvcm1hdCI6ICJUZW1wbGF0ZSIsCiAgICAiZGVzY3JpcHRpb24iOiAiQSBzaW1wbGUgdGVtcGxhdGUgZm9yIGRlZmluaW5nIHdobyBpcyBSZXNwb25zaWJsZSwgQWNjb3VudGFibGUsIENvbnN1bHRlZCwgYW5kIEluZm9ybWVkIGZvciBlYWNoIHRhc2sgaW4gYSBwcm9qZWN0IG9yIHdvcmtmbG93LiBVc2UgaXQgdG8gY2xhcmlmeSByb2xlcywgcmVkdWNlIGNvbmZ1c2lvbiwgYW5kIGtlZXAgY3Jvc3MtZnVuY3Rpb25hbCB3b3JrIG1vdmluZy4iLAogICAgImNhdGVnb3JpZXMiOiBbCiAgICAgICJQcm9qZWN0IE1hbmFnZW1lbnQiCiAgICBdLAogICAgInByaWNlIjogIiQzIiwKICAgICJ0aWVyIjogIkZyZWUiLAogICAgInVybCI6ICJodHRwczovL21vcmFsaXNtYWNoaW5hLm15c2hvcGlmeS5jb20vcHJvZHVjdHMvcmFjaS1tYXRyaXgtdGVtcGxhdGUiCiAgfSwKICB7CiAgICAibmFtZSI6ICJDaGFuZ2UgTWFuYWdlbWVudCBTdGFydGVyIFBhY2siLAogICAgImZvcm1hdCI6ICJDaGVja2xpc3QiLAogICAgImRlc2NyaXB0aW9uIjogIlRocmVlIGJlaGF2aW9yYWxseSBpbmZvcm1lZCBjaGVja2xpc3RzICAtICBmb3Igb3JnYW5pemF0aW9uYWwgY2hhbmdlIHJlYWRpbmVzcywgY29tbXVuaWNhdGlvbnMsIGFuZCBzcG9uc29yIGJlaGF2aW9yICAtICBhZGFwdGVkIGZyb20gUHJvU2NpIG1ldGhvZG9sb2d5LiBVc2UgdGhlbSB0byBwbGFuLCBjb21tdW5pY2F0ZSwgYW5kIHN1c3RhaW4gY2hhbmdlIGVmZmVjdGl2ZWx5IGFjcm9zcyBjbGluaWNhbCwgY29uc3VsdGluZywgb3Igb3JnYW5pemF0aW9uYWwgc2V0dGluZ3MuIiwKICAgICJjYXRlZ29yaWVzIjogWwogICAgICAiT0NNIgogICAgXSwKICAgICJwcmljZSI6ICIkNyIsCiAgICAidGllciI6ICJQYWlkIERpZ2l0YWwiLAogICAgInVybCI6ICJodHRwczovL21vcmFsaXNtYWNoaW5hLm15c2hvcGlmeS5jb20vcHJvZHVjdHMvY2hhbmdlLW1hbmFnZW1lbnQtY2hlY2tsaXN0LXN0YXJ0ZXItcGFjayIKICB9LAogIHsKICAgICJuYW1lIjogIkFCQSBWYWxlbnRpbmUncyBDYXJkcyIsCiAgICAiZm9ybWF0IjogIlByaW50YWJsZSIsCiAgICAiZGVzY3JpcHRpb24iOiAiQSBwcmludGFibGUgc2V0IG9mIEFCQS10aGVtZWQgVmFsZW50aW5lJ3MgY2FyZHMgZGVzaWduZWQgZm9yIHN1cGVydmlzb3JzLCBzdXBlcnZpc2VlcywgYW5kIGJlaGF2aW9yIGFuYWx5dGljIGNvbGxlYWd1ZXMuIFByaW50IGF0IGhvbWUsIHRyaW0sIGFuZCByZWluZm9yY2Ugc29tZW9uZSB3aG8gZGVzZXJ2ZXMgaXQuIiwKICAgICJjYXRlZ29yaWVzIjogWwogICAgICAiU2hvcCIKICAgIF0sCiAgICAicHJpY2UiOiAiRnJlZSIsCiAgICAidGllciI6ICJGcmVlIiwKICAgICJ1cmwiOiAiaHR0cHM6Ly9tb3JhbGlzbWFjaGluYS5teXNob3BpZnkuY29tL3Byb2R1Y3RzL2FiYS12YWxlbnRpbmVzLWNhcmRzIgogIH0sCiAgewogICAgIm5hbWUiOiAiUE1QIFdvcmtib29rICAtICBEaWdpdGFsIE9ubHkiLAogICAgImZvcm1hdCI6ICJXb3JrYm9vayIsCiAgICAiZGVzY3JpcHRpb24iOiAiQSBkaWdpdGFsIGNvbXBhbmlvbiB3b3JrYm9vayBmb3IgTW9yYWxpcyBNYWNoaW5hJ3MgUE1QIFByZXAgZm9yIEJDQkFzIGNvdXJzZSwgaW5jbHVkaW5nIDczIFNPUHMgYW5kIHRhc2sgYW5hbHlzZXMgZm9yIGNvcmUgcHJvamVjdCBtYW5hZ2VtZW50IGRlbGl2ZXJhYmxlcy4gVXNlIGl0IGFzIGEgc3R1ZHkgZ3VpZGUgZHVyaW5nIHRoZSBjb3Vyc2UgYW5kIGFuIG9uZ29pbmcgZGVzayByZWZlcmVuY2Ugd2hlbiBleGVjdXRpbmcgUE0gdGFza3MgaW4gcHJhY3RpY2UuIiwKICAgICJjYXRlZ29yaWVzIjogWwogICAgICAiUHJvamVjdCBNYW5hZ2VtZW50IgogICAgXSwKICAgICJwcmljZSI6ICIkMTQwIiwKICAgICJ0aWVyIjogIlRyYWluaW5nIFByb2dyYW0gV29ya2Jvb2siLAogICAgInVybCI6ICJodHRwczovL21vcmFsaXNtYWNoaW5hLm15c2hvcGlmeS5jb20vcHJvZHVjdHMvcG1wLXdvcmtib29rLWRpZ2l0YWwtb25seSIKICB9LAogIHsKICAgICJuYW1lIjogIlBNUCBXb3JrYm9vayAgLSAgRGlnaXRhbCArIFBoeXNpY2FsIiwKICAgICJmb3JtYXQiOiAiV29ya2Jvb2siLAogICAgImRlc2NyaXB0aW9uIjogIlRoZSBwcmludGVkIGFuZCBkaWdpdGFsIGNvbXBhbmlvbiB3b3JrYm9vayBmb3IgTW9yYWxpcyBNYWNoaW5hJ3MgUE1QIFByZXAgZm9yIEJDQkFzIGNvdXJzZSwgaW5jbHVkaW5nIDczIFNPUHMgYW5kIHRhc2sgYW5hbHlzZXMgZm9yIGNvcmUgcHJvamVjdCBtYW5hZ2VtZW50IGRlbGl2ZXJhYmxlcy4gVXNlIGl0IGFzIGEgc3R1ZHkgZ3VpZGUgZHVyaW5nIHRoZSBjb3Vyc2UgYW5kIGEgZGVzayByZWZlcmVuY2Ugd2hlbiBleGVjdXRpbmcgUE0gdGFza3MgaW4gcHJhY3RpY2UuIiwKICAgICJjYXRlZ29yaWVzIjogWwogICAgICAiUHJvamVjdCBNYW5hZ2VtZW50IgogICAgXSwKICAgICJwcmljZSI6ICIkMTUwIiwKICAgICJ0aWVyIjogIlRyYWluaW5nIFByb2dyYW0gV29ya2Jvb2siLAogICAgInVybCI6ICJodHRwczovL21vcmFsaXNtYWNoaW5hLm15c2hvcGlmeS5jb20vcHJvZHVjdHMvcG1wLXdvcmtib29rLXBoeXNpY2FsLWRpZ2l0YWwiCiAgfSwKICB7CiAgICAibmFtZSI6ICJSZXNlYXJjaCBQYXBlcjogV2h5IEJlaGF2aW9yLUJhc2VkIFdlbGxuZXNzIGlzIEdvb2QgZm9yIEJ1c2luZXNzIiwKICAgICJmb3JtYXQiOiAiUmVzZWFyY2ggUGFwZXIiLAogICAgImRlc2NyaXB0aW9uIjogIkEgd2hpdGUgcGFwZXIgZXhhbWluaW5nIHdoeSB0cmFkaXRpb25hbCB3ZWxsbmVzcyBwcm9ncmFtcyBmYWxsIHNob3J0IGFuZCBob3cgYmVoYXZpb3JhbCBzY2llbmNlIGRyaXZlcyByZWFsLCBtZWFzdXJhYmxlIGNoYW5nZSBpbiBvcmdhbml6YXRpb25hbCBzZXR0aW5ncy4gVXNlIGl0IHRvIG1ha2UgdGhlIGNhc2UgZm9yIGJlaGF2aW9yLWJhc2VkIHdlbGxuZXNzIHdpdGggbGVhZGVyc2hpcCwgYW5jaG9yIE9CTSBjb25zdWx0aW5nIHByb3Bvc2Fscywgb3IgZ3JvdW5kIGN1bHR1cmUgaW5pdGlhdGl2ZXMgaW4gZXZpZGVuY2UuIiwKICAgICJjYXRlZ29yaWVzIjogWwogICAgICAiRW1wbG95ZWUgSGVhbHRoICYgV2VsbG5lc3MiCiAgICBdLAogICAgInByaWNlIjogIkZyZWUiLAogICAgInRpZXIiOiAiRnJlZSIsCiAgICAidXJsIjogImh0dHBzOi8vbW9yYWxpc21hY2hpbmEubXlzaG9waWZ5LmNvbS9wcm9kdWN0cy9mcmVlLXJlc2VhcmNoLXBhcGVyLXdoeS1iZWhhdmlvci1iYXNlZC13ZWxsbmVzcy1pcy1nb29kLWZvci1idXNpbmVzcyIKICB9LAogIHsKICAgICJuYW1lIjogIlwiT0JNZXJcIiBTdGlja2VyIiwKICAgICJmb3JtYXQiOiAiU3RpY2tlciIsCiAgICAiZGVzY3JpcHRpb24iOiAiQSAyLjVcIiBwcmVtaXVtIGRpZS1jdXQgdmlueWwgbWF0dGUgc3RpY2tlciBmb3IgdGhlIGRhdGEtZHJpdmVuLCByZWluZm9yY2VtZW50LXNsaW5naW5nIE9CTSBwcm9mZXNzaW9uYWwuIEZvciBsYXB0b3BzLCB3b3JrYm9va3MsIG9yIGFueXdoZXJlIGNvbmZ1c2lvbiB0ZW5kcyB0byBjb2xsZWN0LiIsCiAgICAiY2F0ZWdvcmllcyI6IFsKICAgICAgIlNob3AiCiAgICBdLAogICAgInByaWNlIjogIiQzIiwKICAgICJ0aWVyIjogIlNob3AiLAogICAgInVybCI6ICJodHRwczovL21vcmFsaXNtYWNoaW5hLm15c2hvcGlmeS5jb20vcHJvZHVjdHMvb2JtZXItc3RpY2tlciIKICB9LAogIHsKICAgICJuYW1lIjogIlwiV2hlbiBpbiBEb3VidCwgTWFwIGl0IE91dFwiIFN0aWNrZXIiLAogICAgImZvcm1hdCI6ICJTdGlja2VyIiwKICAgICJkZXNjcmlwdGlvbiI6ICJBIDIuNVwiIHByZW1pdW0gZGllLWN1dCB2aW55bCBnbG9zc3kgc3RpY2tlciBmb3IgYmVoYXZpb3IgYW5hbHlzdHMgd2hvIHNvbHZlIGNoYW9zIHdpdGggYSBmbG93Y2hhcnQuIEZvciBsYXB0b3BzLCB3b3JrYm9va3MsIG9yIGFueXdoZXJlIHlvdXIgYmVzdCB0aGlua2luZyBoYXBwZW5zLiIsCiAgICAiY2F0ZWdvcmllcyI6IFsKICAgICAgIlNob3AiCiAgICBdLAogICAgInByaWNlIjogIiQzIiwKICAgICJ0aWVyIjogIlNob3AiLAogICAgInVybCI6ICJodHRwczovL21vcmFsaXNtYWNoaW5hLm15c2hvcGlmeS5jb20vcHJvZHVjdHMvd2hlbi1pbi1kb3VidC1tYXAtaXQtb3V0LXN0aWNrZXIiCiAgfSwKICB7CiAgICAibmFtZSI6ICJcIlBlb3BsZSBvdmVyIFByb2ZpdFwiIFN0aWNrZXIiLAogICAgImZvcm1hdCI6ICJTdGlja2VyIiwKICAgICJkZXNjcmlwdGlvbiI6ICJBIDJcIiBwcmVtaXVtIGRpZS1jdXQgdmlueWwgbWF0dGUgc3RpY2tlciBmb3IgcHJvZmVzc2lvbmFscyB3aG8gaG9sZCB0aGUgbGluZSBvbiB0aGVpciB2YWx1ZXMsIGV2ZW4gaW4gYnVkZ2V0IG1lZXRpbmdzLiBGb3IgbGFwdG9wcywgd2F0ZXIgYm90dGxlcywgb3IgeW91ciBlbW90aW9uYWwgc3VwcG9ydCBIeWRybyBGbGFzay4iLAogICAgImNhdGVnb3JpZXMiOiBbCiAgICAgICJTaG9wIgogICAgXSwKICAgICJwcmljZSI6ICIkMyIsCiAgICAidGllciI6ICJTaG9wIiwKICAgICJ1cmwiOiAiaHR0cHM6Ly9tb3JhbGlzbWFjaGluYS5teXNob3BpZnkuY29tL3Byb2R1Y3RzL3Blb3BsZS1vdmVyLXByb2ZpdHMtc3RpY2tlciIKICB9LAogIHsKICAgICJuYW1lIjogIkxlYW4gU2l4IFNpZ21hIEdyZWVuIEJlbHQgV29ya2Jvb2sgIC0gIFBoeXNpY2FsICsgRGlnaXRhbCIsCiAgICAiZm9ybWF0IjogIldvcmtib29rIiwKICAgICJkZXNjcmlwdGlvbiI6ICJUaGUgcGh5c2ljYWwgYW5kIGRpZ2l0YWwgY29tcGFuaW9uIHdvcmtib29rIGZvciBNb3JhbGlzIE1hY2hpbmEncyBMU1MgR3JlZW4gQmVsdCBmb3IgQkNCQXMgY291cnNlLCBjb3ZlcmluZyBhZHZhbmNlZCBwcm9jZXNzIGltcHJvdmVtZW50IG1ldGhvZG9sb2d5LiBVc2UgaXQgdG8gZGVlcGVuIEdyZWVuIEJlbHQgZmx1ZW5jeSBhbmQgbWFpbnRhaW4gYSByZWZlcmVuY2UgZm9yIGFwcGx5aW5nIHRoZSBtZXRob2RvbG9neSBpbiBwcmFjdGljZS4iLAogICAgImNhdGVnb3JpZXMiOiBbCiAgICAgICJMZWFuIFNpeCBTaWdtYSAoZm9yIEJDQkFzKSIKICAgIF0sCiAgICAicHJpY2UiOiAiJDE0MCIsCiAgICAidGllciI6ICJUcmFpbmluZyBQcm9ncmFtIFdvcmtib29rIiwKICAgICJ1cmwiOiAiaHR0cHM6Ly9tb3JhbGlzbWFjaGluYS5teXNob3BpZnkuY29tL3Byb2R1Y3RzL2xlYW4tc2l4LXNpZ21hLWdyZWVuLWJlbHQtd29ya2Jvb2stcGh5c2ljYWwtZGlnaXRhbCIKICB9LAogIHsKICAgICJuYW1lIjogIkxlYW4gU2l4IFNpZ21hIEdyZWVuIEJlbHQgV29ya2Jvb2sgIC0gIERpZ2l0YWwgT25seSIsCiAgICAiZm9ybWF0IjogIldvcmtib29rIiwKICAgICJkZXNjcmlwdGlvbiI6ICJBIDI1MCsgcGFnZSBkaWdpdGFsIGNvbXBhbmlvbiB3b3JrYm9vayBmb3IgTW9yYWxpcyBNYWNoaW5hJ3MgTFNTIEdyZWVuIEJlbHQgZm9yIEJDQkFzIGNvdXJzZS4gVXNlIGl0IGFzIGEgc3R1ZHkgY29tcGFuaW9uIGFuZCBvbmdvaW5nIHJlZmVyZW5jZSBmb3IgYXBwbHlpbmcgR3JlZW4gQmVsdCBtZXRob2RvbG9neSB0byByZWFsIG9yZ2FuaXphdGlvbmFsIHByb2JsZW1zLiIsCiAgICAiY2F0ZWdvcmllcyI6IFsKICAgICAgIkxlYW4gU2l4IFNpZ21hIChmb3IgQkNCQXMpIgogICAgXSwKICAgICJwcmljZSI6ICIkMTMwIiwKICAgICJ0aWVyIjogIlRyYWluaW5nIFByb2dyYW0gV29ya2Jvb2siLAogICAgInVybCI6ICJodHRwczovL21vcmFsaXNtYWNoaW5hLm15c2hvcGlmeS5jb20vcHJvZHVjdHMvbGVhbi1zaXgtc2lnbWEtZ3JlZW4tYmVsdC13b3JrYm9vay1kaWdpdGFsLW9ubHkiCiAgfSwKICB7CiAgICAibmFtZSI6ICJMZWFuIFNpeCBTaWdtYSBZZWxsb3cgQmVsdCBXb3JrYm9vayAgLSAgUGh5c2ljYWwgKyBEaWdpdGFsIiwKICAgICJmb3JtYXQiOiAiV29ya2Jvb2siLAogICAgImRlc2NyaXB0aW9uIjogIlRoZSBzcGlyYWwtYm91bmQsIGZ1bGwtY29sb3IgcGh5c2ljYWwgYW5kIGRpZ2l0YWwgY29tcGFuaW9uIGZvciBNb3JhbGlzIE1hY2hpbmEncyBMU1MgWWVsbG93IEJlbHQgZm9yIEJDQkFzIGNvdXJzZSAgLSAgMTk2IHBhZ2VzIG9mIGd1aWRlZCBub3RlcywgdGVtcGxhdGVzLCBhbmQgYSBCQUNCIDZ0aCBFZGl0aW9uIFRDTyBjcm9zc3dhbGsuIFVzZSBpdCB0byBidWlsZCBZZWxsb3cgQmVsdCBmbHVlbmN5IGFsb25nc2lkZSB0aGUgY291cnNlIGFuZCByZXZpc2l0IGNvcmUgdG9vbHMgaW4gcHJhY3RpY2UuIiwKICAgICJjYXRlZ29yaWVzIjogWwogICAgICAiTGVhbiBTaXggU2lnbWEgKGZvciBCQ0JBcykiCiAgICBdLAogICAgInByaWNlIjogIiQ5NSIsCiAgICAidGllciI6ICJUcmFpbmluZyBQcm9ncmFtIFdvcmtib29rIiwKICAgICJ1cmwiOiAiaHR0cHM6Ly9tb3JhbGlzbWFjaGluYS5teXNob3BpZnkuY29tL3Byb2R1Y3RzL2xlYW4tc2l4LXNpZ21hLXllbGxvdy1iZWx0LXdvcmtib29rIgogIH0sCiAgewogICAgIm5hbWUiOiAiTGVhbiBTaXggU2lnbWEgWWVsbG93IEJlbHQgV29ya2Jvb2sgIC0gIERpZ2l0YWwgT25seSIsCiAgICAiZm9ybWF0IjogIldvcmtib29rIiwKICAgICJkZXNjcmlwdGlvbiI6ICJBIDE5Ni1wYWdlIGRpZ2l0YWwgY29tcGFuaW9uIHdvcmtib29rIGZvciBNb3JhbGlzIE1hY2hpbmEncyBMU1MgWWVsbG93IEJlbHQgZm9yIEJDQkFzIGNvdXJzZSwgaW5jbHVkaW5nIHRlbXBsYXRlcywgYSBnbG9zc2FyeSwgYW5kIGEgQkFDQiA2dGggRWRpdGlvbiBUQ08gY3Jvc3N3YWxrLiBVc2UgaXQgdG8gYnVpbGQgZmx1ZW5jeSBpbiBZZWxsb3cgQmVsdCBwcm9jZXNzIGltcHJvdmVtZW50IHRvb2xzIGFuZCByZWZlcmVuY2UgdGhlbSB3aGVuIHlvdSBuZWVkIHRoZW0uIiwKICAgICJjYXRlZ29yaWVzIjogWwogICAgICAiTGVhbiBTaXggU2lnbWEgKGZvciBCQ0JBcykiCiAgICBdLAogICAgInByaWNlIjogIiQ4NSIsCiAgICAidGllciI6ICJUcmFpbmluZyBQcm9ncmFtIFdvcmtib29rIiwKICAgICJ1cmwiOiAiaHR0cHM6Ly9tb3JhbGlzbWFjaGluYS5teXNob3BpZnkuY29tL3Byb2R1Y3RzL2xlYW4tc2l4LXNpZ21hLXllbGxvdy1iZWx0LXdvcmtib29rLWRpZ2l0YWwtb25seSIKICB9LAogIHsKICAgICJuYW1lIjogIkxlYW4gU2l4IFNpZ21hIFdoaXRlIEJlbHQgV29ya2Jvb2sgIC0gIERpZ2l0YWwgT25seSIsCiAgICAiZm9ybWF0IjogIldvcmtib29rIiwKICAgICJkZXNjcmlwdGlvbiI6ICJBIDUwKyBwYWdlIGRpZ2l0YWwgaW50cm9kdWN0aW9uIHRvIExlYW4gU2l4IFNpZ21hIG1ldGhvZG9sb2d5IGZvciBCQ0JBcywgZGVzaWduZWQgYXMgYSBjb21wYW5pb24gdG8gdGhlIExTUyBXaGl0ZSBCZWx0IGZvciBCQ0JBcyBjb3Vyc2UuIFVzZSBpdCB0byBidWlsZCBmb3VuZGF0aW9uYWwgcHJvY2VzcyBpbXByb3ZlbWVudCB2b2NhYnVsYXJ5IGFuZCBjb25uZWN0IExTUyBjb25jZXB0cyB0byBiZWhhdmlvciBhbmFseXRpYyBwcmFjdGljZS4iLAogICAgImNhdGVnb3JpZXMiOiBbCiAgICAgICJMZWFuIFNpeCBTaWdtYSAoZm9yIEJDQkFzKSIKICAgIF0sCiAgICAicHJpY2UiOiAiJDMwIiwKICAgICJ0aWVyIjogIlRyYWluaW5nIFByb2dyYW0gV29ya2Jvb2siLAogICAgInVybCI6ICJodHRwczovL21vcmFsaXNtYWNoaW5hLm15c2hvcGlmeS5jb20vcHJvZHVjdHMvbGVhbi1zaXgtc2lnbWEtd29ya2Jvb2stZGlnaXRhbC1kb3dubG9hZCIKICB9LAogIHsKICAgICJuYW1lIjogIkxlYW4gU2l4IFNpZ21hIFdoaXRlIEJlbHQgV29ya2Jvb2sgIC0gIFBoeXNpY2FsICsgRGlnaXRhbCIsCiAgICAiZm9ybWF0IjogIldvcmtib29rIiwKICAgICJkZXNjcmlwdGlvbiI6ICJUaGUgcGh5c2ljYWwgYW5kIGRpZ2l0YWwgY29tcGFuaW9uIHRvIE1vcmFsaXMgTWFjaGluYSdzIExTUyBXaGl0ZSBCZWx0IGZvciBCQ0JBcyBjb3Vyc2UgIC0gIGEgcHJpbnRlZCBhbmQgZG93bmxvYWRhYmxlIGludHJvZHVjdGlvbiB0byBMZWFuIFNpeCBTaWdtYSBtZXRob2RvbG9neS4gVXNlIGl0IHRvIGJ1aWxkIGZvdW5kYXRpb25hbCBrbm93bGVkZ2UgYW5kIG1haW50YWluIGEgZGVzayByZWZlcmVuY2UgYXMgeW91IGV4cGFuZCB5b3VyIHByb2Nlc3MgaW1wcm92ZW1lbnQgc2tpbGxzLiIsCiAgICAiY2F0ZWdvcmllcyI6IFsKICAgICAgIkxlYW4gU2l4IFNpZ21hIChmb3IgQkNCQXMpIgogICAgXSwKICAgICJwcmljZSI6ICIkNDAiLAogICAgInRpZXIiOiAiVHJhaW5pbmcgUHJvZ3JhbSBXb3JrYm9vayIsCiAgICAidXJsIjogImh0dHBzOi8vbW9yYWxpc21hY2hpbmEubXlzaG9waWZ5LmNvbS9wcm9kdWN0cy9sZWFuLXNpeC1zaWdtYS13aGl0ZS1iZWx0LXdvcmtib29rLXBoeXNpY2FsLWRpZ2l0YWwiCiAgfQpdOwoKY29uc3QgRk1UX0NMQVNTID0gewogICdBc3Nlc3NtZW50JzogICAgICAnZm10LUFzc2Vzc21lbnQnLAogICdDaGVhdCBTaGVldCc6ICAgICAnZm10LUNoZWF0LVNoZWV0JywKICAnVGVtcGxhdGUnOiAgICAgICAgJ2ZtdC1UZW1wbGF0ZScsCiAgJ1dvcmtib29rJzogICAgICAgICdmbXQtV29ya2Jvb2snLAogICdXb3Jrc2hlZXQnOiAgICAgICAnZm10LVdvcmtzaGVldCcsCiAgJ0NoZWNrbGlzdCc6ICAgICAgICdmbXQtQ2hlY2tsaXN0JywKICAnUmVzZWFyY2ggUGFwZXInOiAgJ2ZtdC1SZXNlYXJjaC1QYXBlcicsCiAgJ1ByaW50YWJsZSc6ICAgICAgICdmbXQtUHJpbnRhYmxlJywKICAnU3RpY2tlcic6ICAgICAgICAgJ2ZtdC1TdGlja2VyJywKICAnVGVtcGxhdGUgQnVuZGxlJzogJ2ZtdC1UZW1wbGF0ZS1CdW5kbGUnLAogICdJbnRlcmFjdGl2ZSc6ICAgICAnZm10LUludGVyYWN0aXZlJywKfTsKCmNvbnN0IFRJRVJfTUVUQSA9IHsKICAnRnJlZSc6ICAgICAgICAgICAgICAgICAgICAgIHsgYmFkZ2U6J0ZyZWUnLCAgICAgY2xzOid0aWVyLUZyZWUnLCAgICAgYnRuOidjdGEtZGVmYXVsdCcsICBsYWJlbDonRG93bmxvYWQgRnJlZScgfSwKICAnUGFpZCBEaWdpdGFsJzogICAgICAgICAgICAgIHsgYmFkZ2U6J1BhaWQnLCAgICAgIGNsczondGllci1QYWlkJywgICAgIGJ0bjonY3RhLWRlZmF1bHQnLCAgbGFiZWw6J0dldCBBY2Nlc3MnICAgIH0sCiAgJ1RyYWluaW5nIFByb2dyYW0gV29ya2Jvb2snOiB7IGJhZGdlOidXb3JrYm9vaycsICBjbHM6J3RpZXItVHJhaW5pbmcnLCBidG46J2N0YS10cmFpbmluZycsIGxhYmVsOidTaG9wIE5vdycgICAgICB9LAogICdTaG9wJzogICAgICAgICAgICAgICAgICAgICAgeyBiYWRnZTonU2hvcCcsICAgICAgY2xzOid0aWVyLVNob3AnLCAgICAgYnRuOidjdGEtc2hvcCcsICAgICBsYWJlbDonU2hvcCBOb3cnICAgICAgfSwKfTsKCmZ1bmN0aW9uIGJ1aWxkRmlsdGVycygpIHsKICBjb25zdCBjYXRDb3VudCA9IHt9OwogIFJFU09VUkNFUy5mb3JFYWNoKHIgPT4gci5jYXRlZ29yaWVzLmZvckVhY2goYyA9PiB7IGNhdENvdW50W2NdID0gKGNhdENvdW50W2NdfHwwKSsxOyB9KSk7CiAgY29uc3QgY2F0cyA9IE9iamVjdC5rZXlzKGNhdENvdW50KS5zb3J0KCk7CiAgY29uc3QgY2F0VWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY2F0RmlsdGVycycpOwogIGNhdHMuZm9yRWFjaChjID0+IHsKICAgIGNvbnN0IGlkID0gJ2NhdF8nICsgYy5yZXBsYWNlKC9bXmEtejAtOV0vZ2ksJ18nKTsKICAgIGNvbnN0IGxpID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnbGknKTsKICAgIGxpLmNsYXNzTmFtZSA9ICdmaWx0ZXItaXRlbSc7CiAgICBsaS5pbm5lckhUTUwgPSBgPGlucHV0IHR5cGU9ImNoZWNrYm94IiBpZD0iJHtpZH0iIHZhbHVlPSIke2N9IiBvbmNoYW5nZT0iYXBwbHlGaWx0ZXJzKCkiPgogICAgICA8bGFiZWwgZm9yPSIke2lkfSI+JHtjfTwvbGFiZWw+CiAgICAgIDxzcGFuIGNsYXNzPSJmLWNvdW50Ij4ke2NhdENvdW50W2NdfTwvc3Bhbj5gOwogICAgY2F0VWwuYXBwZW5kQ2hpbGQobGkpOwogIH0pOwoKICBjb25zdCBmbXRDb3VudCA9IHt9OwogIFJFU09VUkNFUy5mb3JFYWNoKHIgPT4geyBpZihyLmZvcm1hdCkgZm10Q291bnRbci5mb3JtYXRdID0gKGZtdENvdW50W3IuZm9ybWF0XXx8MCkrMTsgfSk7CiAgY29uc3QgZm10cyA9IE9iamVjdC5rZXlzKGZtdENvdW50KS5zb3J0KCk7CiAgY29uc3QgZm10VWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZm10RmlsdGVycycpOwogIGZtdHMuZm9yRWFjaChmID0+IHsKICAgIGNvbnN0IGlkID0gJ2ZtdF8nICsgZi5yZXBsYWNlKC9bXmEtejAtOV0vZ2ksJ18nKTsKICAgIGNvbnN0IGxpID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnbGknKTsKICAgIGxpLmNsYXNzTmFtZSA9ICdmaWx0ZXItaXRlbSc7CiAgICBsaS5pbm5lckhUTUwgPSBgPGlucHV0IHR5cGU9ImNoZWNrYm94IiBpZD0iJHtpZH0iIHZhbHVlPSIke2Z9IiBvbmNoYW5nZT0iYXBwbHlGaWx0ZXJzKCkiPgogICAgICA8bGFiZWwgZm9yPSIke2lkfSI+JHtmfTwvbGFiZWw+CiAgICAgIDxzcGFuIGNsYXNzPSJmLWNvdW50Ij4ke2ZtdENvdW50W2ZdfTwvc3Bhbj5gOwogICAgZm10VWwuYXBwZW5kQ2hpbGQobGkpOwogIH0pOwp9CgpmdW5jdGlvbiByZW5kZXJDYXJkKHIpIHsKICBjb25zdCB0bSA9IFRJRVJfTUVUQVtyLnRpZXJdIHx8IFRJRVJfTUVUQVsnRnJlZSddOwogIGNvbnN0IGZtdENscyA9IEZNVF9DTEFTU1tyLmZvcm1hdF0gfHwgJ2ZtdC1UZW1wbGF0ZSc7CiAgY29uc3QgcHJpY2VEaXNwbGF5ID0gKHIucHJpY2UgPT09ICdGcmVlJyB8fCByLnByaWNlID09PSAnLScpID8gJ0ZyZWUnIDogci5wcmljZTsKICBjb25zdCBjdGFMYWJlbCA9IHIuZm9ybWF0ID09PSAnSW50ZXJhY3RpdmUnID8gJ1Rha2UgdGhlIFF1aXonIDogdG0ubGFiZWw7CiAgcmV0dXJuIGA8YXJ0aWNsZSBjbGFzcz0iY2FyZCI+CiAgICA8ZGl2IGNsYXNzPSJjYXJkLXRvcCI+CiAgICAgIDxzcGFuIGNsYXNzPSJmbXQtYmFkZ2UgJHtmbXRDbHN9Ij4ke3IuZm9ybWF0fTwvc3Bhbj4KICAgICAgPHNwYW4gY2xhc3M9InRpZXItYmFkZ2UgJHt0bS5jbHN9Ij4ke3RtLmJhZGdlfTwvc3Bhbj4KICAgIDwvZGl2PgogICAgPGRpdiBjbGFzcz0iY2FyZC1uYW1lIj4ke3IubmFtZX08L2Rpdj4KICAgIDxkaXYgY2xhc3M9ImNhcmQtZGVzYyI+JHtyLmRlc2NyaXB0aW9ufTwvZGl2PgogICAgPGRpdiBjbGFzcz0iY2FyZC1mb290Ij4KICAgICAgPHNwYW4gY2xhc3M9InByaWNlLWRpc3AiPiR7cHJpY2VEaXNwbGF5fTwvc3Bhbj4KICAgICAgPGEgaHJlZj0iJHtyLnVybH0iIGNsYXNzPSJjdGEgJHt0bS5idG59Ij4ke2N0YUxhYmVsfTwvYT4KICAgIDwvZGl2PgogIDwvYXJ0aWNsZT5gOwp9CgpmdW5jdGlvbiBhcHBseUZpbHRlcnMoKSB7CiAgY29uc3QgcXVlcnkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc2VhcmNoSW5wdXQnKS52YWx1ZS50cmltKCkudG9Mb3dlckNhc2UoKTsKICBjb25zdCBjaGVja2VkQ2F0cyA9IFsuLi5kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcjY2F0RmlsdGVycyBpbnB1dDpjaGVja2VkJyldLm1hcChpPT5pLnZhbHVlKTsKICBjb25zdCBjaGVja2VkRm10cyA9IFsuLi5kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcjZm10RmlsdGVycyBpbnB1dDpjaGVja2VkJyldLm1hcChpPT5pLnZhbHVlKTsKICBjb25zdCBwcmljZVZhbCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2lucHV0W25hbWU9InByaWNlIl06Y2hlY2tlZCcpLnZhbHVlOwoKICBjb25zdCBmaWx0ZXJlZCA9IFJFU09VUkNFUy5maWx0ZXIociA9PiB7CiAgICBpZiAocXVlcnkgJiYgIXIubmFtZS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHF1ZXJ5KSAmJiAhci5kZXNjcmlwdGlvbi50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHF1ZXJ5KSkgcmV0dXJuIGZhbHNlOwogICAgaWYgKGNoZWNrZWRDYXRzLmxlbmd0aCAmJiAhY2hlY2tlZENhdHMuc29tZShjID0+IHIuY2F0ZWdvcmllcy5pbmNsdWRlcyhjKSkpIHJldHVybiBmYWxzZTsKICAgIGlmIChjaGVja2VkRm10cy5sZW5ndGggJiYgIWNoZWNrZWRGbXRzLmluY2x1ZGVzKHIuZm9ybWF0KSkgcmV0dXJuIGZhbHNlOwogICAgaWYgKHByaWNlVmFsID09PSAnZnJlZScgJiYgci50aWVyICE9PSAnRnJlZScpIHJldHVybiBmYWxzZTsKICAgIGlmIChwcmljZVZhbCA9PT0gJ3BhaWQnICYmIHIudGllciA9PT0gJ0ZyZWUnKSByZXR1cm4gZmFsc2U7CiAgICByZXR1cm4gdHJ1ZTsKICB9KTsKCiAgY29uc3QgZ3JpZCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjYXJkR3JpZCcpOwogIGNvbnN0IGVtcHR5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2VtcHR5U3RhdGUnKTsKICBncmlkLmlubmVySFRNTCA9IGZpbHRlcmVkLm1hcChyZW5kZXJDYXJkKS5qb2luKCcnKTsKICBlbXB0eS5jbGFzc0xpc3QudG9nZ2xlKCdzaG93JywgZmlsdGVyZWQubGVuZ3RoID09PSAwKTsKICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY291bnROdW0nKS50ZXh0Q29udGVudCA9IGZpbHRlcmVkLmxlbmd0aDsKCiAgY29uc3QgaGFzRmlsdGVycyA9IHF1ZXJ5IHx8IGNoZWNrZWRDYXRzLmxlbmd0aCB8fCBjaGVja2VkRm10cy5sZW5ndGggfHwgcHJpY2VWYWwgIT09ICdhbGwnOwogIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjbGVhckJ0bicpLmNsYXNzTGlzdC50b2dnbGUoJ3Nob3cnLCBoYXNGaWx0ZXJzKTsKCiAgbGV0IHRpdGxlID0gJ0FsbCBSZXNvdXJjZXMnOwogIGlmIChjaGVja2VkQ2F0cy5sZW5ndGggPT09IDEpIHRpdGxlID0gY2hlY2tlZENhdHNbMF07CiAgZWxzZSBpZiAoY2hlY2tlZENhdHMubGVuZ3RoID4gMSkgdGl0bGUgPSAnTXVsdGlwbGUgTGVhcm5pbmcgUGF0aHMnOwogIGlmIChxdWVyeSkgdGl0bGUgPSAnUmVzdWx0cyBmb3IgIicgKyBxdWVyeSArICciJzsKICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbWFpblRpdGxlJykudGV4dENvbnRlbnQgPSB0aXRsZTsKfQoKZnVuY3Rpb24gY2xlYXJBbGwoKSB7CiAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3NlYXJjaElucHV0JykudmFsdWUgPSAnJzsKICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcjY2F0RmlsdGVycyBpbnB1dCwgI2ZtdEZpbHRlcnMgaW5wdXQnKS5mb3JFYWNoKGk9PmkuY2hlY2tlZD1mYWxzZSk7CiAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcignaW5wdXRbbmFtZT0icHJpY2UiXVt2YWx1ZT0iYWxsIl0nKS5jaGVja2VkID0gdHJ1ZTsKICBhcHBseUZpbHRlcnMoKTsKfQoKYnVpbGRGaWx0ZXJzKCk7CmFwcGx5RmlsdGVycygpOwo8L3NjcmlwdD4='); active.CodeMirror.setValue(text); active.CodeMirror.refresh(); console.log('Done HTML, length:', text.length);