Assistant: codex Assistant-Model: gpt-6.1-sol Assistant-Session: 01a126e1-76f8-7643-8cf3-e93336539ade
247 lines
237 KiB
JSON
247 lines
237 KiB
JSON
{
|
|
"memo": {
|
|
"id": "infd-20261011-purpose-overlay-r1",
|
|
"version": 2,
|
|
"question": "Approve the exact existing-snapshot rescue of failed drill-copy using corrected frozen-snapshot reads, then conditionally finish the protected compatibility gates and Deployment-only purpose-image release, retaining the disclosed fixable MEDIUM finding?",
|
|
"requested_act": "approve",
|
|
"binding_level": "organizational",
|
|
"brief": "Original approved backup COMPLETE; copy UNCERTAIN beforelocalfile because staleSHM index. Main19537920bytes/hash8756 unchanged,WAL0. Version2 explicitclose +immutable frozen-only rescue, no sidecar delete/newdrillbackup/oldretry; distinctphase/newhashlinkedjournal. Remainingoffline/cutover/image763c gates ordered;0HIGH/CRITICAL,1fixableMEDIUM/T05Oct18. ALLphasesdeadlineOct12,freshfounderdecisionbeyond; installedpurpose synthetic/native_providerfalse. No version2actions.",
|
|
"binding": {
|
|
"principal": {
|
|
"id": "pending-human-session",
|
|
"kind": "person",
|
|
"display_name": "Founder review"
|
|
},
|
|
"target": {
|
|
"kind": "environment",
|
|
"id": "realm:kubernetes/railiance01/informed-decision",
|
|
"label": "Informed Decision image-only purpose hardening on railiance01",
|
|
"environment": "production"
|
|
},
|
|
"terms": "Exact attached same INFD-WP-0009-T04/purpose-overlay-v1 trialinfd-purpose-20261011-r1 version2 ONLY: named drill-copy-rescue-r1 with newjournal preserving originalUNCERTAINcopy and exactoriginalbackup/mainhash19537920/WAL0/privateidentity; no SHMdelete or newdrillbackup. Absentlocalfile/volume/currentoldimage+source+UIDseals; corrected immutable frozen-only reads, live/offline remainWALaware. COMPLETErescueresult conditionallyallows exactisolatedofflineUID0CAP_CHOWNinitializer thenUID10001pre/admin/postproof+cleanup; distinctcutoverbackup/copy and fourGitpins/manualDeployment-only763c/prune=false. All phases incl recovery/verify beginbeforeOct12 23:59:59Z,newdecisionbeyond; rollbackprior7f5retainlatestDB,separateReadyoldimage/schema recoveryproof. Fresh rootauthenticated founderACCEPTversion2 eachphase; no signed/autonomousgrant. Explicit inheritedfixableMEDIUM/T05Oct18; installedchecks syntheticnative_providerfalse, actualPDPauthorityT04gate distinct. No credential/policy/wholeAppsync change."
|
|
},
|
|
"step_kind": "approve",
|
|
"packet": [
|
|
{
|
|
"item_id": "decision-packet-md",
|
|
"label": "decision-packet.md",
|
|
"hash": "sha256:c79d505d9fd1c4897ea0709e22f3263bf92f50660336084aae0c83c65d6b9024"
|
|
},
|
|
{
|
|
"item_id": "proposal-json",
|
|
"label": "proposal.json",
|
|
"hash": "sha256:e4d8fa77ce97f9cc190e9cae8f86478dba5e89cc7a13bf993e3b8d47a3160b36"
|
|
},
|
|
{
|
|
"item_id": "candidate-admission-json",
|
|
"label": "candidate-admission.json",
|
|
"hash": "sha256:92382a56b349c3b895e5806e975082527bb99d1a001140e69d857e5b0391fa55"
|
|
},
|
|
{
|
|
"item_id": "rollback-admission-json",
|
|
"label": "rollback-admission.json",
|
|
"hash": "sha256:22f830736ee56f6ed9b62f47d243e4e24a1b68263b261e78e2f1cfcb85adbd50"
|
|
},
|
|
{
|
|
"item_id": "candidate-deployment-json",
|
|
"label": "candidate-deployment.json",
|
|
"hash": "sha256:722a8e2dc52bec217bf960e23b2fddfc7ac27d343ac8743790e3183db81a6a0e"
|
|
},
|
|
{
|
|
"item_id": "rollback-deployment-json",
|
|
"label": "rollback-deployment.json",
|
|
"hash": "sha256:39b3f43bb84ef4921cc3a1fbcdc444610741ed8809149d8f8f17ed805f262121"
|
|
},
|
|
{
|
|
"item_id": "published-verification-json",
|
|
"label": "published-verification.json",
|
|
"hash": "sha256:e59ab44b1aaf28140509593aae4ab9b97ab62cc8b589e3f1552bac78618896dd"
|
|
},
|
|
{
|
|
"item_id": "registry-proof-json",
|
|
"label": "registry-proof.json",
|
|
"hash": "sha256:5aa2c1f780c47f62fa9b59da9543d82c07afa02b1d946e6144b8a042ef86f213"
|
|
},
|
|
{
|
|
"item_id": "security-summary-json",
|
|
"label": "security-summary.json",
|
|
"hash": "sha256:0ee56400dc703f7c9968c2a0a3ea0390d8362f8d0bbf8002a2bd7fa58f19cb44"
|
|
},
|
|
{
|
|
"item_id": "execution-bundle-json",
|
|
"label": "execution-bundle.json",
|
|
"hash": "sha256:49c9cb70f36f6ceb7b0d22400b2ec9232a5e1a8a00d17e92b92fe367c98effb5"
|
|
},
|
|
{
|
|
"item_id": "sqlite-readonly-py",
|
|
"label": "sqlite_readonly.py",
|
|
"hash": "sha256:9093c64f7f0e39b249da9fefdf5aaf4e4258bc31e7a27fd888479ce329a20509"
|
|
},
|
|
{
|
|
"item_id": "sealed-native-dependencies-json",
|
|
"label": "sealed-native-dependencies.json",
|
|
"hash": "sha256:042327a036ed254cf95dbeb0c056ac25b03a6a844b95a332c992df2943691369"
|
|
},
|
|
{
|
|
"item_id": "native-backup-restore-protocol-md",
|
|
"label": "native-backup-restore-protocol.md",
|
|
"hash": "sha256:54aa31c7709c5178d1aa0dda5ef22340fc2c1ede7635c8273c53e7954885f8e5"
|
|
},
|
|
{
|
|
"item_id": "inherited-vulnerability-follow-through-json",
|
|
"label": "inherited-vulnerability-follow-through.json",
|
|
"hash": "sha256:e8da413bf985ef2cb66c71a093ba7fc0636ab884f428e40a18b40ccff8e3b101"
|
|
},
|
|
{
|
|
"item_id": "native-preflight-json",
|
|
"label": "native-preflight.json",
|
|
"hash": "sha256:eb5f41aefb97666bb0c1279617e95a7c05017a609415624daee724c48b90d262"
|
|
},
|
|
{
|
|
"item_id": "sealed-live-deployment-json",
|
|
"label": "sealed-live-deployment.json",
|
|
"hash": "sha256:d18d27063d06f535ae884ea01f96747fe301685518ab94b1cba072a1e1519362"
|
|
},
|
|
{
|
|
"item_id": "change-guard-py",
|
|
"label": "change_guard.py",
|
|
"hash": "sha256:f348e449c49f4d9e49af9e82e01764e7197837fd3df9d756f5891d9b8d9b38be"
|
|
},
|
|
{
|
|
"item_id": "preflight-py",
|
|
"label": "preflight.py",
|
|
"hash": "sha256:6b4c65f708238c9a9d17fd065876c7a00e1f1745926f990a1dd5e667298340cd"
|
|
},
|
|
{
|
|
"item_id": "preflight-inputs-json",
|
|
"label": "preflight-inputs.json",
|
|
"hash": "sha256:03bb4b42fe1aa51b846e957a9e23926fae72f02a2cb5e297368047fb25c17e9b"
|
|
},
|
|
{
|
|
"item_id": "fresh-preflight-validation-json",
|
|
"label": "fresh-preflight-validation.json",
|
|
"hash": "sha256:2ec324aa8e3f97753b3ed87bca80820feb5e542dc0a4799aa848ec77ea92feb7"
|
|
}
|
|
],
|
|
"highlights": [
|
|
{
|
|
"id": "native-custody-rollout-and-known-medium",
|
|
"item_id": "decision-packet-md",
|
|
"note": "Protected real-data snapshot/restore and a brief Recreate restart require this separate native approval. Actual scan has one fixable inherited MEDIUM, not zero CVEs; exact owner follow-through due2026-10-18 is manual, with no automatic controller. Rollback preserves latestschema5DB and allnew/uncertain evidence. Synthetic transport tests are not native PDP authority proof. Admin can migrate oldschemas: readonlyschema5/integrity/count check must precede every native/offline Store/admin open. ActualCM/PVC UID/custody drift and optimizedPython stop the operation.",
|
|
"required_ack": true,
|
|
"severity": "warning",
|
|
"locator": {
|
|
"kind": "section",
|
|
"heading": "Requested decision"
|
|
}
|
|
}
|
|
],
|
|
"sealed": false,
|
|
"approval_id": null,
|
|
"approval_binding_digest": null
|
|
},
|
|
"expected_version": 1,
|
|
"summary": "Same supervised trial: retain original approvedbackup and UNCERTAINcopy; correct explicitSQLiteclose/frozenimmutable reads and introduce exact named existing-snapshot rescue with separate hash-linked journal, fresh human review, unchanged image/scope.",
|
|
"documents": [
|
|
{
|
|
"digest": "sha256:c79d505d9fd1c4897ea0709e22f3263bf92f50660336084aae0c83c65d6b9024",
|
|
"media_type": "text/markdown",
|
|
"content_base64": "IyBJbmZvcm1lZCBEZWNpc2lvbiB2ZXJzaW9uMiBleGlzdGluZy1zbmFwc2hvdCByZXNjdWUgYW5kIGltYWdlIHJlbGVhc2UKCkFwcHJvdmUgdGhlIGV4YWN0IHNvdXJjZS1yZWZpbmVkIHJlY292ZXJ5IG9mIHRoZSBmYWlsZWQgZHJpbGwtY29weSBhbmQgY29uZGl0aW9uYWwgcmVtYWluaW5nIGJhY2t1cC9kcmlsbC9EZXBsb3ltZW50LW9ubHkgaW1hZ2Ugcm9sbG91dC4gVGhpcyBpcyBtZW1vIHZlcnNpb24yIGluIHRoZSBzYW1lIHByb3Bvc2FsL3RyaWFsLCByZXF1aXJpbmcgTkVXIGZvdW5kZXIgYWNjZXB0YW5jZTsgb3JpZ2luYWwgdmVyc2lvbjEgYWNjZXB0YW5jZSBpcyByZXRhaW5lZCBhbmQgY2Fubm90IGF1dGhvcml6ZSBjaGFuZ2VkIGhlbHBlcmJ5dGVzLgoKT3JpZ2luYWwgc291cmNlIGJjNjQ5NGNkIGNvbXBsZXRlZCB0aGUgcHJvdGVjdGVkIG5hdGl2ZSBkcmlsbC1iYWNrdXAsIHRoZW4gY29weSBmYWlsZWQgYmVmb3JlIGFueSBsb2NhbGZpbGUuIE1ldGFkYXRhLW9ubHkgdmVyaWZpY2F0aW9uIHByb3ZlcyB1bmNoYW5nZWQgbWFpbjE5NTM3OTIwYnl0ZXMvU0hBODc1Ni4uLiwgV0FMMC9wcml2YXRlU0hNMzI3NjguIFRoZSBvcmlnaW5hbCByZWFkZXIgY291bGQgbGVhdmUgU0hNIGluZGV4aW5nIGJlY2F1c2UgaXRzIGNvbm5lY3Rpb24gY29udGV4dCBtYW5hZ2VyIGRpZCBub3QgY2xvc2UuIFRoZSBjb3JyZWN0aW9uIGV4cGxpY2l0bHljbG9zZXMgYWxsIHJlYWRlcnMgYW5kIHVzZXMgaW1tdXRhYmxlIHJlYWRzIE9OTFkgZm9yIGEgcHJvdmVuIGZyb3plbiBjbG9zZWQtbWFpbiBzbmFwc2hvdCwgbm90IGxpdmUgb3Igd3JpdGFibGVjbG9uZS4gU0hNIHN0YXlzIHVuY2hhbmdlZDsgbm9uemVyb1dBTC9oYXNoL2lkZW50aXR5IGRyaWZ0IHN0b3BzIHJlc2N1ZS4KCkRpc3RpbmN0IGRyaWxsLWNvcHktcmVzY3VlLXIxL25ld2xpbmtlZGpvdXJuYWwgcHJlc2VydmVzIG9yaWdpbmFsIFVOQ0VSVEFJTmNvcHkgYW5kIGV4YWN0IGpvdXJuYWxoYXNoL2F0dGVtcHRzLiBObyBvbGRyZXRyeS9vdmVyd3JpdGUsIG5vIG5ld2RyaWxsYmFja3VwLiBSZXF1aXJlIG9yaWdpbmFsQ09NUExFVEViYWNrdXAvVU5DRVJUQUlOY29weSBvbmx5LCBhYnNlbnRsb2NhbGZpbGVzL3Jlc3RvcmV2b2x1bWUsIG9yaWdpbmFsbmF0aXZlUG9kVUlEL2N1cnJlbnRvbGRpbWFnZStzb3VyY2VwaW4gYW5kIGFsbENNL1BWQy9EZXBsb3ltZW50IHNlYWxzLiBDb3B5IHNuYXBzaG90Ynl0ZXMgb25seSBpbnRvIGEgbmV3cHJpdmF0ZTA2MDBmaWxlLiBSZW1haW5pbmdvcmRlcmVkcGhhc2VzIGV4cGxpY2l0bHkgY29uc3VtZSBDT01QTEVURXJlc2N1ZXJlc3VsdDsgb25lIGlzb2xhdGVkIFVJRDAvQ0FQX0NIT1dOLW9ubHkgTkVXdm9sdW1lIGluaXRpYWxpemVyIHRoZW4gVUlEMTAwMDEgcHJlLW9wZW4vYWRtaW4vcG9zdC1hZG1pbiBjaGVja3MgcHJvdmVzIHJlYWwtZGF0YSBjb21wYXRpYmlsaXR5IGJlZm9yZSBjdXRvdmVyLiBObyBob3N0L25hdGl2ZVBWQy9ydW50aW1lY29uZmlnL3Rva2VuIG1vdW50czsgbm8gc2VydmljZSBzdGFydHVwLiBBbnkgYXR0ZW1wdGVkIGZhaWx1cmUvYW1iaWd1aXR5IGlzIGR1cmFibGUgYW5kIGNhbm5vdHJldHJ5LgoKSW1hZ2U3NjNjIGZyb20gYWN0dWFsQ0kzZTRiY2IyNiByZW1haW5zIHVuY2hhbmdlZDhiYXNlIGxheWVycyBwbHVzcG9saWN5LnB5OyBsZWdhY3lzZXJpYWxpemF0aW9uIGRpZmZlcmVuY2VzIGRpc2Nsb3NlZC4gQWN0dWFsaW5zdGFsbGVkVUlEMTAwMDEvMTBwdXJwb3NldmFyaWFudHMgcGFzczsgbmF0aXZlX3Byb3ZpZGVyPWZhbHNlL3N5bnRoZXRpY3RyYW5zcG9ydCBpcyBub3QgYWN0dWFsUERQYXV0aG9yaXR5IHByb29mLCB3aGljaCByZW1haW5zIHNlcGFyYXRlVDA0Z2F0ZS4gQWN0dWFsZnVsbDQ0cGFja2FnZXNjYW4wSElHSC9DUklUSUNBTCwgT05FZml4YWJsZWluaGVyaXRlZE1FRElVTXpsaWJDVkUtMjAyNi04NTA5MSgxLjMuMi1yMOKGknIxKSwgaWRlbnRpY2FsYmFzZWZpbmRpbmcuIEV4cGxpY2l0dGVtcG9yYXJ5cGVybWlzc2lvbiBmb3IgdGhpcyBmaW5kaW5nIGlzIHJlcXVlc3RlZCBhZ2Fpbiwgd2l0aCBvd25lclQwNS9yaXNrcmVjb3JkZHVlT2N0MTg7IG5vIHplcm8tQ1ZFL1Jpc2tOZXh1c2dyYWRlY2xhaW0uIFJhd3NjYW4vU0JPTS9iYXNlIHNjYW4gc3RheSB1bmNoYW5nZWRoYXNoYm91bmQgdmlhIHB1Ymxpc2hlZHJlY2VpcHQ7IGV4YWN0aGVscGVyYW5kb3JpZ2luYWxjb3VudC1vbmx5cmVjZWlwdHMgZGlyZWN0bHlidW5kbGUtYm91bmQgd2l0aGluMjBkb2NzLgoKQWZ0ZXIgcmVzY3VlK29mZmxpbmVnYXRlcywgZGlzdGluY3RjdXRvdmVyYmFja3VwL2NvcHkgYW5kIG1hbnVhbEFyZ29EZXBsb3ltZW50LW9ubHkgaW1hZ2U3NjNjL3BydW5lPWZhbHNlIHJlbWFpbiBjb25kaXRpb25hbC4gRm91cmNvbW1pdHRlZEt1c3RvbWl6ZWJsb2JzL2N1cnJlbnRmaW5hbHNvdXJjZUhFQUQvaGVscGVycy9jYXNlaGFzaGVzIG1hdGNoOyBhdXRvbWF0ZWR7fSBvciBvdmVycmlkZXMgcmVmdXNlLiBDb25maWc2Yy9zY2hlbWE1L1BWQy9pZGVudGl0eS9wb2xpY2llcy9yZXBsaWNhMVJlY3JlYXRlIHN0YXlmaXhlZC4gUm9sbGJhY2tkb2Vzbm90bmVlZCBSZWFkeWNhbmRpZGF0ZSBvciBpdHNEQmV4ZWM7IG9sZGltYWdlUmVhZHkvc2NvcGVkb3BlcmF0aW9uL3NjaGVtYTVjdXJyZW50REIgaXMgYSBzZXBhcmF0ZXByb29mLiBQcmVzZXJ2ZSBsYXRlc3RsaXZlREIvYWxsbmV3Y29tbWl0cyBhbmQgYWxsdW5jZXJ0YWlub3V0Y29tZXM7IG5ldmVycmVzdG9yZW9sZGVyYmFja3VwIG92ZXJsYXRlcnJlY29yZHMuCgpBbGxwaGFzZXMgaW5jbHVkaW5nIHJlc2N1ZS9yZWNvdmVyeS92ZXJpZnkgbXVzdGJlZ2luIGJlZm9yZU9jdDEyIDIzOjU5OjU5WjsgZXhwaXJ5cmVxdWlyZXNuZXdkZWNpc2lvbiBhbmQgbWF5ZGVsYXlyZWNvdmVyeS4gTm8gYXV0b21hdGljZXhwaXJ5Y29udHJvbGxlci4gRnJlc2hyb290LWF1dGhlbnRpY2F0ZWQgbmF0aXZlZm91bmRlcmFjY2VwdGFuY2UgdmVyc2lvbjIgYmVmb3JlZWFjaHBoYXNlOyByZWNlaXB0cyBhcmUgc3VwZXJ2aXNlZGJvb2trZWVwaW5nLCBub3RzaWduZWRncmFudC9hdXRvbm9teS4gRVVSMCByZWN1cnJpbmdpbmZyYSwgZXhpc3Rpbmdwcml2YXRlY29weS9zdG9yYWdlL2F0dGVuZGVkdGltZSB1bnByaWNlZDsgbm8gc2Vjb25kbmF0aXZlIGRyaWxsYmFja3VwLiBFeGFjdG9yaWdpbmFsYXBwcm92ZWRwYWNrZXQvZmFpbHVyZS90ZWNobmljYWxyZWZpbmVtZW50cyBwcmVzZXJ2ZWQgc2FtZXByb3Bvc2FsL3RyaWFsLiBObyB2ZXJzaW9uMm5hdGl2ZW9wZXJhdGlvbiB5ZXQuCg=="
|
|
},
|
|
{
|
|
"digest": "sha256:e4d8fa77ce97f9cc190e9cae8f86478dba5e89cc7a13bf993e3b8d47a3160b36",
|
|
"media_type": "application/json",
|
|
"content_base64": "ewogICJwcm9wb3NhbF9pZCI6ICJJTkZELVdQLTAwMDktVDA0L3B1cnBvc2Utb3ZlcmxheS12MSIsCiAgInRyaWFsX2lkIjogImluZmQtcHVycG9zZS0yMDI2MTAxMS1yMSIsCiAgInN0YXRlIjogInByZXBhcmVkLXVuYXBwcm92ZWQiLAogICJ0YXJnZXQiOiAicmVhbG06a3ViZXJuZXRlcy9yYWlsaWFuY2UwMS9pbmZvcm1lZC1kZWNpc2lvbiIsCiAgImF1dGhvcml0eSI6ICJBRE1JTklTVEVSOyBhY3RpdmF0aW9uIEFQUFJPVkVEIG9ubHkgdXBvbiBleGFjdCBmb3VuZGVyIGRpc3Bvc2l0aW9uIiwKICAiY2FuZGlkYXRlX2ltYWdlIjogImZvcmdlam8uY291bG9tYi5zb2NpYWwvY291bG9tYi9pbmZvcm1lZC1kZWNpc2lvbkBzaGEyNTY6NzYzYzM2NDAyYzhiZTdjYzRjMWJkMWE2MTYyM2QxYWZmOTExNmQ1MjI0MTg3NzQyNWI0NWE3MDE4Y2MwODgzYSIsCiAgInB1Ymxpc2hlZF9zb3VyY2VfcmV2aXNpb24iOiAiM2U0YmNiMjZmOGVlYWE4YzY0MzQ1YzU2NTQ3N2I1YWM4Y2NiYjE2OCIsCiAgInByaW9yX2ltYWdlIjogImZvcmdlam8uY291bG9tYi5zb2NpYWwvY291bG9tYi9pbmZvcm1lZC1kZWNpc2lvbkBzaGEyNTY6N2Y1YzZjYjI5YzlmNzBhMDI2YmZlMzBlNzI5MzQyNzRkZGM2OTI2MTY3NmNmNmQ0NzZmODFkZDMyODEyZDE3MyIsCiAgInByaW9yX2FyZ29fcmV2aXNpb24iOiAiN2RiODQ4NWZmZWNkZWJmYWJkNzdhOWRhZWMwODU1NTNjNzRiZjBiZiIsCiAgIm5hdGl2ZV9vYmplY3QiOiB7CiAgICAiYXBpVmVyc2lvbiI6ICJhcHBzL3YxIiwKICAgICJraW5kIjogIkRlcGxveW1lbnQiLAogICAgIm5hbWVzcGFjZSI6ICJpbmZvcm1lZC1kZWNpc2lvbiIsCiAgICAibmFtZSI6ICJpbmZvcm1lZC1kZWNpc2lvbiIsCiAgICAidWlkIjogImE1ODhlMTBhLTkwZDItNDg4My05NzVlLTZkZDhiOGZlY2E5MiIKICB9LAogICJhcmdvX2FwcGxpY2F0aW9uX3VpZCI6ICI0OTk4NjhmMi1lYWJjLTRkZjQtYWUzMS1iODljZTU4ZDc1MGQiLAogICJzb3VyY2VfZ2F0ZSI6ICJBbGwgZm91ciBleGFjdCBjb21taXR0ZWQgb3duZXIgS3VzdG9taXplIGlucHV0IGJsb2JzIGluIGV4ZWN1dGlvbi1wbGFuLmpzb24gYW5kIGNsZWFuIGN1cnJlbnQgb3duZXIgSEVBRCBtdXN0IG1hdGNoOyBzb3VyY2UgcHJlcGFyYXRpb24gaXMgbm90IG5hdGl2ZSBhcHByb3ZhbCIsCiAgInN5bmNfc2NvcGUiOiBbCiAgICAiYXBwczpEZXBsb3ltZW50OmluZm9ybWVkLWRlY2lzaW9uIgogIF0sCiAgInBydW5lIjogZmFsc2UsCiAgImF1dG9tYXRlZF9zeW5jIjogZmFsc2UsCiAgInJ1bnRpbWVfY29uZmlnbWFwIjogImluZm9ybWVkLWRlY2lzaW9uLXJ1bnRpbWUtNmMyMjE4NzhkMDUxIiwKICAic2NoZW1hIjogNSwKICAicmVxdWVzdGVkX29wZXJhdGlvbnMiOiBbCiAgICAiUmVhZC1vbmx5IGltbXV0YWJsZSB2YWxpZGF0aW9uIG9mIGV4aXN0aW5nIGZyb3plbjE5NTM3OTIwYnl0ZSBuYXRpdmUgZHJpbGwgc25hcHNob3QsIFNIQTg3NTYuLi4sIHByaXZhdGVjdXN0b2R5L25vLXdyaXRlci96ZXJvV0FML3N0YWxlU0hNIHJldGFpbmVkIiwKICAgICJEaXN0aW5jdCBkcmlsbC1jb3B5LXJlc2N1ZS1yMSBiaW5hcnljb3B5IGludG8gYWJzZW50MDYwMHByb3RlY3RlZCBsb2NhbCBkZXN0aW5hdGlvbiwgbmV3IGhhc2gtbGlua2VkIHJlc2N1ZSBqb3VybmFsIHByZXNlcnZpbmcgb2xkIFVOQ0VSVEFJTiBjb3B5IiwKICAgICJFeGlzdGluZyBpc29sYXRlZCBvZmZsaW5lIHByZS1vcGVuL2FkbWluL3Bvc3Qtb3BlbiBjb21wYXRpYmlsaXR5IGRyaWxsIGFuZCBkaXNwb3NhYmxlLXZvbHVtZSBjbGVhbnVwIHVzaW5nIHJlc2N1ZWQgcmVzdWx0IiwKICAgICJEaXN0aW5jdCBjb25zaXN0ZW50IGN1dG92ZXIgc25hcHNob3QgcGx1cyBwcm90ZWN0ZWRjb3B5LCBmb2xsb3dlZCBvbmx5IGFmdGVyIGFsbGdhdGVzIGJ5IERlcGxveW1lbnQtb25seSBpbWFnZSByZWxlYXNlL3ZlcmlmeTsgc2FtZS1zY2hlbWEgcm9sbGJhY2svcmVjb3ZlcnkgcHJvb2YgaWYgbmVlZGVkIgogIF0sCiAgImV4ZWN1dGVfYnkiOiAiMjAyNi0xMC0xMlQyMzo1OTo1OVoiLAogICJ0ZW1wb3JhcnlfdnVsbmVyYWJpbGl0eV9yZXZpZXdfZHVlIjogIjIwMjYtMTAtMTgiLAogICJrbm93bl9zY2FuX2ZpbmRpbmdzIjogIjBISUdIL0NSSVRJQ0FMLDFmaXhhYmxlIGluaGVyaXRlZE1FRElVTSB6bGliLCBhY3R1YWwgY3VycmVudGJhc2UrY2FuZGlkYXRlIGZpbmRpbmdzIGlkZW50aWNhbCIsCiAgInZ1bG5lcmFiaWxpdHlfcmVjb3JkIjogIklORkQtUklTSy0yMDI2MTAxMS1aTElCLTg1MDkxIC8gSU5GRC1XUC0wMDA5LVQwNSIsCiAgImNvc3RfZXN0aW1hdGVfRVVSIjogMCwKICAiY29zdF9saW1pdHMiOiAiTm8gYWRkaXRpb25hbCByZWN1cnJpbmcgaW5mcmFzdHJ1Y3R1cmUgb3Igc2Vjb25kIGRyaWxsIGJhY2t1cC4gRXhpc3RpbmcgbmF0aXZlIHNuYXBzaG90MTk1Mzc5MjBieXRlcyByZXRhaW5lZDsgcHJvdGVjdGVkIGxvY2FsY29weS9vZmZsaW5lY2xvbmUgcGx1cyBkaXN0aW5jdCBjdXRvdmVyIHNuYXBzaG90cyBjb25zdW1lIGJvdW5kZWRleGlzdGluZ3N0b3JhZ2UuIEF0dGVuZGVkZW5naW5lZXJpbmcvcmVjb3ZlcnkgdGltZSB1bnByaWNlZDsgbm8gYXV0b3BpbG90IGdyYW50LiIsCiAgInJpc2tfZXN0aW1hdGVzIjogWwogICAgIkJyaWVmIFJlY3JlYXRlIHNlcnZpY2UgaW50ZXJydXB0aW9uOyBubyBjb25jdXJyZW50IG5ldyB3cml0ZXIvc3VyZ2UiLAogICAgIlByaXZhdGUgZXZpZGVuY2Ugc25hcHNob3QgY3VzdG9keSBhbmQgZGlzcG9zYWwgZXJyb3JzOyBubyBzbmFwc2hvdHMvdG9rZW5zIGluIHB1YmxpYyBldmlkZW5jZSIsCiAgICAiQ2FuZGlkYXRlIHB1cnBvc2UgcmVmdXNhbCBtYXkgZXhwb3NlIGNhbGxlcnMgcmVseWluZyBvbiBhZHZpc29yeSByZXN1bHRzIGFzIGJpbmRpbmciLAogICAgIkluaGVyaXRlZCBrbm93biBmaXhhYmxlIE1FRElVTSByZW1haW5zIHVudGlsIHNlcGFyYXRlbHkgYXBwcm92ZWQgb3duZXIgcmVtZWRpYXRpb24iLAogICAgIkV4aXN0aW5nIEFyZ28gT3V0T2ZTeW5jIGJhc2VsaW5lIGlzIHJldGFpbmVkOyBubyB3aG9sZS1hcHAgc3luYyBvciB1bnJlbGF0ZWQgcmVwYWlycyBwZXJtaXR0ZWQiLAogICAgIkFsbCBwaGFzZXMsIGluY2x1ZGluZyByZWNvdmVyeS92ZXJpZmljYXRpb24sIG11c3QgYmVnaW4gYmVmb3JlIE9jdDEyIGRlYWRsaW5lOyBpZiByZWNvdmVyeSB3aW5kb3cgaXMgZXhoYXVzdGVkIHN0b3AgYW5kIG9idGFpbiBhIGZyZXNoIGZvdW5kZXIgZGVjaXNpb24uIE5vIGF1dG9tYXRpYyBleHBpcnkgY29udHJvbGxlci4iCiAgXSwKICAicm9sbGJhY2siOiAiTWFudWFsIEFyZ28gc291cmNlIHBpbiBiYWNrIHRvN2RiODQ4NSBhbmQgc2NvcGVkIERlcGxveW1lbnQtb25seSBzeW5jIHRvN2Y1YyBpbWFnZTsgcmV0YWluIGN1cnJlbnQgc2NoZW1hNSBkYXRhYmFzZSBhbmQgYWxsIHBvc3QtY3V0b3ZlciBldmlkZW5jZSwgbmV2ZXIgcmVzdG9yZSBvbGRlciBzbmFwc2hvdCBvdmVyIGxpdmUgd3JpdGVzIiwKICAibmF0aXZlX2V4ZWN1dGVkIjogIk9yaWdpbmFsIGRyaWxsLWJhY2t1cCBleGVjdXRlZDsgb3JpZ2luYWwgZHJpbGwtY29weSBmYWlsZWQuIE5vIHZlcnNpb24yIGFjdGlvbiBleGVjdXRlZC4iLAogICJodW1hbl9hcHByb3ZhbCI6ICJWZXJzaW9uMSBhY2NlcHRlZCBvcmlnaW5hbHNvdXJjZTsgdmVyc2lvbjIgcmVxdWlyZXMgZnJlc2ggZXhhY3QgYWNjZXB0YW5jZS4iLAogICJyZWZpbmVtZW50X29mX21hbmlmZXN0IjogIjdjNjczOGIzOWVhOGU1NGU2MWM4ZWQ2MjVlOTRhZDBiMjc1NWU2NzJlMTU3NmVmY2RmODRhMWQ2NjVhYzMzMDAiLAogICJtYW5kYXRvcnlfcHJlX29wZW5fZ2F0ZSI6ICJzdGRsaWJTUUxpdGUgbW9kZT1yby9xdWVyeV9vbmx5OiBzY2hlbWE1K2ludGVncml0eStjb3VudCBiYXNlbGluZSBiZWZvcmUgQU5ZIFN0b3JlL2FkbWluIG9uIG5hdGl2ZSBzb3VyY2Ugb3IgcmVzdG9yZWRjb3B5OyByZWZ1c2VvbGRzY2hlbWFzIHdpdGhvdXQgbWlncmF0aW9uIiwKICAib3B0aW1pemVkX2ludGVycHJldGVycyI6ICJsb2NhbCtyZW1vdGUgZXhwbGljaXRseXJlZnVzZWQgYmVmb3JlYXNzZXJ0IGdhdGVzIiwKICAibmF0aXZlX2RlcGVuZGVuY3lfZ2F0ZSI6ICJzZWFsZWQgYWN0dWFsQ00gVUlEL2ltbXV0YWJsZS9jYW5vbmljYWxkYXRhaGFzaCtQVkMgVUlEL2Z1bGxzcGVjL0JvdW5kL3ZvbHVtZU5hbWUsIG5vIHJhd0NNZGF0YSBvclNlY3JldCByZWFkcyIsCiAgImxpdmVfY291bnRzIjogIkZyb3plbiBzbmFwc2hvdC9jbG9uZSBleGFjdGNvdW50ZXIgZXF1YWxpdHk7IHBvc3RjdXRvdmVyL3JvbGxiYWNrIGxpdmVjb3VudGVyY2hhbmdlcyBtYXkgcmVmbGVjdCBsZWdpdGltYXRlIGNvbmN1cnJlbnRjb21taXRzL3N0YXRlIHRyYW5zaXRpb25zLCBsYXRlc3REQiBhbHdheXNyZXRhaW5lZCIsCiAgInNvdXJjZV9iYXNpcyI6IHsKICAgICJvcmlnaW5hbF9hcHByb3ZlZF9zb3VyY2UiOiAiYmM2NDk0Y2QxYjI5MDc4M2VmM2FlZjA3NjNiZjI4ZDFkZWFiZjRiMCIsCiAgICAiZmluYWxfcmVjb3Zlcnlfc291cmNlIjogImV4YWN0IGZpbmFsIHJvb3QtYXBwbGllZCBvd25lciBIRUFEIHdpdGggYXBwcm92ZWQgZm91ciByZW5kZXIgYmxvYnMgbXVzdCBiZSBib3VuZCBieSBuZXcgZm91bmRlciByZWNlaXB0IgogIH0sCiAgImFwcHJvdmVkX293bmVyX3JlbmRlcl9ibG9iX3NoYTI1NiI6IHsKICAgICJkZXBsb3kvbGlmZWN5Y2xlL2FkbWlzc2lvbi5jYW5kaWRhdGUuanNvbiI6ICI5MjM4MmE1NmIzNDljM2I4OTVlNTgwNmU5NzUwODI1MjdiYjk5ZDFhMDAxMTQwZTY5ZDg1N2U1YjAzOTFmYTU1IiwKICAgICJkZXBsb3kvbGlmZWN5Y2xlL3NlcnZpY2UuY2FuZGlkYXRlLmpzb24iOiAiMzhiNzhiOWNiZWU1YWRlNzc1MGE1OGQ1MTU2Y2E0YzU3NzMzNTJlOTQ3YWNiMzA0ZWU3MTRiNTllNzQ5Y2ViNCIsCiAgICAiZGVwbG95L2xpZmVjeWNsZS9rdXN0b21pemF0aW9uLnlhbWwiOiAiMWJiY2U4MWJjNjc1ODQzNDM1NDE1N2Y4NjAxNTM0MzIwYzVkMDI5MDU4NzkwOGZkMTVhNmQyNWUzZmE1N2Y0NyIsCiAgICAiZGVwbG95L2xpZmVjeWNsZS9yZWdpc3RyaWVzLmNhbmRpZGF0ZS5qc29uIjogIjliYWQ2ZGI1ZmJjMjE3OGQzMWIwNDEyMDAxNmE0MTgzMGMzNTUyZmJiOWUyNTE3YjcxOGY5YmJlODdjZjY0OWUiCiAgfSwKICAiZXhlY3V0aW9uX2J1bmRsZV9zaGEyNTYiOiAiNDljOWNiNzBmMzZmNmNlYjdiMGQyMjQwMGIyZWM5MjMyYTVlMWE4YTAwZDE3ZTkyYjkyZmUzNjdjOThlZmZiNSIsCiAgImV4ZWN1dGlvbl9wbGFuX3NoYTI1NiI6ICI5Y2U1NzI4YTU2MWU2ZDM4Zjg0OTcyMDFiYWEyYjg0MGQxMTQ0NGEwYWY4YWQ2MjM0ZGZjMzc0MjgxMTNmMjU4IiwKICAiZXhlY3V0aW9uX3BoYXNlcyI6IFsKICAgICJkcmlsbC1jb3B5LXJlc2N1ZS1yMSIsCiAgICAib2ZmbGluZS12ZXJpZnkiLAogICAgImNsZWFudXAtb2ZmbGluZSIsCiAgICAiY3V0b3Zlci1iYWNrdXAiLAogICAgImN1dG92ZXItY29weSIsCiAgICAicmVsZWFzZSIsCiAgICAidmVyaWZ5IiwKICAgICJyb2xsYmFjayIsCiAgICAicm9sbGJhY2stdmVyaWZ5IgogIF0sCiAgImRlYWRsaW5lX3NlbWFudGljcyI6ICJBbGwgcGhhc2VzIGluY2x1ZGluZyB2ZXJpZmljYXRpb24vcmVjb3ZlcnkgbXVzdCBiZWdpbiBiZWZvcmUgZXhlY3V0ZV9ieS4gTm8gZXh0ZW5zaW9uIG9yIGF1dG9tYXRpYyBlbWVyZ2VuY3kgZ3JhbnQ7IGJleW9uZCBkZWFkbGluZSBzdG9wIGFuZCBvYnRhaW4gYSBmcmVzaCBmb3VuZGVyIGRlY2lzaW9uLiBDb21wbGV0ZSB0aGUgYm91bmRlZCBkcmlsbCBhbmQgcm9sbG91dCBlYXJseSBlbm91Z2ggdG8gYWxsb3cgcmVjb3Zlcnkgd2l0aGluIHRoZSB3aW5kb3cuIiwKICAib2ZmbGluZV9pbml0aWFsaXplciI6ICJPbmUgaXNvbGF0ZWQgbG9jYWwgVUlEMDowL0NBUF9DSE9XTi1vbmx5IGluaXRpYWxpemVyIG9mIHRoZSBuZXdseSBjcmVhdGVkIG5vbmNlLWJvdW5kIGRpc3Bvc2FibGUgdm9sdW1lLCBleGFjdCBjYW5kaWRhdGUgaW1hZ2UsIG5ldHdvcmtub25lL3JlYWRvbmx5cm9vdC9uby1uZXdwcml2aWxlZ2VzL0NQVTEvMTI4TWk7IG5vIGhvc3QvbGl2ZVBWQy90b2tlbi9jb25maWcgbW91bnQuIFN1YnNlcXVlbnQgcHJlLW9wZW4vYWRtaW4vcG9zdC1vcGVuIGNoZWNrcyBVSUQxMDAwMToxMDAwMS4iLAogICJyb2xsYmFja19kaXNwYXRjaCI6ICJTZWFsZWQgRGVwbG95bWVudC9DTS9QVkMgYW5kIHNhbWUtc2NoZW1hIHNvdXJjZS9pbWFnZSBwYWlyIHBsdXMgYWRtaXNzaW9uIENBUzsgbm8gUmVhZHkgY2FuZGlkYXRlIG9yIFBvZC9kYXRhYmFzZSBleGVjIHByZXJlcXVpc2l0ZS4gcm9sbGJhY2stdmVyaWZ5IHNlcGFyYXRlbHkgcHJvdmVzIHJlY292ZXJlZCBvbGQgaW1hZ2UvUmVhZHkxL3Njb3BlZCBvcGVyYXRpb24gYW5kIHJlYWRvbmx5IGN1cnJlbnQgc2NoZW1hNS9pbnRlZ3JpdHkvY291bnRzLiIsCiAgInB1cnBvc2VfcHJvb2ZfbGltaXQiOiAiVGVuIGluc3RhbGxlZCBzeW50aGV0aWMtdHJhbnNwb3J0IGNoZWNrcyBvbiBhY3R1YWwgcGxhY2VtZW50OyBuYXRpdmVfcHJvdmlkZXI9ZmFsc2UuIE5vdCBhY3R1YWwgcHJvdmlkZXIvUERQIGF1dGhvcml0eSBwcm9vZiwgd2hpY2ggcmVtYWlucyBhIGRpc3RpbmN0IFQwNCBjb21wbGV0aW9uIGdhdGUuIiwKICAicmVmaW5lbWVudF9vZl9hbWVuZGVkX21hbmlmZXN0IjogImIxZTNlNjZiYzQwMjNkYzgwYzZlYTU5NTY0YzM1NTdjNzY1M2ZiM2MzMDdmNDZhMDQ5OTk3Yjc2MTk4YTkwMzMiLAogICJtZW1vX3ZlcnNpb24iOiAyLAogICJyZWNvdmVyeSI6IHsKICAgICJvcmlnaW5hbF9hbmNob3IiOiB7CiAgICAgICJvcmlnaW5hbF9qb3VybmFsX3NoYTI1NiI6ICJkMTg3YjAyZDk4ZDZlOTc0MjlmZTIwYjRmYmUxZDMwOWE2YzZjNGI1NTIzMmI0YWUxM2FjMzk4NzMwMzlmMWMxIiwKICAgICAgInBoYXNlX21ldGFkYXRhIjogewogICAgICAgICJkcmlsbC1iYWNrdXAiOiB7CiAgICAgICAgICAic3RhdGUiOiAiQ09NUExFVEUiLAogICAgICAgICAgImF0dGVtcHRfaWQiOiAiZDYzMTgyYTctZTFhNS00ZThlLWE1ZjEtMmJmMzMzM2NmMTUzIiwKICAgICAgICAgICJzdGFydGVkX2F0IjogIjIwMjYtMTAtMTFUMDI6Mzg6NDUuMzEwNjUzKzAwOjAwIgogICAgICAgIH0sCiAgICAgICAgImRyaWxsLWNvcHkiOiB7CiAgICAgICAgICAic3RhdGUiOiAiVU5DRVJUQUlOIiwKICAgICAgICAgICJhdHRlbXB0X2lkIjogIjMyOWVmMTkwLTE2OTItNDI0Ni1iOTUzLWU2YTU5NjY0YWJjYyIsCiAgICAgICAgICAic3RhcnRlZF9hdCI6ICIyMDI2LTEwLTExVDAyOjM5OjUwLjE5ODc0MCswMDowMCIKICAgICAgICB9CiAgICAgIH0sCiAgICAgICJmcm96ZW5fYmFja3VwX3JlY2VpcHRfc2hhMjU2IjogIjAyNWRkZGYxZTkzOTM2ZjMxZTk4YjlmYmZhODRhYTJiZGFhYTMzNTczZjlkM2IwZTMyZDk0N2ZkMjg2YjE3MGUiLAogICAgICAic25hcHNob3Rfc2hhMjU2IjogIjg3NTZjZjgyNWRmOWU3YjViNzRiYjRhMDEwNmE1MDI3ZjVjZmYyYzU5ZmY0NWQ3YjQ4ZWVkODUyMmE3ZDMzZjMiLAogICAgICAic25hcHNob3RfYnl0ZXMiOiAxOTUzNzkyMCwKICAgICAgIm9mZl9jbHVzdGVyX2ZpbGVfZXhpc3RzIjogZmFsc2UsCiAgICAgICJvbGRfdW5jZXJ0YWluX3JldHJ5X2F1dGhvcml6ZWQiOiBmYWxzZQogICAgfSwKICAgICJvcmlnaW5hbF9pZGVudGl0eSI6IHsKICAgICAgInByb3Bvc2FsIjogIklORkQtV1AtMDAwOS1UMDQvcHVycG9zZS1vdmVybGF5LXYxIiwKICAgICAgInNvdXJjZV9yZXZpc2lvbiI6ICJiYzY0OTRjZDFiMjkwNzgzZWYzYWVmMDc2M2JmMjhkMWRlYWJmNGIwIiwKICAgICAgIm1lbW9fc2hhMjU2IjogIjUwNmQzOTU2YmViN2M2MmFiMmJiZGZkYTc4M2MwNTkwNWQxODM0NTJhMWY2N2ExODE3ZjNmYjhjMmU1MjI5MzciLAogICAgICAicGxhbl9zaGEyNTYiOiAiZjVlNWZhOTA2ZmYxOWQzYTQ1ZDEwZGNkYjI4MTAzNzNhZTIxZjljZjQ0YzA0NzJmZjJiZDQ3ZDNiYzMzMjhkNiIKICAgIH0sCiAgICAibmV3X2pvdXJuYWwiOiAicmVzY3VlLWV4ZWN1dGlvbi1qb3VybmFsLXIxLmpzb24iLAogICAgIm5ld19waGFzZSI6ICJkcmlsbC1jb3B5LXJlc2N1ZS1yMSIsCiAgICAib2xkX3VuY2VydGFpbl9waGFzZV9vdmVyd3JpdGVfb3JfcmV0cnkiOiBmYWxzZSwKICAgICJuZXdfc25hcHNob3RfYmFja3VwIjogZmFsc2UsCiAgICAic25hcHNob3Rfb3Jfc2lkZWNhcl9tdXRhdGlvbiI6IGZhbHNlLAogICAgIm1hcHBpbmciOiAib2ZmbGluZS12ZXJpZnkgY29uc3VtZXMgQ09NUExFVEUgZHJpbGwtY29weS1yZXNjdWUtcjEgcmVzdWx0OyBhbGwgbGF0ZXIgcGhhc2VzIG9yZGVyZWQgb25seSBpbiBuZXcgaGFzaC1saW5rZWQgcmVjb3Zlcnkgam91cm5hbCIKICB9LAogICJvcmlnaW5hbF9uYXRpdmVfb3V0Y29tZSI6IHsKICAgICJkcmlsbC1iYWNrdXAiOiAiQ09NUExFVEUiLAogICAgImRyaWxsLWNvcHkiOiAiVU5DRVJUQUlOIGJlZm9yZSBsb2NhbGZpbGUgY3JlYXRpb24iLAogICAgIm5hdGl2ZV9pbWFnZSI6ICJ1bmNoYW5nZWQ3ZjU7IG5vIHJvbGxvdXQiLAogICAgIm9yaWdpbmFsX2pvdXJuYWxfYW5kX3NpZGVjYXJzIjogInJldGFpbmVkIHVuY2hhbmdlZCIKICB9LAogICJyZXNjdWVfbGltaXRzIjogIk5vIGxpdmVEQndyaXRlcyBkdXJpbmcgcmVzY3VlIGluc3BlY3Rpb24vY29weSwgbm8gc2lkZWNhciBkZWxldGlvbi9jaGVja3BvaW50LCBubyByZXRyeS9vdmVyd3JpdGUgb3JpZ2luYWwgVU5DRVJUQUlOIHBoYXNlLiBMYXRlciBleGlzdGluZyBhZG1pbiBvZmZsaW5laW5zcGVjdC9jdXRvdmVyYmFja3VwIGFuZCBpbWFnZSBhY3Rpb25zIG5lZWQgbmV3IGV4YWN0dmVyc2lvbjIgYWNjZXB0YW5jZSBhbmRvcmRlcmVkZ3VhcmRzLiIsCiAgInN1Ym1pc3Npb25fcm91dGUiOiAiUE9TVCAvbGlmZWN5Y2xlL21lbW9zL2luZmQtMjAyNjEwMTEtcHVycG9zZS1vdmVybGF5LXIxL3JldmlzaW9ucyBDQVMgZXhwZWN0ZWRfdmVyc2lvbjE7IHNvdXJjZSBtdXN0IHJlbWFpbiB1bmJvdW5kOyBwdWJsaXNoL3JldmlldyBzb3VyY2V2ZXJzaW9uMiwgcmVzdWx0aW5nIGh1bWFuIHJldmlldyBvd252ZXJzaW9uMSIsCiAgIm9yaWdpbmFsX2V4ZWN1dGlvbl9oZWxwZXJfbWFuaWZlc3Rfc2hhMjU2IjogImYyZmFkNmMyNTFmYmI0NDIwZTA3YzEzMjk4MDJmNTIxYjUxM2JiZjY2ZTUxZjY0YzVkNjczZWYwNGYxNjI4NGMiLAogICJvcmlnaW5hbF9leGVjdXRpb25faGVscGVyX21hbmlmZXN0X2NvbnRleHQiOiAiUmV0YWluZWQgaGlzdG9yaWNhbCBmMmZhZDYgaGVscGVyIHJldmlldyBiZWZvcmUgdGhlIGZhaWxlZCBhcHByb3ZlZCBiYWNrdXAvY29weSB0cmlhbDsgY3VycmVudCByZXNjdWUgZXhlY3V0aW9uIGJ5dGVzIGFyZSBib3VuZCBieSBleGVjdXRpb25fYnVuZGxlX3NoYTI1NiBhbmQgZXhlY3V0aW9uX3BsYW5fc2hhMjU2LiBUaGlzIGhpc3RvcmljYWwgbWFuaWZlc3QgZG9lcyBub3QgZGVzY3JpYmUgY3VycmVudCB2ZXJzaW9uMiByZXNjdWUgZmlsZXMuIgp9Cg=="
|
|
},
|
|
{
|
|
"digest": "sha256:92382a56b349c3b895e5806e975082527bb99d1a001140e69d857e5b0391fa55",
|
|
"media_type": "application/json",
|
|
"content_base64": "ewogICJpbWFnZSI6ICJmb3JnZWpvLmNvdWxvbWIuc29jaWFsL2NvdWxvbWIvaW5mb3JtZWQtZGVjaXNpb25Ac2hhMjU2Ojc2M2MzNjQwMmM4YmU3Y2M0YzFiZDFhNjE2MjNkMWFmZjkxMTZkNTIyNDE4Nzc0MjViNDVhNzAxOGNjMDg4M2EiLAogICJwb2xpY3kiOiB7CiAgICAib3JpZ2luIjogImh0dHA6Ly9mbGV4LWF1dGgtaW5mb3JtZWQtZGVjaXNpb24tc2l0dGluZy5mbGV4LWF1dGguc3ZjLmNsdXN0ZXIubG9jYWw6ODA4MCIsCiAgICAicGFja2FnZSI6ICJpbmZvcm1lZC1kZWNpc2lvbi5jb21wYWN0LXNpdHRpbmciLAogICAgInZlcnNpb24iOiAidjEzIiwKICAgICJwYWNrYWdlX2RpZ2VzdCI6ICJzaGEyNTY6MzFiZTU5ODVjMGMxZTZiMGMzYTAzOWVkNzMxMGQxZTk0ZGFmNTIzYTk0ZjZkOTI2ZTZlOGQ3NTlkMzcxMTg3MyIsCiAgICAicG9kX25hbWUiOiAiZmxleC1hdXRoLWluZm9ybWVkLWRlY2lzaW9uLXNpdHRpbmciCiAgfSwKICAia2V5Y2FwZV9lZ3Jlc3NfaXBzIjogWwogICAgIjkyLjIwNS42Mi4yMzkiCiAgXSwKICAic3RvcmFnZV9jbGFzcyI6ICJsb2NhbC1wYXRoIiwKICAib3JkaW5hcnlfYXBwcm92YWxfaWRzIjogWwogICAgIjJjZTc2ZDdmLTAxYzMtNGI2My04NDc2LThkMTIzMDY3OTc2OSIsCiAgICAiYzJhZjRiY2YtMTViNC00MzA1LWFhYzEtYWNjN2U0ZGNiMDk5IiwKICAgICJkYzIyNjY2YS1kNWQ3LTQ2YmMtOTQ5MC1lYmU5ZmUwOWRjMzgiCiAgXSwKICAibGlmZWN5Y2xlX3BvbGljeSI6IHsKICAgICJwYWNrYWdlIjogImluZm9ybWVkLWRlY2lzaW9uLmxpZmVjeWNsZSIsCiAgICAidmVyc2lvbiI6ICJ2MiIsCiAgICAicGFja2FnZV9kaWdlc3QiOiAic2hhMjU2OmRhMDFlMDQ1ZmMxMDhhZGVjNmI0ODllNWQ1MWY3ZTU3MzY2NzkzMDE2YzVhNjQ3NzY5NjM3ODBhNmFhZTQ1N2MiLAogICAgIm9yaWdpbiI6ICJodHRwOi8vZmxleC1hdXRoLWluZm9ybWVkLWRlY2lzaW9uLWxpZmVjeWNsZS5mbGV4LWF1dGguc3ZjLmNsdXN0ZXIubG9jYWw6ODA4MCIsCiAgICAicG9kX25hbWUiOiAiZmxleC1hdXRoLWluZm9ybWVkLWRlY2lzaW9uLWxpZmVjeWNsZSIKICB9LAogICJsaWZlY3ljbGVfZGVsaXZlcnkiOiB0cnVlLAogICJpbnRha2VfYXR0cmlidXRlcyI6IHRydWUsCiAgImludGFrZV9kZWxpdmVyeSI6IHsKICAgICJodWJfb3JpZ2luIjogImh0dHA6Ly9zdGF0ZS1odWIuc3RhdGUtaHViLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAiCiAgfSwKICAid29ya2xvYWRfYXBpIjogewogICAgInJlZ2lzdHJpZXNfY29uZmlnbWFwIjogImluZm9ybWVkLWRlY2lzaW9uLXdvcmtsb2FkLXJlZ2lzdHJ5IiwKICAgICJwZWVycyI6IFsKICAgICAgewogICAgICAgICJuYW1lc3BhY2UiOiAic3RhdGUtaHViIiwKICAgICAgICAiYXBwIjogInN0YXRlLWh1YiIKICAgICAgfQogICAgXSwKICAgICJhcGlfZWdyZXNzIjogWwogICAgICB7CiAgICAgICAgImlwIjogIjEwLjQzLjAuMSIsCiAgICAgICAgInBvcnQiOiA0NDMKICAgICAgfSwKICAgICAgewogICAgICAgICJpcCI6ICI5Mi4yMDUuNjIuMjM5IiwKICAgICAgICAicG9ydCI6IDY0NDMKICAgICAgfQogICAgXSwKICAgICJpbnRha2UiOiB0cnVlLAogICAgImxpZmVjeWNsZSI6IHRydWUKICB9Cn0K"
|
|
},
|
|
{
|
|
"digest": "sha256:22f830736ee56f6ed9b62f47d243e4e24a1b68263b261e78e2f1cfcb85adbd50",
|
|
"media_type": "application/json",
|
|
"content_base64": "ewogICJpbWFnZSI6ICJmb3JnZWpvLmNvdWxvbWIuc29jaWFsL2NvdWxvbWIvaW5mb3JtZWQtZGVjaXNpb25Ac2hhMjU2OjdmNWM2Y2IyOWM5ZjcwYTAyNmJmZTMwZTcyOTM0Mjc0ZGRjNjkyNjE2NzZjZjZkNDc2ZjgxZGQzMjgxMmQxNzMiLAogICJwb2xpY3kiOiB7CiAgICAib3JpZ2luIjogImh0dHA6Ly9mbGV4LWF1dGgtaW5mb3JtZWQtZGVjaXNpb24tc2l0dGluZy5mbGV4LWF1dGguc3ZjLmNsdXN0ZXIubG9jYWw6ODA4MCIsCiAgICAicGFja2FnZSI6ICJpbmZvcm1lZC1kZWNpc2lvbi5jb21wYWN0LXNpdHRpbmciLAogICAgInZlcnNpb24iOiAidjEzIiwKICAgICJwYWNrYWdlX2RpZ2VzdCI6ICJzaGEyNTY6MzFiZTU5ODVjMGMxZTZiMGMzYTAzOWVkNzMxMGQxZTk0ZGFmNTIzYTk0ZjZkOTI2ZTZlOGQ3NTlkMzcxMTg3MyIsCiAgICAicG9kX25hbWUiOiAiZmxleC1hdXRoLWluZm9ybWVkLWRlY2lzaW9uLXNpdHRpbmciCiAgfSwKICAia2V5Y2FwZV9lZ3Jlc3NfaXBzIjogWwogICAgIjkyLjIwNS42Mi4yMzkiCiAgXSwKICAic3RvcmFnZV9jbGFzcyI6ICJsb2NhbC1wYXRoIiwKICAib3JkaW5hcnlfYXBwcm92YWxfaWRzIjogWwogICAgIjJjZTc2ZDdmLTAxYzMtNGI2My04NDc2LThkMTIzMDY3OTc2OSIsCiAgICAiYzJhZjRiY2YtMTViNC00MzA1LWFhYzEtYWNjN2U0ZGNiMDk5IiwKICAgICJkYzIyNjY2YS1kNWQ3LTQ2YmMtOTQ5MC1lYmU5ZmUwOWRjMzgiCiAgXSwKICAibGlmZWN5Y2xlX3BvbGljeSI6IHsKICAgICJwYWNrYWdlIjogImluZm9ybWVkLWRlY2lzaW9uLmxpZmVjeWNsZSIsCiAgICAidmVyc2lvbiI6ICJ2MiIsCiAgICAicGFja2FnZV9kaWdlc3QiOiAic2hhMjU2OmRhMDFlMDQ1ZmMxMDhhZGVjNmI0ODllNWQ1MWY3ZTU3MzY2NzkzMDE2YzVhNjQ3NzY5NjM3ODBhNmFhZTQ1N2MiLAogICAgIm9yaWdpbiI6ICJodHRwOi8vZmxleC1hdXRoLWluZm9ybWVkLWRlY2lzaW9uLWxpZmVjeWNsZS5mbGV4LWF1dGguc3ZjLmNsdXN0ZXIubG9jYWw6ODA4MCIsCiAgICAicG9kX25hbWUiOiAiZmxleC1hdXRoLWluZm9ybWVkLWRlY2lzaW9uLWxpZmVjeWNsZSIKICB9LAogICJsaWZlY3ljbGVfZGVsaXZlcnkiOiB0cnVlLAogICJpbnRha2VfYXR0cmlidXRlcyI6IHRydWUsCiAgImludGFrZV9kZWxpdmVyeSI6IHsKICAgICJodWJfb3JpZ2luIjogImh0dHA6Ly9zdGF0ZS1odWIuc3RhdGUtaHViLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAiCiAgfSwKICAid29ya2xvYWRfYXBpIjogewogICAgInJlZ2lzdHJpZXNfY29uZmlnbWFwIjogImluZm9ybWVkLWRlY2lzaW9uLXdvcmtsb2FkLXJlZ2lzdHJ5IiwKICAgICJwZWVycyI6IFsKICAgICAgewogICAgICAgICJuYW1lc3BhY2UiOiAic3RhdGUtaHViIiwKICAgICAgICAiYXBwIjogInN0YXRlLWh1YiIKICAgICAgfQogICAgXSwKICAgICJhcGlfZWdyZXNzIjogWwogICAgICB7CiAgICAgICAgImlwIjogIjEwLjQzLjAuMSIsCiAgICAgICAgInBvcnQiOiA0NDMKICAgICAgfSwKICAgICAgewogICAgICAgICJpcCI6ICI5Mi4yMDUuNjIuMjM5IiwKICAgICAgICAicG9ydCI6IDY0NDMKICAgICAgfQogICAgXSwKICAgICJpbnRha2UiOiB0cnVlLAogICAgImxpZmVjeWNsZSI6IHRydWUKICB9Cn0K"
|
|
},
|
|
{
|
|
"digest": "sha256:722a8e2dc52bec217bf960e23b2fddfc7ac27d343ac8743790e3183db81a6a0e",
|
|
"media_type": "application/json",
|
|
"content_base64": "ewogICJhcGlWZXJzaW9uIjogImFwcHMvdjEiLAogICJraW5kIjogIkRlcGxveW1lbnQiLAogICJtZXRhZGF0YSI6IHsKICAgICJhbm5vdGF0aW9ucyI6IHsKICAgICAgImluZm9ybWVkLWRlY2lzaW9uLmNvdWxvbWIuc29jaWFsL2FkbWlzc2lvbiI6ICJhcHByb3ZlZDsgSU5GRC1XUC0wMDA3IGN1dG92ZXIiLAogICAgICAiYXJnb2NkLmFyZ29wcm9qLmlvL3RyYWNraW5nLWlkIjogImluZm9ybWVkLWRlY2lzaW9uOmFwcHMvRGVwbG95bWVudDppbmZvcm1lZC1kZWNpc2lvbi9pbmZvcm1lZC1kZWNpc2lvbiIKICAgIH0sCiAgICAibmFtZSI6ICJpbmZvcm1lZC1kZWNpc2lvbiIsCiAgICAibmFtZXNwYWNlIjogImluZm9ybWVkLWRlY2lzaW9uIgogIH0sCiAgInNwZWMiOiB7CiAgICAicHJvZ3Jlc3NEZWFkbGluZVNlY29uZHMiOiA2MDAsCiAgICAicmVwbGljYXMiOiAxLAogICAgInNlbGVjdG9yIjogewogICAgICAibWF0Y2hMYWJlbHMiOiB7CiAgICAgICAgImFwcC5rdWJlcm5ldGVzLmlvL25hbWUiOiAiaW5mb3JtZWQtZGVjaXNpb24iCiAgICAgIH0KICAgIH0sCiAgICAic3RyYXRlZ3kiOiB7CiAgICAgICJ0eXBlIjogIlJlY3JlYXRlIgogICAgfSwKICAgICJ0ZW1wbGF0ZSI6IHsKICAgICAgIm1ldGFkYXRhIjogewogICAgICAgICJhbm5vdGF0aW9ucyI6IHsKICAgICAgICAgICJpbmZvcm1lZC1kZWNpc2lvbi5jb3Vsb21iLnNvY2lhbC9hZG1pc3Npb24iOiAiYXBwcm92ZWQ7IElORkQtV1AtMDAwNyBjdXRvdmVyIgogICAgICAgIH0sCiAgICAgICAgImxhYmVscyI6IHsKICAgICAgICAgICJhcHAua3ViZXJuZXRlcy5pby9jb21wb25lbnQiOiAicmV2aWV3IiwKICAgICAgICAgICJhcHAua3ViZXJuZXRlcy5pby9uYW1lIjogImluZm9ybWVkLWRlY2lzaW9uIgogICAgICAgIH0KICAgICAgfSwKICAgICAgInNwZWMiOiB7CiAgICAgICAgImF1dG9tb3VudFNlcnZpY2VBY2NvdW50VG9rZW4iOiBmYWxzZSwKICAgICAgICAiY29udGFpbmVycyI6IFsKICAgICAgICAgIHsKICAgICAgICAgICAgImVudiI6IFsKICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAibmFtZSI6ICJJTkZEX0tFWUNBUEVfSVNTVUVSIiwKICAgICAgICAgICAgICAgICJ2YWx1ZSI6ICJodHRwczovL2tjLmNvdWxvbWIuc29jaWFsIgogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgIm5hbWUiOiAiSU5GRF9DT05UQUlORVJfQ09ORklHIiwKICAgICAgICAgICAgICAgICJ2YWx1ZSI6ICIvY29uZmlndXJhdGlvbi9ydW50aW1lLmpzb24iCiAgICAgICAgICAgICAgfQogICAgICAgICAgICBdLAogICAgICAgICAgICAiaW1hZ2UiOiAiZm9yZ2Vqby5jb3Vsb21iLnNvY2lhbC9jb3Vsb21iL2luZm9ybWVkLWRlY2lzaW9uQHNoYTI1Njo3NjNjMzY0MDJjOGJlN2NjNGMxYmQxYTYxNjIzZDFhZmY5MTE2ZDUyMjQxODc3NDI1YjQ1YTcwMThjYzA4ODNhIiwKICAgICAgICAgICAgImxpdmVuZXNzUHJvYmUiOiB7CiAgICAgICAgICAgICAgImh0dHBHZXQiOiB7CiAgICAgICAgICAgICAgICAicGF0aCI6ICIvaGVhbHRoeiIsCiAgICAgICAgICAgICAgICAicG9ydCI6ICJodHRwIgogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgInBlcmlvZFNlY29uZHMiOiAxMCwKICAgICAgICAgICAgICAidGltZW91dFNlY29uZHMiOiAyCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgICJuYW1lIjogImluZm9ybWVkLWRlY2lzaW9uIiwKICAgICAgICAgICAgInBvcnRzIjogWwogICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJjb250YWluZXJQb3J0IjogODA4MCwKICAgICAgICAgICAgICAgICJuYW1lIjogImh0dHAiCiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAiY29udGFpbmVyUG9ydCI6IDgwODEsCiAgICAgICAgICAgICAgICAibmFtZSI6ICJ3b3JrbG9hZCIKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIF0sCiAgICAgICAgICAgICJyZWFkaW5lc3NQcm9iZSI6IHsKICAgICAgICAgICAgICAiaHR0cEdldCI6IHsKICAgICAgICAgICAgICAgICJwYXRoIjogIi9oZWFsdGh6IiwKICAgICAgICAgICAgICAgICJwb3J0IjogImh0dHAiCiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAicGVyaW9kU2Vjb25kcyI6IDEwLAogICAgICAgICAgICAgICJ0aW1lb3V0U2Vjb25kcyI6IDIKICAgICAgICAgICAgfSwKICAgICAgICAgICAgInJlc291cmNlcyI6IHsKICAgICAgICAgICAgICAibGltaXRzIjogewogICAgICAgICAgICAgICAgImNwdSI6ICI1MDBtIiwKICAgICAgICAgICAgICAgICJtZW1vcnkiOiAiMjU2TWkiCiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAicmVxdWVzdHMiOiB7CiAgICAgICAgICAgICAgICAiY3B1IjogIjVtIiwKICAgICAgICAgICAgICAgICJtZW1vcnkiOiAiNjRNaSIKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0sCiAgICAgICAgICAgICJzZWN1cml0eUNvbnRleHQiOiB7CiAgICAgICAgICAgICAgImFsbG93UHJpdmlsZWdlRXNjYWxhdGlvbiI6IGZhbHNlLAogICAgICAgICAgICAgICJjYXBhYmlsaXRpZXMiOiB7CiAgICAgICAgICAgICAgICAiZHJvcCI6IFsKICAgICAgICAgICAgICAgICAgIkFMTCIKICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICJyZWFkT25seVJvb3RGaWxlc3lzdGVtIjogdHJ1ZQogICAgICAgICAgICB9LAogICAgICAgICAgICAic3RhcnR1cFByb2JlIjogewogICAgICAgICAgICAgICJmYWlsdXJlVGhyZXNob2xkIjogMTIsCiAgICAgICAgICAgICAgImh0dHBHZXQiOiB7CiAgICAgICAgICAgICAgICAicGF0aCI6ICIvaGVhbHRoeiIsCiAgICAgICAgICAgICAgICAicG9ydCI6ICJodHRwIgogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgInBlcmlvZFNlY29uZHMiOiAxMCwKICAgICAgICAgICAgICAidGltZW91dFNlY29uZHMiOiAyCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgICJ2b2x1bWVNb3VudHMiOiBbCiAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgIm1vdW50UGF0aCI6ICIvZGF0YSIsCiAgICAgICAgICAgICAgICAibmFtZSI6ICJkYXRhIgogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgIm1vdW50UGF0aCI6ICIvcnVuL2luZm9ybWVkLWRlY2lzaW9uIiwKICAgICAgICAgICAgICAgICJuYW1lIjogInJ1bnRpbWUiCiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAibW91bnRQYXRoIjogIi90bXAiLAogICAgICAgICAgICAgICAgIm5hbWUiOiAidG1wIgogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgIm1vdW50UGF0aCI6ICIvY29uZmlndXJhdGlvbiIsCiAgICAgICAgICAgICAgICAibmFtZSI6ICJjb25maWd1cmF0aW9uIiwKICAgICAgICAgICAgICAgICJyZWFkT25seSI6IHRydWUKICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJtb3VudFBhdGgiOiAiL3Zhci9ydW4vc2VjcmV0cy9pbmZvcm1lZC1kZWNpc2lvbi9wb2xpY3kiLAogICAgICAgICAgICAgICAgIm5hbWUiOiAiY2FsbGVyIiwKICAgICAgICAgICAgICAgICJyZWFkT25seSI6IHRydWUKICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJtb3VudFBhdGgiOiAiL3Zhci9ydW4vc2VjcmV0cy9pbmZvcm1lZC1kZWNpc2lvbi9hdWRpdCIsCiAgICAgICAgICAgICAgICAibmFtZSI6ICJhdWRpdCIsCiAgICAgICAgICAgICAgICAicmVhZE9ubHkiOiB0cnVlCiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAibW91bnRQYXRoIjogIi92YXIvcnVuL3NlY3JldHMvaW5mb3JtZWQtZGVjaXNpb24va3ViZXJuZXRlcyIsCiAgICAgICAgICAgICAgICAibmFtZSI6ICJrdWJlcm5ldGVzLWFwaSIsCiAgICAgICAgICAgICAgICAicmVhZE9ubHkiOiB0cnVlCiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAibW91bnRQYXRoIjogIi93b3JrbG9hZC1yZWdpc3RyeSIsCiAgICAgICAgICAgICAgICAibmFtZSI6ICJ3b3JrbG9hZC1yZWdpc3RyeSIsCiAgICAgICAgICAgICAgICAicmVhZE9ubHkiOiB0cnVlCiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAibW91bnRQYXRoIjogIi92YXIvcnVuL3NlY3JldHMvaW5mb3JtZWQtZGVjaXNpb24vcmVxdWVzdGVyIiwKICAgICAgICAgICAgICAgICJuYW1lIjogInNpdHRpbmctcmVxdWVzdGVyIiwKICAgICAgICAgICAgICAgICJyZWFkT25seSI6IHRydWUKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIF0KICAgICAgICAgIH0KICAgICAgICBdLAogICAgICAgICJzZWN1cml0eUNvbnRleHQiOiB7CiAgICAgICAgICAiZnNHcm91cCI6IDEwMDAxLAogICAgICAgICAgImZzR3JvdXBDaGFuZ2VQb2xpY3kiOiAiT25Sb290TWlzbWF0Y2giLAogICAgICAgICAgInJ1bkFzR3JvdXAiOiAxMDAwMSwKICAgICAgICAgICJydW5Bc05vblJvb3QiOiB0cnVlLAogICAgICAgICAgInJ1bkFzVXNlciI6IDEwMDAxLAogICAgICAgICAgInNlY2NvbXBQcm9maWxlIjogewogICAgICAgICAgICAidHlwZSI6ICJSdW50aW1lRGVmYXVsdCIKICAgICAgICAgIH0KICAgICAgICB9LAogICAgICAgICJzZXJ2aWNlQWNjb3VudE5hbWUiOiAicmV2aWV3IiwKICAgICAgICAidGVybWluYXRpb25HcmFjZVBlcmlvZFNlY29uZHMiOiA0NSwKICAgICAgICAidm9sdW1lcyI6IFsKICAgICAgICAgIHsKICAgICAgICAgICAgIm5hbWUiOiAiZGF0YSIsCiAgICAgICAgICAgICJwZXJzaXN0ZW50Vm9sdW1lQ2xhaW0iOiB7CiAgICAgICAgICAgICAgImNsYWltTmFtZSI6ICJpbmZvcm1lZC1kZWNpc2lvbi1kYXRhIgogICAgICAgICAgICB9CiAgICAgICAgICB9LAogICAgICAgICAgewogICAgICAgICAgICAiZW1wdHlEaXIiOiB7CiAgICAgICAgICAgICAgIm1lZGl1bSI6ICJNZW1vcnkiLAogICAgICAgICAgICAgICJzaXplTGltaXQiOiAiMTZNaSIKICAgICAgICAgICAgfSwKICAgICAgICAgICAgIm5hbWUiOiAicnVudGltZSIKICAgICAgICAgIH0sCiAgICAgICAgICB7CiAgICAgICAgICAgICJlbXB0eURpciI6IHsKICAgICAgICAgICAgICAibWVkaXVtIjogIk1lbW9yeSIsCiAgICAgICAgICAgICAgInNpemVMaW1pdCI6ICIxNk1pIgogICAgICAgICAgICB9LAogICAgICAgICAgICAibmFtZSI6ICJ0bXAiCiAgICAgICAgICB9LAogICAgICAgICAgewogICAgICAgICAgICAiY29uZmlnTWFwIjogewogICAgICAgICAgICAgICJkZWZhdWx0TW9kZSI6IDI5MiwKICAgICAgICAgICAgICAibmFtZSI6ICJpbmZvcm1lZC1kZWNpc2lvbi1ydW50aW1lLTZjMjIxODc4ZDA1MSIKICAgICAgICAgICAgfSwKICAgICAgICAgICAgIm5hbWUiOiAiY29uZmlndXJhdGlvbiIKICAgICAgICAgIH0sCiAgICAgICAgICB7CiAgICAgICAgICAgICJuYW1lIjogImNhbGxlciIsCiAgICAgICAgICAgICJwcm9qZWN0ZWQiOiB7CiAgICAgICAgICAgICAgImRlZmF1bHRNb2RlIjogMjg4LAogICAgICAgICAgICAgICJzb3VyY2VzIjogWwogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAic2VydmljZUFjY291bnRUb2tlbiI6IHsKICAgICAgICAgICAgICAgICAgICAiYXVkaWVuY2UiOiAiZmxleC1hdXRoIiwKICAgICAgICAgICAgICAgICAgICAiZXhwaXJhdGlvblNlY29uZHMiOiAzNjAwLAogICAgICAgICAgICAgICAgICAgICJwYXRoIjogInRva2VuIgogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgXQogICAgICAgICAgICB9CiAgICAgICAgICB9LAogICAgICAgICAgewogICAgICAgICAgICAibmFtZSI6ICJhdWRpdCIsCiAgICAgICAgICAgICJzZWNyZXQiOiB7CiAgICAgICAgICAgICAgImRlZmF1bHRNb2RlIjogMjg4LAogICAgICAgICAgICAgICJpdGVtcyI6IFsKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgImtleSI6ICJ0b2tlbiIsCiAgICAgICAgICAgICAgICAgICJwYXRoIjogInRva2VuIgogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgInNlY3JldE5hbWUiOiAiaW5mb3JtZWQtZGVjaXNpb24tYXVkaXQiCiAgICAgICAgICAgIH0KICAgICAgICAgIH0sCiAgICAgICAgICB7CiAgICAgICAgICAgICJuYW1lIjogImt1YmVybmV0ZXMtYXBpIiwKICAgICAgICAgICAgInByb2plY3RlZCI6IHsKICAgICAgICAgICAgICAiZGVmYXVsdE1vZGUiOiAyODgsCiAgICAgICAgICAgICAgInNvdXJjZXMiOiBbCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICJzZXJ2aWNlQWNjb3VudFRva2VuIjogewogICAgICAgICAgICAgICAgICAgICJleHBpcmF0aW9uU2Vjb25kcyI6IDYwMCwKICAgICAgICAgICAgICAgICAgICAicGF0aCI6ICJ0b2tlbiIKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgImNvbmZpZ01hcCI6IHsKICAgICAgICAgICAgICAgICAgICAiaXRlbXMiOiBbCiAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICJrZXkiOiAiY2EuY3J0IiwKICAgICAgICAgICAgICAgICAgICAgICAgInBhdGgiOiAiY2EuY3J0IgogICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICAgICAgIm5hbWUiOiAia3ViZS1yb290LWNhLmNydCIKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIF0KICAgICAgICAgICAgfQogICAgICAgICAgfSwKICAgICAgICAgIHsKICAgICAgICAgICAgImNvbmZpZ01hcCI6IHsKICAgICAgICAgICAgICAiZGVmYXVsdE1vZGUiOiAyOTIsCiAgICAgICAgICAgICAgIm5hbWUiOiAiaW5mb3JtZWQtZGVjaXNpb24td29ya2xvYWQtcmVnaXN0cnkiCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgICJuYW1lIjogIndvcmtsb2FkLXJlZ2lzdHJ5IgogICAgICAgICAgfSwKICAgICAgICAgIHsKICAgICAgICAgICAgIm5hbWUiOiAic2l0dGluZy1yZXF1ZXN0ZXIiLAogICAgICAgICAgICAic2VjcmV0IjogewogICAgICAgICAgICAgICJkZWZhdWx0TW9kZSI6IDI4OCwKICAgICAgICAgICAgICAiaXRlbXMiOiBbCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICJrZXkiOiAiY2xpZW50LXNlY3JldCIsCiAgICAgICAgICAgICAgICAgICJwYXRoIjogImNsaWVudC1zZWNyZXQiCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAib3B0aW9uYWwiOiBmYWxzZSwKICAgICAgICAgICAgICAic2VjcmV0TmFtZSI6ICJpbmZvcm1lZC1kZWNpc2lvbi1zaXR0aW5nLXJlcXVlc3RlciIKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgIF0KICAgICAgfQogICAgfQogIH0KfQo="
|
|
},
|
|
{
|
|
"digest": "sha256:39b3f43bb84ef4921cc3a1fbcdc444610741ed8809149d8f8f17ed805f262121",
|
|
"media_type": "application/json",
|
|
"content_base64": "ewogICJhcGlWZXJzaW9uIjogImFwcHMvdjEiLAogICJraW5kIjogIkRlcGxveW1lbnQiLAogICJtZXRhZGF0YSI6IHsKICAgICJhbm5vdGF0aW9ucyI6IHsKICAgICAgImluZm9ybWVkLWRlY2lzaW9uLmNvdWxvbWIuc29jaWFsL2FkbWlzc2lvbiI6ICJhcHByb3ZlZDsgSU5GRC1XUC0wMDA3IGN1dG92ZXIiLAogICAgICAiYXJnb2NkLmFyZ29wcm9qLmlvL3RyYWNraW5nLWlkIjogImluZm9ybWVkLWRlY2lzaW9uOmFwcHMvRGVwbG95bWVudDppbmZvcm1lZC1kZWNpc2lvbi9pbmZvcm1lZC1kZWNpc2lvbiIKICAgIH0sCiAgICAibmFtZSI6ICJpbmZvcm1lZC1kZWNpc2lvbiIsCiAgICAibmFtZXNwYWNlIjogImluZm9ybWVkLWRlY2lzaW9uIgogIH0sCiAgInNwZWMiOiB7CiAgICAicHJvZ3Jlc3NEZWFkbGluZVNlY29uZHMiOiA2MDAsCiAgICAicmVwbGljYXMiOiAxLAogICAgInNlbGVjdG9yIjogewogICAgICAibWF0Y2hMYWJlbHMiOiB7CiAgICAgICAgImFwcC5rdWJlcm5ldGVzLmlvL25hbWUiOiAiaW5mb3JtZWQtZGVjaXNpb24iCiAgICAgIH0KICAgIH0sCiAgICAic3RyYXRlZ3kiOiB7CiAgICAgICJ0eXBlIjogIlJlY3JlYXRlIgogICAgfSwKICAgICJ0ZW1wbGF0ZSI6IHsKICAgICAgIm1ldGFkYXRhIjogewogICAgICAgICJhbm5vdGF0aW9ucyI6IHsKICAgICAgICAgICJpbmZvcm1lZC1kZWNpc2lvbi5jb3Vsb21iLnNvY2lhbC9hZG1pc3Npb24iOiAiYXBwcm92ZWQ7IElORkQtV1AtMDAwNyBjdXRvdmVyIgogICAgICAgIH0sCiAgICAgICAgImxhYmVscyI6IHsKICAgICAgICAgICJhcHAua3ViZXJuZXRlcy5pby9jb21wb25lbnQiOiAicmV2aWV3IiwKICAgICAgICAgICJhcHAua3ViZXJuZXRlcy5pby9uYW1lIjogImluZm9ybWVkLWRlY2lzaW9uIgogICAgICAgIH0KICAgICAgfSwKICAgICAgInNwZWMiOiB7CiAgICAgICAgImF1dG9tb3VudFNlcnZpY2VBY2NvdW50VG9rZW4iOiBmYWxzZSwKICAgICAgICAiY29udGFpbmVycyI6IFsKICAgICAgICAgIHsKICAgICAgICAgICAgImVudiI6IFsKICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAibmFtZSI6ICJJTkZEX0tFWUNBUEVfSVNTVUVSIiwKICAgICAgICAgICAgICAgICJ2YWx1ZSI6ICJodHRwczovL2tjLmNvdWxvbWIuc29jaWFsIgogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgIm5hbWUiOiAiSU5GRF9DT05UQUlORVJfQ09ORklHIiwKICAgICAgICAgICAgICAgICJ2YWx1ZSI6ICIvY29uZmlndXJhdGlvbi9ydW50aW1lLmpzb24iCiAgICAgICAgICAgICAgfQogICAgICAgICAgICBdLAogICAgICAgICAgICAiaW1hZ2UiOiAiZm9yZ2Vqby5jb3Vsb21iLnNvY2lhbC9jb3Vsb21iL2luZm9ybWVkLWRlY2lzaW9uQHNoYTI1Njo3ZjVjNmNiMjljOWY3MGEwMjZiZmUzMGU3MjkzNDI3NGRkYzY5MjYxNjc2Y2Y2ZDQ3NmY4MWRkMzI4MTJkMTczIiwKICAgICAgICAgICAgImxpdmVuZXNzUHJvYmUiOiB7CiAgICAgICAgICAgICAgImh0dHBHZXQiOiB7CiAgICAgICAgICAgICAgICAicGF0aCI6ICIvaGVhbHRoeiIsCiAgICAgICAgICAgICAgICAicG9ydCI6ICJodHRwIgogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgInBlcmlvZFNlY29uZHMiOiAxMCwKICAgICAgICAgICAgICAidGltZW91dFNlY29uZHMiOiAyCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgICJuYW1lIjogImluZm9ybWVkLWRlY2lzaW9uIiwKICAgICAgICAgICAgInBvcnRzIjogWwogICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJjb250YWluZXJQb3J0IjogODA4MCwKICAgICAgICAgICAgICAgICJuYW1lIjogImh0dHAiCiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAiY29udGFpbmVyUG9ydCI6IDgwODEsCiAgICAgICAgICAgICAgICAibmFtZSI6ICJ3b3JrbG9hZCIKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIF0sCiAgICAgICAgICAgICJyZWFkaW5lc3NQcm9iZSI6IHsKICAgICAgICAgICAgICAiaHR0cEdldCI6IHsKICAgICAgICAgICAgICAgICJwYXRoIjogIi9oZWFsdGh6IiwKICAgICAgICAgICAgICAgICJwb3J0IjogImh0dHAiCiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAicGVyaW9kU2Vjb25kcyI6IDEwLAogICAgICAgICAgICAgICJ0aW1lb3V0U2Vjb25kcyI6IDIKICAgICAgICAgICAgfSwKICAgICAgICAgICAgInJlc291cmNlcyI6IHsKICAgICAgICAgICAgICAibGltaXRzIjogewogICAgICAgICAgICAgICAgImNwdSI6ICI1MDBtIiwKICAgICAgICAgICAgICAgICJtZW1vcnkiOiAiMjU2TWkiCiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAicmVxdWVzdHMiOiB7CiAgICAgICAgICAgICAgICAiY3B1IjogIjVtIiwKICAgICAgICAgICAgICAgICJtZW1vcnkiOiAiNjRNaSIKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0sCiAgICAgICAgICAgICJzZWN1cml0eUNvbnRleHQiOiB7CiAgICAgICAgICAgICAgImFsbG93UHJpdmlsZWdlRXNjYWxhdGlvbiI6IGZhbHNlLAogICAgICAgICAgICAgICJjYXBhYmlsaXRpZXMiOiB7CiAgICAgICAgICAgICAgICAiZHJvcCI6IFsKICAgICAgICAgICAgICAgICAgIkFMTCIKICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICJyZWFkT25seVJvb3RGaWxlc3lzdGVtIjogdHJ1ZQogICAgICAgICAgICB9LAogICAgICAgICAgICAic3RhcnR1cFByb2JlIjogewogICAgICAgICAgICAgICJmYWlsdXJlVGhyZXNob2xkIjogMTIsCiAgICAgICAgICAgICAgImh0dHBHZXQiOiB7CiAgICAgICAgICAgICAgICAicGF0aCI6ICIvaGVhbHRoeiIsCiAgICAgICAgICAgICAgICAicG9ydCI6ICJodHRwIgogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgInBlcmlvZFNlY29uZHMiOiAxMCwKICAgICAgICAgICAgICAidGltZW91dFNlY29uZHMiOiAyCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgICJ2b2x1bWVNb3VudHMiOiBbCiAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgIm1vdW50UGF0aCI6ICIvZGF0YSIsCiAgICAgICAgICAgICAgICAibmFtZSI6ICJkYXRhIgogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgIm1vdW50UGF0aCI6ICIvcnVuL2luZm9ybWVkLWRlY2lzaW9uIiwKICAgICAgICAgICAgICAgICJuYW1lIjogInJ1bnRpbWUiCiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAibW91bnRQYXRoIjogIi90bXAiLAogICAgICAgICAgICAgICAgIm5hbWUiOiAidG1wIgogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgIm1vdW50UGF0aCI6ICIvY29uZmlndXJhdGlvbiIsCiAgICAgICAgICAgICAgICAibmFtZSI6ICJjb25maWd1cmF0aW9uIiwKICAgICAgICAgICAgICAgICJyZWFkT25seSI6IHRydWUKICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJtb3VudFBhdGgiOiAiL3Zhci9ydW4vc2VjcmV0cy9pbmZvcm1lZC1kZWNpc2lvbi9wb2xpY3kiLAogICAgICAgICAgICAgICAgIm5hbWUiOiAiY2FsbGVyIiwKICAgICAgICAgICAgICAgICJyZWFkT25seSI6IHRydWUKICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJtb3VudFBhdGgiOiAiL3Zhci9ydW4vc2VjcmV0cy9pbmZvcm1lZC1kZWNpc2lvbi9hdWRpdCIsCiAgICAgICAgICAgICAgICAibmFtZSI6ICJhdWRpdCIsCiAgICAgICAgICAgICAgICAicmVhZE9ubHkiOiB0cnVlCiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAibW91bnRQYXRoIjogIi92YXIvcnVuL3NlY3JldHMvaW5mb3JtZWQtZGVjaXNpb24va3ViZXJuZXRlcyIsCiAgICAgICAgICAgICAgICAibmFtZSI6ICJrdWJlcm5ldGVzLWFwaSIsCiAgICAgICAgICAgICAgICAicmVhZE9ubHkiOiB0cnVlCiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAibW91bnRQYXRoIjogIi93b3JrbG9hZC1yZWdpc3RyeSIsCiAgICAgICAgICAgICAgICAibmFtZSI6ICJ3b3JrbG9hZC1yZWdpc3RyeSIsCiAgICAgICAgICAgICAgICAicmVhZE9ubHkiOiB0cnVlCiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAibW91bnRQYXRoIjogIi92YXIvcnVuL3NlY3JldHMvaW5mb3JtZWQtZGVjaXNpb24vcmVxdWVzdGVyIiwKICAgICAgICAgICAgICAgICJuYW1lIjogInNpdHRpbmctcmVxdWVzdGVyIiwKICAgICAgICAgICAgICAgICJyZWFkT25seSI6IHRydWUKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIF0KICAgICAgICAgIH0KICAgICAgICBdLAogICAgICAgICJzZWN1cml0eUNvbnRleHQiOiB7CiAgICAgICAgICAiZnNHcm91cCI6IDEwMDAxLAogICAgICAgICAgImZzR3JvdXBDaGFuZ2VQb2xpY3kiOiAiT25Sb290TWlzbWF0Y2giLAogICAgICAgICAgInJ1bkFzR3JvdXAiOiAxMDAwMSwKICAgICAgICAgICJydW5Bc05vblJvb3QiOiB0cnVlLAogICAgICAgICAgInJ1bkFzVXNlciI6IDEwMDAxLAogICAgICAgICAgInNlY2NvbXBQcm9maWxlIjogewogICAgICAgICAgICAidHlwZSI6ICJSdW50aW1lRGVmYXVsdCIKICAgICAgICAgIH0KICAgICAgICB9LAogICAgICAgICJzZXJ2aWNlQWNjb3VudE5hbWUiOiAicmV2aWV3IiwKICAgICAgICAidGVybWluYXRpb25HcmFjZVBlcmlvZFNlY29uZHMiOiA0NSwKICAgICAgICAidm9sdW1lcyI6IFsKICAgICAgICAgIHsKICAgICAgICAgICAgIm5hbWUiOiAiZGF0YSIsCiAgICAgICAgICAgICJwZXJzaXN0ZW50Vm9sdW1lQ2xhaW0iOiB7CiAgICAgICAgICAgICAgImNsYWltTmFtZSI6ICJpbmZvcm1lZC1kZWNpc2lvbi1kYXRhIgogICAgICAgICAgICB9CiAgICAgICAgICB9LAogICAgICAgICAgewogICAgICAgICAgICAiZW1wdHlEaXIiOiB7CiAgICAgICAgICAgICAgIm1lZGl1bSI6ICJNZW1vcnkiLAogICAgICAgICAgICAgICJzaXplTGltaXQiOiAiMTZNaSIKICAgICAgICAgICAgfSwKICAgICAgICAgICAgIm5hbWUiOiAicnVudGltZSIKICAgICAgICAgIH0sCiAgICAgICAgICB7CiAgICAgICAgICAgICJlbXB0eURpciI6IHsKICAgICAgICAgICAgICAibWVkaXVtIjogIk1lbW9yeSIsCiAgICAgICAgICAgICAgInNpemVMaW1pdCI6ICIxNk1pIgogICAgICAgICAgICB9LAogICAgICAgICAgICAibmFtZSI6ICJ0bXAiCiAgICAgICAgICB9LAogICAgICAgICAgewogICAgICAgICAgICAiY29uZmlnTWFwIjogewogICAgICAgICAgICAgICJkZWZhdWx0TW9kZSI6IDI5MiwKICAgICAgICAgICAgICAibmFtZSI6ICJpbmZvcm1lZC1kZWNpc2lvbi1ydW50aW1lLTZjMjIxODc4ZDA1MSIKICAgICAgICAgICAgfSwKICAgICAgICAgICAgIm5hbWUiOiAiY29uZmlndXJhdGlvbiIKICAgICAgICAgIH0sCiAgICAgICAgICB7CiAgICAgICAgICAgICJuYW1lIjogImNhbGxlciIsCiAgICAgICAgICAgICJwcm9qZWN0ZWQiOiB7CiAgICAgICAgICAgICAgImRlZmF1bHRNb2RlIjogMjg4LAogICAgICAgICAgICAgICJzb3VyY2VzIjogWwogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAic2VydmljZUFjY291bnRUb2tlbiI6IHsKICAgICAgICAgICAgICAgICAgICAiYXVkaWVuY2UiOiAiZmxleC1hdXRoIiwKICAgICAgICAgICAgICAgICAgICAiZXhwaXJhdGlvblNlY29uZHMiOiAzNjAwLAogICAgICAgICAgICAgICAgICAgICJwYXRoIjogInRva2VuIgogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgXQogICAgICAgICAgICB9CiAgICAgICAgICB9LAogICAgICAgICAgewogICAgICAgICAgICAibmFtZSI6ICJhdWRpdCIsCiAgICAgICAgICAgICJzZWNyZXQiOiB7CiAgICAgICAgICAgICAgImRlZmF1bHRNb2RlIjogMjg4LAogICAgICAgICAgICAgICJpdGVtcyI6IFsKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgImtleSI6ICJ0b2tlbiIsCiAgICAgICAgICAgICAgICAgICJwYXRoIjogInRva2VuIgogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgInNlY3JldE5hbWUiOiAiaW5mb3JtZWQtZGVjaXNpb24tYXVkaXQiCiAgICAgICAgICAgIH0KICAgICAgICAgIH0sCiAgICAgICAgICB7CiAgICAgICAgICAgICJuYW1lIjogImt1YmVybmV0ZXMtYXBpIiwKICAgICAgICAgICAgInByb2plY3RlZCI6IHsKICAgICAgICAgICAgICAiZGVmYXVsdE1vZGUiOiAyODgsCiAgICAgICAgICAgICAgInNvdXJjZXMiOiBbCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICJzZXJ2aWNlQWNjb3VudFRva2VuIjogewogICAgICAgICAgICAgICAgICAgICJleHBpcmF0aW9uU2Vjb25kcyI6IDYwMCwKICAgICAgICAgICAgICAgICAgICAicGF0aCI6ICJ0b2tlbiIKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgImNvbmZpZ01hcCI6IHsKICAgICAgICAgICAgICAgICAgICAiaXRlbXMiOiBbCiAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICJrZXkiOiAiY2EuY3J0IiwKICAgICAgICAgICAgICAgICAgICAgICAgInBhdGgiOiAiY2EuY3J0IgogICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICAgICAgIm5hbWUiOiAia3ViZS1yb290LWNhLmNydCIKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIF0KICAgICAgICAgICAgfQogICAgICAgICAgfSwKICAgICAgICAgIHsKICAgICAgICAgICAgImNvbmZpZ01hcCI6IHsKICAgICAgICAgICAgICAiZGVmYXVsdE1vZGUiOiAyOTIsCiAgICAgICAgICAgICAgIm5hbWUiOiAiaW5mb3JtZWQtZGVjaXNpb24td29ya2xvYWQtcmVnaXN0cnkiCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgICJuYW1lIjogIndvcmtsb2FkLXJlZ2lzdHJ5IgogICAgICAgICAgfSwKICAgICAgICAgIHsKICAgICAgICAgICAgIm5hbWUiOiAic2l0dGluZy1yZXF1ZXN0ZXIiLAogICAgICAgICAgICAic2VjcmV0IjogewogICAgICAgICAgICAgICJkZWZhdWx0TW9kZSI6IDI4OCwKICAgICAgICAgICAgICAiaXRlbXMiOiBbCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICJrZXkiOiAiY2xpZW50LXNlY3JldCIsCiAgICAgICAgICAgICAgICAgICJwYXRoIjogImNsaWVudC1zZWNyZXQiCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAib3B0aW9uYWwiOiBmYWxzZSwKICAgICAgICAgICAgICAic2VjcmV0TmFtZSI6ICJpbmZvcm1lZC1kZWNpc2lvbi1zaXR0aW5nLXJlcXVlc3RlciIKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgIF0KICAgICAgfQogICAgfQogIH0KfQo="
|
|
},
|
|
{
|
|
"digest": "sha256:e59ab44b1aaf28140509593aae4ab9b97ab62cc8b589e3f1552bac78618896dd",
|
|
"media_type": "application/json",
|
|
"content_base64": "ewogICJwcm9wb3NhbCI6ICJJTkZELVdQLTAwMDktVDA0L3B1cnBvc2Utb3ZlcmxheS12MSIsCiAgIm9ic2VydmVkX2F0IjogIjIwMjYtMTAtMTFUMDE6MjQ6MDEuOTg1MTI4KzAwOjAwIiwKICAibmF0aXZlX293bmVyX3B1YmxpY2F0aW9uX2pvYiI6IHsKICAgICJpZCI6IDExNDg0LAogICAgIm5hbWUiOiAicHVibGlzaC1jYW5kaWRhdGUiLAogICAgImhlYWRfYnJhbmNoIjogIm1haW4iLAogICAgImhlYWRfc2hhIjogIjNlNGJjYjI2ZjhlZWFhOGM2NDM0NWM1NjU0NzdiNWFjOGNjYmIxNjgiLAogICAgInJ1bl9udW1iZXIiOiAzLAogICAgImV2ZW50IjogInB1c2giLAogICAgImRpc3BsYXlfdGl0bGUiOiAiUHJlcGFyZSByZWFkYWJsZSBvdmVybGF5IGNvbnRleHQgd2l0aCB0aGUgYWRtaXR0ZWQgbGVnYWN5IGJ1aWxkZXIiLAogICAgInN0YXR1cyI6ICJzdWNjZXNzIiwKICAgICJ3b3JrZmxvd19pZCI6ICJwdXJwb3NlLW92ZXJsYXktaW1hZ2UueWFtbCIsCiAgICAidXJsIjogImh0dHBzOi8vZm9yZ2Vqby5jb3Vsb21iLnNvY2lhbC9jb3Vsb21iL2luZm9ybWVkLWRlY2lzaW9uL2FjdGlvbnMvcnVucy8zIiwKICAgICJjcmVhdGVkX2F0IjogIjIwMjYtMTAtMTFUMDE6MjA6NTlaIiwKICAgICJ1cGRhdGVkX2F0IjogIjIwMjYtMTAtMTFUMDE6MjE6MDhaIiwKICAgICJydW5fc3RhcnRlZF9hdCI6ICIyMDI2LTEwLTExVDAxOjIwOjU5WiIKICB9LAogICJpbWFnZSI6ICJmb3JnZWpvLmNvdWxvbWIuc29jaWFsL2NvdWxvbWIvaW5mb3JtZWQtZGVjaXNpb25Ac2hhMjU2Ojc2M2MzNjQwMmM4YmU3Y2M0YzFiZDFhNjE2MjNkMWFmZjkxMTZkNTIyNDE4Nzc0MjViNDVhNzAxOGNjMDg4M2EiLAogICJzb3VyY2VfcmV2aXNpb24iOiAiM2U0YmNiMjZmOGVlYWE4YzY0MzQ1YzU2NTQ3N2I1YWM4Y2NiYjE2OCIsCiAgInBvbGljeV9zaGEyNTYiOiAiOWQ3YzFiZTRjYjYxOTlkMTRlZjBhYWVhZDVmODU5NTFmNDViMGNjYmQ3YzgwMGE3ZmRlOTIyYTI1MzU2NmI2MiIsCiAgInJlZ2lzdHJ5X3Byb29mX3NoYTI1NiI6ICI1YWEyYzFmNzgwYzQ3ZjYyZmE5YjU5ZGE5NTQzZDgyYzA3YWZhMDJiMWQ5NDZlNjE0NGI4YTA0MmVmODZmMjEzIiwKICAic291cmNlX3JlbmRlcl9jaGFuZ2Vfb25seSI6ICJEZXBsb3ltZW50L2luZm9ybWVkLWRlY2lzaW9uIHNwZWMudGVtcGxhdGUuc3BlYy5jb250YWluZXJzWzBdLmltYWdlIiwKICAicnVudGltZV9jb25maWdtYXBfdW5jaGFuZ2VkIjogImluZm9ybWVkLWRlY2lzaW9uLXJ1bnRpbWUtNmMyMjE4NzhkMDUxIiwKICAiaW5zdGFsbGVkX2ltYWdlX2V4ZWN1dGlvbiI6IHsKICAgICJpbW11dGFibGVfcmVnaXN0cnlfYXJ0aWZhY3RfcHVsbGVkX2Fub255bW91c2x5IjogdHJ1ZSwKICAgICJVSUQiOiAxMDAwMSwKICAgICJHSUQiOiAxMDAwMSwKICAgICJwb2xpY3lfZmlsZV9VSUQiOiAwLAogICAgInBvbGljeV9maWxlX21vZGUiOiAiMDY0NCIsCiAgICAicHVycG9zZV92YXJpYW50cyI6IDEwLAogICAgImJpbmRpbmdfZm9ybXNfYWxsb3dlZCI6IDIsCiAgICAiYWR2aXNvcnlfb3JfbWFsZm9ybWVkX3JlZnVzZWQiOiA4LAogICAgIm5ldHdvcmsiOiAibm9uZSIsCiAgICAicmVhZF9vbmx5IjogdHJ1ZSwKICAgICJzeW50aGV0aWNfdHJhbnNwb3J0IjogdHJ1ZSwKICAgICJuYXRpdmVfUERQX3Rlc3QiOiBmYWxzZQogIH0sCiAgInNjYW5fc3VtbWFyeV9zaGEyNTYiOiAiMGVlNTY0MDBkYzcwM2Y3Yzk5NjhjMmEwYTNlYTAzOTBkODM2MmY4ZDBiYmY4MDAyYTJiZDdmYTU4ZjE5Y2I0NCIsCiAgImhpc3RvcmljYWxfZmFpbGVkX3J1bnNfcmV0YWluZWQiOiBbCiAgICAiZjY2ZGU1MDUvdGFzazExNDgyL3J1bjEiLAogICAgImFjZWNhZDg4Ny90YXNrMTE0ODMvcnVuMiIKICBdLAogICJuYXRpdmVfaG9zdGluZ19jaGFuZ2VkIjogZmFsc2UsCiAgIm5hdGl2ZV9iYWNrdXBfcmVzdG9yZV9leGVjdXRlZCI6IGZhbHNlLAogICJodW1hbl9hcHByb3ZhbCI6IGZhbHNlLAogICJldmlkZW5jZV9maWxlX3NoYTI1NiI6IHsKICAgICJpbWFnZS1tYW5pZmVzdC5qc29uIjogIjk3OGM1NzVkM2M3YmYwZGUzOWRiZTRlOTU2N2MzOWNkMzZmNzBiN2U1NWJjMTczNTdiZGIwM2ZiM2I5NmIwZmIiLAogICAgImltYWdlLWNvbmZpZy5qc29uIjogIjRhZDcyNDljNzVmZDlmYzAzOWNlYjE4Njc3MjQxOWUxY2JhNWZkOTc1OWM0MDQ1NTY0NTljODBhMmQyODVkMTAiLAogICAgImJhc2UtaW1hZ2UtY29uZmlnLmpzb24iOiAiYjcwNmM5MjA5ZTMyNGYzOWE4NmZmY2RhMmEzZTlkOTRjOTI2NDk3MzlhZDViMjFmZTQ2MTEwMDZlMzZmNmYwMCIsCiAgICAicmVnaXN0cnktcHJvb2YuanNvbiI6ICI1YWEyYzFmNzgwYzQ3ZjYyZmE5YjU5ZGE5NTQzZDgyYzA3YWZhMDJiMWQ5NDZlNjE0NGI4YTA0MmVmODZmMjEzIiwKICAgICJ0cml2eS1mdWxsLmpzb24iOiAiZjM4YThmN2U2YzQxOWVlZDkxNTRkNzc2MmY5MzJiOWRlYjY2ODBhNjIyMjQ3YjA4MTk2Yjc0NThiODkzNDM0ZSIsCiAgICAic2JvbS5jZHguanNvbiI6ICJhNDI1Mjk1MWUyMDI3NDcyYzI2ZDg2NzljYjU0M2UzMDk4MzE4MDgwOWQ2ZGQzYzdjOTRiODgzZDYyODAzZTVkIiwKICAgICJiYXNlLXRyaXZ5LWZ1bGwuanNvbiI6ICJkNDRjNTU1YWVjYmIxYTQ1MThmNDEyN2Q0ODAxNWVhNDU5MzI1YzkzZThiMDM3MTkxMGE1NWRlNDcyOTNjYTgwIiwKICAgICJjaGVja19pbnN0YWxsZWQucHkiOiAiYTM0YTUxYmU5YzlmMmIxNmEwNmE4ODE3M2I1YzZjNDkyYzk5NTdmZTAyMWNmNDEyYTg2YTE3Mzc3MzA2NDBhZCIsCiAgICAidmVyaWZ5X3JlZ2lzdHJ5LnB5IjogIjQxM2Y1NzVjMjFhMmJkMThhMzY5NmY4ZjJkOTM5ZWVhZGM1MmQ3NmYyODJjNDI4MTNmNzZiYjBlM2VlOGEyYTQiLAogICAgInNlYWxlZC1uYXRpdmUtZGVwZW5kZW5jaWVzLmpzb24iOiAiMDQyMzI3YTAzNmVkMjU0Y2Y5NWRiZWIwYzA1NmFjMjViMDNhNmE4NDRiOTVhMzMyYzk5MmRmMjk0MzY5MTM2OSIsCiAgICAicmV2aWV3LXJlZmluZW1lbnQuanNvbiI6ICJlYTYyODQ1Y2VlNWVlNmY0ZjZjYjdmNWRjZDBhZjYwMWJhMjlhMjFjOGZmODBlZmJiYzAyYWQxNmUzNWJlYTc1IiwKICAgICJ0ZXN0X2NoYW5nZV9ndWFyZC5weSI6ICJkYTUzNTA0MzczNTdiYTMyOTIzNmNjMTM3NjEwYzAzODU2ZjM4ZjgzNmRkZjI4NTYwMjViYzEyMDExZmFkMDdmIiwKICAgICJ0ZXN0X3NxbGl0ZV9yZWFkb25seS5weSI6ICJjN2E5MWQwYzZhMzczZDczOGM4OGJiODE3ZDliZmIyZmY4YTE3OWJjNjFiOTMwNjNiODk2NzdiNTY2NTIwMzIzIiwKICAgICJ0ZXN0X3ByZWZsaWdodF9vcHRpbWl6YXRpb24ucHkiOiAiYTBjNGZhMThjNWQ2YzIxNDc2YTA2YzZkMDVmZTc2NTYyNTlkMjA0Mjk5MTM4ODUxNTk5ZTkyMTRkOTExMjA2ZCIsCiAgICAiaW5pdGlhbC1hcHByb3ZlZC1iYzY0OTRjZC9zcWxpdGVfcmVhZG9ubHkucHkiOiAiZWVmNTNkZDIzM2VlZTc0YzE3ZjIwODIzYmQ3ZjU3ODdjNjBjYWQ3OWFjNjQ4MDIxYzk0Nzk2NDNjNmNlOWUzOCIKICB9LAogICJ2ZXJzaW9uMl9zb3VyY2VfcG9pbnRlcl9yZWZpbmVtZW50IjogewogICAgIm9yaWdpbmFsX3JlY2VpcHRfc2hhMjU2IjogIjhhNjc2YzM4Zjg5ZjljYTc2MmI4ZWJlOTQ1YjVhY2I5MGQ0N2E0Y2IzNTA2OTI2ODdhYmI5ODViYmIyZDhhZTIiLAogICAgIm9yaWdpbmFsX3JlY2VpcHRfYXJjaGl2ZSI6ICJpbml0aWFsLWFwcHJvdmVkLWJjNjQ5NGNkL3B1Ymxpc2hlZC12ZXJpZmljYXRpb24uanNvbiIsCiAgICAicmVhc29uIjogIktlZXAgaGlzdG9yaWNhbCBvcmlnaW5hbCBwcmUtb3BlbiBjaGVja2VyIGhhc2ggYm91bmQgdG8gZXhhY3QgYXJjaGl2ZWQgb3JpZ2luYWwgYnl0ZXM7IGN1cnJlbnQgdmVyc2lvbjIgY2hlY2tlciBpcyBpbmRlcGVuZGVudGx5IGRpcmVjdC1wYWNrZXQvcGxhbiBib3VuZC4gQWN0dWFsIGltYWdlL3JlZ2lzdHJ5L3NjYW4vU0JPTSBwcm9vZiB1bmNoYW5nZWQ7IG5vIG5ldyBhcnRpZmFjdCB2ZXJpZmljYXRpb24gb3IgbmF0aXZlIHZlcnNpb24yIGFjdGlvbiBjbGFpbWVkLiIKICB9Cn0K"
|
|
},
|
|
{
|
|
"digest": "sha256:5aa2c1f780c47f62fa9b59da9543d82c07afa02b1d946e6144b8a042ef86f213",
|
|
"media_type": "application/json",
|
|
"content_base64": "ewogICJpbWFnZV9kaWdlc3QiOiAic2hhMjU2Ojc2M2MzNjQwMmM4YmU3Y2M0YzFiZDFhNjE2MjNkMWFmZjkxMTZkNTIyNDE4Nzc0MjViNDVhNzAxOGNjMDg4M2EiLAogICJzb3VyY2VfcmV2aXNpb24iOiAiM2U0YmNiMjZmOGVlYWE4YzY0MzQ1YzU2NTQ3N2I1YWM4Y2NiYjE2OCIsCiAgImJhc2VfaW1hZ2VfZGlnZXN0IjogInNoYTI1Njo3ZjVjNmNiMjljOWY3MGEwMjZiZmUzMGU3MjkzNDI3NGRkYzY5MjYxNjc2Y2Y2ZDQ3NmY4MWRkMzI4MTJkMTczIiwKICAiYmFzZV9sYXllcl9ieXRlc19pZGVudGljYWwiOiB0cnVlLAogICJsYXllcl9tZWRpYV90eXBlX2NvbnZlcnNpb24iOiAiT0NJIGd6aXAgdG8gRG9ja2VyIGd6aXAsIHNhbWUgZGlnZXN0IGFuZCBzaXplIiwKICAiYmFzZV9ydW50aW1lX2NvbmZpZ19zZW1hbnRpY3NfaWRlbnRpY2FsIjogdHJ1ZSwKICAibGVnYWN5X2J1aWxkZXJfY29uZmlnX2FkZGl0aW9ucyI6IHsKICAgICJIb3N0bmFtZSI6ICIiLAogICAgIkRvbWFpbm5hbWUiOiAiIiwKICAgICJBdHRhY2hTdGRpbiI6IGZhbHNlLAogICAgIkF0dGFjaFN0ZG91dCI6IGZhbHNlLAogICAgIkF0dGFjaFN0ZGVyciI6IGZhbHNlLAogICAgIlR0eSI6IGZhbHNlLAogICAgIk9wZW5TdGRpbiI6IGZhbHNlLAogICAgIlN0ZGluT25jZSI6IGZhbHNlLAogICAgIkNtZCI6IG51bGwsCiAgICAiVm9sdW1lcyI6IG51bGwsCiAgICAiT25CdWlsZCI6IG51bGwsCiAgICAiSW1hZ2UiOiAic2hhMjU2OjkwZjE1NzRmOWVkYTM1ZmE2Y2I5NzI5NjFiZWIyN2E3Y2I5MDRjMzY1NjBlMzgxOTMwYjBlMTQwNjVjMjM4ODMiCiAgfSwKICAiYmFzZV9yb290ZnNfcHJlZml4X2lkZW50aWNhbCI6IHRydWUsCiAgIm92ZXJsYXlfcmVndWxhcl9maWxlcyI6IFsKICAgICJvcHQvdmVudi9saWIvcHl0aG9uMy4xMi9zaXRlLXBhY2thZ2VzL2luZm9ybWVkX2RlY2lzaW9uL3BvbGljeS5weSIKICBdLAogICJvdmVybGF5X2RpcmVjdG9yaWVzIjogWwogICAgIm9wdCIsCiAgICAib3B0L3ZlbnYiLAogICAgIm9wdC92ZW52L2xpYiIsCiAgICAib3B0L3ZlbnYvbGliL3B5dGhvbjMuMTIiLAogICAgIm9wdC92ZW52L2xpYi9weXRob24zLjEyL3NpdGUtcGFja2FnZXMiLAogICAgIm9wdC92ZW52L2xpYi9weXRob24zLjEyL3NpdGUtcGFja2FnZXMvaW5mb3JtZWRfZGVjaXNpb24iCiAgXSwKICAicG9saWN5X3NoYTI1NiI6ICI5ZDdjMWJlNGNiNjE5OWQxNGVmMGFhZWFkNWY4NTk1MWY0NWIwY2NiZDdjODAwYTdmZGU5MjJhMjUzNTY2YjYyIiwKICAicG9saWN5X21vZGUiOiAiMDY0NCIsCiAgImJhc2VfdXNlciI6ICIxMDAwMToxMDAwMSIsCiAgInNvdXJjZV9zY29wZV9sYWJlbHMiOiB7CiAgICAib3JnLm9wZW5jb250YWluZXJzLmltYWdlLnJldmlzaW9uIjogIjNlNGJjYjI2ZjhlZWFhOGM2NDM0NWM1NjU0NzdiNWFjOGNjYmIxNjgiLAogICAgIm9yZy5vcGVuY29udGFpbmVycy5pbWFnZS5iYXNlLmRpZ2VzdCI6ICJzaGEyNTY6N2Y1YzZjYjI5YzlmNzBhMDI2YmZlMzBlNzI5MzQyNzRkZGM2OTI2MTY3NmNmNmQ0NzZmODFkZDMyODEyZDE3MyIsCiAgICAic29jaWFsLmNvdWxvbWIuc291cmNlLnBvbGljeS5zaGEyNTYiOiAiOWQ3YzFiZTRjYjYxOTlkMTRlZjBhYWVhZDVmODU5NTFmNDViMGNjYmQ3YzgwMGE3ZmRlOTIyYTI1MzU2NmI2MiIsCiAgICAic29jaWFsLmNvdWxvbWIucmVsZWFzZS5zY29wZSI6ICJJTkZELVdQLTAwMDktVDA0L3B1cnBvc2Utb3ZlcmxheS12MSIKICB9LAogICJyZWdpc3RyeV9yZWFkX3JvdXRlIjogImFub255bW91cyBwdWJsaWMgc2NvcGVkIGJlYXJlciBjaGFsbGVuZ2UsIG5vIHRva2VuIHJldGVudGlvbiIsCiAgImltYWdlX2V4ZWN1dGVkIjogZmFsc2UsCiAgIm5hdGl2ZV93b3JrbG9hZF9jaGFuZ2VkIjogZmFsc2UsCiAgIm5hdGl2ZV9iYWNrdXBfcmVzdG9yZV9leGVjdXRlZCI6IGZhbHNlCn0K"
|
|
},
|
|
{
|
|
"digest": "sha256:0ee56400dc703f7c9968c2a0a3ea0390d8362f8d0bbf8002a2bd7fa58f19cb44",
|
|
"media_type": "application/json",
|
|
"content_base64": "ewogICJpbWFnZSI6ICJmb3JnZWpvLmNvdWxvbWIuc29jaWFsL2NvdWxvbWIvaW5mb3JtZWQtZGVjaXNpb25Ac2hhMjU2Ojc2M2MzNjQwMmM4YmU3Y2M0YzFiZDFhNjE2MjNkMWFmZjkxMTZkNTIyNDE4Nzc0MjViNDVhNzAxOGNjMDg4M2EiLAogICJzb3VyY2VfcmV2aXNpb24iOiAiM2U0YmNiMjZmOGVlYWE4YzY0MzQ1YzU2NTQ3N2I1YWM4Y2NiYjE2OCIsCiAgInNjYW5uZXIiOiAiYXF1YXNlYy90cml2eUBzaGEyNTY6NjJiMWU2NWU4ODY5YmM0YjRjNmFhNGZhMmIyMTU5NTI1NmM3YzJmNjAxOGE5ZDlhZDYxY2FmODcxODdjMTk2OSIsCiAgInZlcnNpb24iOiAiMC43NC4wIiwKICAiZGJfbWV0YWRhdGEiOiB7CiAgICAiVmVyc2lvbiI6IDIsCiAgICAiTmV4dFVwZGF0ZSI6ICIyMDI2LTEwLTExVDE4OjU5OjUwLjg4OTAxMDU3MloiLAogICAgIlVwZGF0ZWRBdCI6ICIyMDI2LTEwLTEwVDE4OjU5OjUwLjg4OTAxMDkyM1oiLAogICAgIkRvd25sb2FkZWRBdCI6ICIyMDI2LTEwLTEwVDIzOjMyOjMyLjM4MDAzMzEzMVoiCiAgfSwKICAic3VwcHJlc3Npb24iOiBmYWxzZSwKICAiaWdub3JlX3VuZml4ZWQiOiBmYWxzZSwKICAic2V2ZXJpdHlfZmlsdGVyIjogbnVsbCwKICAicGFja2FnZV9jb3VudCI6IDQ0LAogICJmaW5kaW5nc19ieV9zZXZlcml0eSI6IHsKICAgICJNRURJVU0iOiAxCiAgfSwKICAiZmluZGluZ3MiOiBbCiAgICB7CiAgICAgICJpZCI6ICJDVkUtMjAyNi04NTA5MSIsCiAgICAgICJwYWNrYWdlIjogInpsaWIiLAogICAgICAiaW5zdGFsbGVkIjogIjEuMy4yLXIwIiwKICAgICAgImZpeGVkIjogIjEuMy4yLXIxIiwKICAgICAgInNldmVyaXR5IjogIk1FRElVTSIKICAgIH0KICBdLAogICJjb3ZlcmFnZV9saW1pdHMiOiBbCiAgICAiQWxwaW5lMy4yNCBhYnNlbnQgc2Nhbm5lciBFT0wgbGlzdDsgT1MgZGV0ZWN0b3IgcmFuIGFnYWluc3QgQWxwaW5lMy4yNCByZXBvc2l0b3J5IG9uMzhPUyBwYWNrYWdlcyIsCiAgICAiS25vd24gZmluZGluZ3MgYXNvZiBwaW5uZWREQiwgbm90IGNsYWltIGFic2VuY2Ugb2YgdW5rbm93biB2dWxuZXJhYmlsaXRpZXMiCiAgXSwKICAiaGlnaF9jcml0aWNhbCI6IDAsCiAgInNhbWVfc2Nhbm5lcl9hY3R1YWxfYmFzZV9zY2FuX2ZpbmRpbmdzX2lkZW50aWNhbCI6IHRydWUsCiAgImJhc2Vfc2Nhbl9maWxlIjogImJhc2UtdHJpdnktZnVsbC5qc29uIgp9Cg=="
|
|
},
|
|
{
|
|
"digest": "sha256:49c9cb70f36f6ceb7b0d22400b2ec9232a5e1a8a00d17e92b92fe367c98effb5",
|
|
"media_type": "application/json",
|
|
"content_base64": "ewogICJraW5kIjogImluZm9ybWVkLWRlY2lzaW9uLnN1cGVydmlzZWQtZXhlY3V0aW9uLXNvdXJjZS1idW5kbGUiLAogICJ2ZXJzaW9uIjogMiwKICAicHJvcG9zYWxfaWQiOiAiSU5GRC1XUC0wMDA5LVQwNC9wdXJwb3NlLW92ZXJsYXktdjEiLAogICJmaWxlcyI6IHsKICAgICJSRUFETUUubWQiOiB7CiAgICAgICJzaGEyNTYiOiAiNTFiNTZjOGVjMmYzMGFkNjJmNmNkMDk3MzJjMGY3M2RkN2I1ZWJmMjA4MTMyMDIyM2M4NWJiY2JmMDBkMTVhOSIsCiAgICAgICJjb250ZW50IjogIiMgVmVyc2lvbjIgcHJvdGVjdGVkIGV4aXN0aW5nLXNuYXBzaG90IHJlc2N1ZSDigJQgcHJlcGFyZWQsIHVuYXBwcm92ZWRcblxuT3JpZ2luYWwgYXBwcm92ZWQgc291cmNlIGJjNjQ5NGNkIGNvbXBsZXRlZCBkcmlsbC1iYWNrdXAsIHRoZW4gZHJpbGwtY29weSBmYWlsZWQgYmVmb3JlIGNyZWF0aW5nIGEgbG9jYWwgc25hcHNob3QuIE9yaWdpbmFsIGpvdXJuYWwgZHJpbGwtY29weSByZW1haW5zIFVOQ0VSVEFJTi4gTWV0YWRhdGEtb25seSBjYXB0dXJlIHByb3ZlcyBleGFjdCB1bmNoYW5nZWQgbWFpbjE5NTM3OTIwYnl0ZXMvU0hBODc1Ni4uLiwgV0FMMCBhbmQgcHJpdmF0ZVNITTMyNzY4LiBTb3VyY2UgY2xvc2VzIFNRTGl0ZSBjb25uZWN0aW9ucyBleHBsaWNpdGx5OyBpbW11dGFibGUgcmVhZHMgYXJlIG9ubHkgZm9yIHRoZSBmcm96ZW4gbWFpbiBzbmFwc2hvdCB3aXRoIGV4YWN0IHByaW9yIGRpZ2VzdC9zaXplL3ByaXZhdGUgaWRlbnRpdHkgYW5kIG5vIFdBTCBmcmFtZXMuIExpdmUgc291cmNlIGFuZCBvZmZsaW5lIHByZS9wb3N0LWFkbWluIHJlYWRzIHJlbWFpbiBtb2RlPXJvL3F1ZXJ5X29ubHkgV0FMLWF3YXJlOyBpbW11dGFibGUgaXMgbmV2ZXIgYSBsaXZlIERCIG9yIHNjaGVtYS1taWdyYXRpb24gc2hvcnRjdXQuIFNpZGVjYXJzIHJlbWFpbiByZXRhaW5lZCwgbmV2ZXIgZGVsZXRlZC9jaGVja3BvaW50ZWQuXG5cbkZyZXNoIGZvdW5kZXIgYWNjZXB0YW5jZSBvZiB0aGUgZXhhY3QgbWVtbyB2ZXJzaW9uMiBpcyByZXF1aXJlZCBiZWZvcmUgYW55IHJlc2N1ZSBvciBjb250aW51YXRpb24uIE9sZCB2ZXJzaW9uMSBhY2NlcHRhbmNlIGNhbm5vdCBwYXNzIGF1dGhvcml0eSBjaGVja3MuIFJvb3QgbXVzdCBmcmVzaGx5IGF1dGhlbnRpY2F0ZSBhY3R1YWwgY29uZmlybWVkIHBlcnNvbi9wbGF0Zm9ybS1yb290IEFDQ0VQVCBhdCB0aGUgZml4ZWQgbmF0aXZlIG9yaWdpbiBiZWZvcmUgZWFjaCBwaGFzZTsgcHJvdGVjdGVkIHJlY2VpcHQgY2hlY2tpbmcgaXMgc3VwZXJ2aXNlZCBib29ra2VlcGluZywgbm90IGFuIGF1dGhlbnRpY2F0ZWQgc2lnbmVkL2F1dG9ub21vdXMgZ3JhbnQuIE5vIG5ldyBuYXRpdmUgb3BlcmF0aW9uIGhhcyBydW4gaW4gdGhpcyBwcmVwYXJhdGlvbi5cblxuRml4ZWQgb3JkZXI6IGRyaWxsLWNvcHktcmVzY3VlLXIxIOKGkiBvZmZsaW5lLXZlcmlmeSDihpIgY2xlYW51cC1vZmZsaW5lIOKGkiBjdXRvdmVyLWJhY2t1cCDihpIgY3V0b3Zlci1jb3B5IOKGkiByZWxlYXNlIOKGkiB2ZXJpZnk7IHJvbGxiYWNrIOKGkiByb2xsYmFjay12ZXJpZnkgb25seSBhZnRlciByZWNvcmRlZCBuZXcgcmVsZWFzZSBhdHRlbXB0LiBOZXcgcmVzY3VlLWV4ZWN1dGlvbi1qb3VybmFsLXIxLmpzb24gYW5kIHJlc2N1ZS1leGVjdXRpb24tcjEubG9jayBjb2V4aXN0IHdpdGggdGhlIHVuY2hhbmdlZCBvcmlnaW5hbCBleGVjdXRpb24tam91cm5hbC5qc29uLiBUaGV5IGhhc2gtbGluayBpdHMgZXhhY3Qgb3JpZ2luYWwgYXBwcm92ZWQgaWRlbnRpdHksIENPTVBMRVRFIGJhY2t1cCBhbmQgVU5DRVJUQUlOIGNvcHkgYXR0ZW1wdCBJRHMvcmVzdWx0cy4gTm8gZXh0cmEgb3JpZ2luYWwgcGhhc2Ugb3IgcmVsZWFzZSBpcyBhbGxvd2VkOyBvcmlnaW5hbCBqb3VybmFsIGhhc2ggaXMgY2hlY2tlZCBiZWZvcmUgYW5kIGFmdGVyIGVhY2ggbmV3IHBoYXNlLiBObyBvbGQgZHJpbGwtY29weSByZXRyeS9vdmVyd3JpdGUgb3Igc3ludGhlc2l6ZWQgY29tcGxldGVkIHBoYXNlLlxuXG5CZWZvcmUgcmVzY3VlLCBvcmlnaW5hbCBsb2NhbCBkcmlsbC5zcWxpdGUvY3V0b3Zlci5zcWxpdGUgbXVzdCBiZSBhYnNlbnQsIHJlc3RvcmUgdm9sdW1lIG11c3QgYmUgYWJzZW50LCBhbmQgbG9jYWwgZW5naW5lIGJudC1sYXAwMDEvY3VycmVudCBuYXRpdmUgb2xkaW1hZ2U3ZjUvc291cmNlN2RiL3NlYWxlZERlcGxveW1lbnQrQ00vUFZDL29yaWdpbmFsUG9kVUlEIG11c3QgbWF0Y2guIFRoZSBvbGQgYmFja3VwIGFkbWluIGFscmVhZHkgZXhpdGVkIGFmdGVyIHVuaXF1ZWx5IGNyZWF0aW5nIHRoZSBwcml2YXRlIGZpeGVkIHNuYXBzaG90IHBhdGg7IHRoZSBvbmx5IGxhdGVyIG9yaWdpbmFsIGFjY2VzcyB3YXMgV0FMLWF3YXJlIHJlYWRvbmx5IGluc3BlY3Rpb24sIHdpdGggbm8gc25hcHNob3Qgd3JpdGVyLiBNYWluIGhhc2gsIHByaXZhdGUgaWRlbnRpdGllcyBhbmQgYWJzZW50L3plcm8gV0FMIGFyZSBjaGVja2VkIGJlZm9yZS9hZnRlciBpbW11dGFibGUgaW5zcGVjdGlvbiBhbmQgY29weS4gT3JpZ2luYWwgcHJpdmF0ZSBTSE0gaXMgaW5kZXhpbmcgYW5kIGlzIHJldGFpbmVkIHVuY2hhbmdlZC4gTm9uZW1wdHkgV0FMLCBjaGFuZ2VkIGhhc2gvbWV0YWRhdGEsIG1pc3NpbmcgZmFpbGVkIGpvdXJuYWwsIG1pc3Npbmcgb3JpZ2luIG9yIGFueSB1bnZlcmlmaWVkIG91dGNvbWUgc3RvcHMgcmVzY3VlLiBObyBuZXcgbmF0aXZlIGJhY2t1cCBpcyBtYWRlIGZvciB0aGUgZHJpbGwuIEJpbmFyeSBzbmFwc2hvdCBieXRlcyBmbG93IG9ubHkgaW50byBhIG5ldzA2MDAgbG9jYWxmaWxlLCBuZXZlciBjaGF0L2xvZy9wYWNrZXQuIFNhbWUgcmVzY3VlLXBoYXNlIHJldHJ5IGlzIHJlZnVzZWQgYWZ0ZXIgYW55IGF0dGVtcHRlZCBvdXRjb21lLlxuXG5PZmZsaW5lIHZlcmlmaWNhdGlvbiBleHBsaWNpdGx5IGNvbnN1bWVzIENPTVBMRVRFIGRyaWxsLWNvcHktcmVzY3VlLXIxIHJlc3VsdCwgbm90IHRoZSBvbGQgVU5DRVJUQUlOIGRyaWxsLWNvcHkuIEV4aXN0aW5nIGV4YWN0IGlzb2xhdGVkIG5ldy12b2x1bWUgVUlEMC9DQVBfQ0hPV04gaW5pdGlhbGl6ZXIsIGZvbGxvd2VkIGJ5IFVJRDEwMDAxIHJlYWRvbmx5L2FkbWluL3Bvc3QtYWRtaW4gY2hlY2tzIGFuZCByZXRhaW5lZCBvcmlnaW5hbCBTSEEsIHJlbWFpbnMgYm91bmRlZCBuZXR3b3Jrbm9uZS9yZWFkb25seXJvb3QvQ1BVMS8xMjhNaSB3aXRoIG5vIGhvc3QvbmF0aXZlUFZDL3J1bnRpbWVjb25maWcvdG9rZW4gbW91bnRzLiBPbmx5IHRoZSBkaXNwb3NhYmxlIGNvcHkgdm9sdW1lIGNhbiBiZSByZW1vdmVkLiBDdXRvdmVyIHNuYXBzaG90IGlzIHRoZSBkaXN0aW5jdCBhbHJlYWR5LXNjb3BlZCBuZXcgY3V0b3Zlci5zcWxpdGU7IHJlc2N1ZSBuZXZlciBvdmVyd3JpdGVzIGRyaWxsLnNxbGl0ZSBvciBjcmVhdGVzIGFub3RoZXIgZHJpbGwgYmFja3VwLlxuXG5Gb3VyIGNvbW1pdHRlZCBvd25lciByZW5kZXIgR2l0IGJsb2JzIGFuZCBoZWxwZXIvY2FzZSBoYXNoZXMgbXVzdCBtYXRjaCBleGFjdCBmaW5hbCBzb3VyY2UgSEVBRC4gTWFudWFsQXBwbGljYXRpb24gcmVqZWN0cyBhbnkgYXV0b21hdGVkIGNvbmZpZ3VyYXRpb24gaW5jbHVkaW5nIHt9IG9yIHNvdXJjZSBvdmVycmlkZXMuIFNvdXJjZS1waW4gQXBwbGljYXRpb24ub3BlcmF0aW9uIHVzZXMgc2VydmVyIGRyeS1ydW4gYW5kIFVJRC9yZXNvdXJjZVZlcnNpb24vc291cmNlIENBUywgRGVwbG95bWVudC1vbmx5L3BydW5lPWZhbHNlOyBubyB3aG9sZS1hcHAgc3luYy4gUm9sbGJhY2sgZGlzcGF0Y2ggaGFzIG5vIGZhaWxpbmctY2FuZGlkYXRlIFBvZC9EQiBkZXBlbmRlbmN5OyBzZXBhcmF0ZSByZWNvdmVyeSBwcm9vZiBjaGVja3Mgb2xkaW1hZ2UgUmVhZHkxL3Njb3BlZG9wZXJhdGlvbi9zY2hlbWE1IHJldGFpbmVkbGF0ZXN0REIuIEFsbCBwaGFzZXMgaW5jbHVkaW5nIHJlY292ZXJ5L3ZlcmlmaWNhdGlvbiBtdXN0IGJlZ2luIGJ5MjAyNi0xMC0xMlQyMzo1OTo1OVo7IGFmdGVyIGV4cGlyeSBvYnRhaW4gYSBmcmVzaCBmb3VuZGVyIGRlY2lzaW9uLiBObyBleHBpcnkgY29udHJvbGxlciBvciBpbXBsaWNpdCBleHRlbnNpb24uXG5cbkltYWdlNzYzYy9wb2xpY3k5ZDdjIGFuZCBrbm93biBpbmhlcml0ZWQgZml4YWJsZSBNRURJVU0gcmVtYWluIHVuY2hhbmdlZDsgb3duZXIgVDA1IGR1ZU9jdDE4LiBUZW4gaW5zdGFsbGVkIGNoZWNrcyB1c2Ugc3ludGhldGljIHRyYW5zcG9ydC9uYXRpdmVfcHJvdmlkZXI9ZmFsc2UgYW5kIGRvIG5vdCBmdWxmaWxsIHNlcGFyYXRlIGFjdHVhbC1wcm92aWRlciBUMDQgZ2F0ZS4gUHJlc2VydmUgb3JpZ2luYWwgYWNjZXB0YW5jZS9iYWNrdXAvZmFpbHVyZS9oaXN0b3J5IGluIHRoaXMgc2FtZSB0cmlhbC4gVHdlbnR5LXNpeCBtb2NrZWQvc291cmNlIGV4ZWN1dG9yIHJlZ3Jlc3Npb25zIHBhc3M7IG5vIGFjdHVhbCBEQi9hZG1pbi9uYXRpdmUgY29tbWFuZCBkdXJpbmcgdGVzdHMvcHJlcGFyYXRpb24uXG5cbk5hdGl2ZSBwdWJsaWNhdGlvbiByb3V0ZTogUE9TVCBleGlzdGluZyBzb3VyY2UgL2xpZmVjeWNsZS9tZW1vcy9pbmZkLTIwMjYxMDExLXB1cnBvc2Utb3ZlcmxheS1yMS9yZXZpc2lvbnMgd2l0aCBleHBlY3RlZF92ZXJzaW9uMSBhbmQgZXhhY3QgbWVtbzIvZG9jdW1lbnRzL3N1bW1hcnksIHRoZW4gcHVibGljYXRpb25zL3Jldmlldy1yZXF1ZXN0cyB2ZXJzaW9uMi4gRnJlc2ggc291cmNlIHJlYWRiYWNrIG11c3QgcHJvdmUgY3VycmVudHZlcnNpb24xIGlzIHVuYm91bmQgYmVmb3JlIHJldmlzaW9uOyBib3VuZC9kaWZmZXJlbnQgc291cmNlIHN0b3BzLiBJbnRha2UvcmVnaXN0ZXIgcmVmdXNlIHZlcnNpb24yIGFzIGRlc2lnbmVkIGFuZCBhcmUgbm90IHVzZWQuIFJldmlldyBpbnRlZ3JhdGlvbiBjcmVhdGVzIGEgTkVXIHJldmlldy1JRCBhdCBpdHMgb3duIHZlcnNpb24xOyBmb3VuZGVyIGRpc3Bvc2l0aW9uIG1lbW9fdmVyc2lvbjEgYmVsb25ncyB0byB0aGF0IG5ldyByZXZpZXcuIFJvb3QgZnJlc2ggb3V0Y29tZXMgbXVzdCBiZSBxdWVyaWVkIGZvciBTT1VSQ0UgdmVyc2lvbjIsIGV4YWN0IG5ld3Jldmlld0lEL21lbW9TSEEgYW5kIGNvbmZpcm1lZCBuZXN0ZWQgcGVyc29uYXBwcm92YWwuIFJlY2VpcHQgb3V0Y29tZV9xdWVyeSBwaW5zIHRoYXQgc291cmNldmVyc2lvbjIgcm91dGU7IGl0IGRvZXMgbm90IGF1dGhlbnRpY2F0ZSBieSBpdHNlbGYuXG4iCiAgICB9LAogICAgImFjdHVhdG9yLnB5IjogewogICAgICAic2hhMjU2IjogIjg2YjY3ZDFhYmFkNmFmMmE4YzQ5NTI4ZmUxMjVhNWJhYjk0NDk3NWQzZTgwMTgyNmM1MTFlZTg4ODQ2NTcxYjIiLAogICAgICAiY29udGVudCI6ICJcIlwiXCJPbmUgZml4ZWQgc3VwZXJ2aXNlZCBwaGFzZTsgbmV2ZXIgcnVuIHRoaXMgZHVyaW5nIHNvdXJjZSBwcmVwYXJhdGlvbi5cIlwiXCJcbmltcG9ydCBhcmdwYXJzZVxuaW1wb3J0IGhhc2hsaWJcbmltcG9ydCBqc29uXG5pbXBvcnQgb3NcbmZyb20gcGF0aGxpYiBpbXBvcnQgUGF0aFxuaW1wb3J0IHJlXG5pbXBvcnQgc2VsZWN0b3JzXG5pbXBvcnQgc3RhdFxuaW1wb3J0IHN1YnByb2Nlc3NcbmltcG9ydCBzeXNcbmltcG9ydCB0aW1lXG5cbmlmIHN5cy5mbGFncy5vcHRpbWl6ZTpcbiAgICByYWlzZSBTeXN0ZW1FeGl0KCdvcHRpbWl6ZWQgaW50ZXJwcmV0ZXIgcmVmdXNlZCcpXG5cblBIQVNFUyA9ICgnZHJpbGwtY29weS1yZXNjdWUtcjEnLCAnb2ZmbGluZS12ZXJpZnknLCAnY2xlYW51cC1vZmZsaW5lJyxcbiAgICAgICAgICAnY3V0b3Zlci1iYWNrdXAnLCAnY3V0b3Zlci1jb3B5JywgJ3JlbGVhc2UnLCAndmVyaWZ5JywgJ3JvbGxiYWNrJywgJ3JvbGxiYWNrLXZlcmlmeScpXG5cblxuZGVmIHJlcXVpcmUodmFsdWUsIHJlYXNvbik6XG4gICAgaWYgbm90IHZhbHVlOlxuICAgICAgICByYWlzZSBWYWx1ZUVycm9yKHJlYXNvbilcblxuXG5kZWYgc2hhKHBhdGgpOlxuICAgIGRpZ2VzdCA9IGhhc2hsaWIuc2hhMjU2KClcbiAgICB3aXRoIFBhdGgocGF0aCkub3BlbigncmInKSBhcyBzdHJlYW06XG4gICAgICAgIGZvciBibG9jayBpbiBpdGVyKGxhbWJkYTogc3RyZWFtLnJlYWQoMTAyNCoqMiksIGInJyk6XG4gICAgICAgICAgICBkaWdlc3QudXBkYXRlKGJsb2NrKVxuICAgIHJldHVybiBkaWdlc3QuaGV4ZGlnZXN0KClcblxuXG5kZWYgcHJpdmF0ZShwYXRoLCBkaXJlY3Rvcnk9RmFsc2UpOlxuICAgIGluZm8gPSBQYXRoKHBhdGgpLmxzdGF0KClcbiAgICByZXF1aXJlKChzdGF0LlNfSVNESVIoaW5mby5zdF9tb2RlKSBpZiBkaXJlY3RvcnkgZWxzZSBzdGF0LlNfSVNSRUcoaW5mby5zdF9tb2RlKSlcbiAgICAgICAgICAgIGFuZCBpbmZvLnN0X3VpZCA9PSBvcy5nZXR1aWQoKSBhbmQgc3RhdC5TX0lNT0RFKGluZm8uc3RfbW9kZSkgPT0gKDBvNzAwIGlmIGRpcmVjdG9yeSBlbHNlIDBvNjAwKVxuICAgICAgICAgICAgYW5kIChkaXJlY3Rvcnkgb3IgaW5mby5zdF9ubGluayA9PSAxKSwgJ3ByaXZhdGUgb3duZWQgY3VzdG9keSByZXF1aXJlZCcpXG5cblJPT1QgPSBQYXRoKF9fZmlsZV9fKS5yZXNvbHZlKCkucGFyZW50XG5DQVNFID0gUk9PVC5wYXJlbnRcbk9XTkVSID0gUGF0aCgnL2hvbWUvd29yc2NoL2luZm9ybWVkLWRlY2lzaW9uJylcbkNVU1RPRElBTiA9IFBhdGgoJy9ob21lL3dvcnNjaC90aGUtY3VzdG9kaWFuJylcbkNVU1RPRFkgPSBDVVNUT0RJQU4gLyAnLnByaXZhdGUtYmFja3Vwcy8yMDI2MTAxMS1pbmZkLXB1cnBvc2UtcjEnXG5TT0NLRVQgPSAndW5peDovLy92YXIvcnVuL2RvY2tlci5zb2NrJ1xuSU1BR0UgPSAnZm9yZ2Vqby5jb3Vsb21iLnNvY2lhbC9jb3Vsb21iL2luZm9ybWVkLWRlY2lzaW9uQHNoYTI1Njo3NjNjMzY0MDJjOGJlN2NjNGMxYmQxYTYxNjIzZDFhZmY5MTE2ZDUyMjQxODc3NDI1YjQ1YTcwMThjYzA4ODNhJ1xuVk9MVU1FID0gJ2luZmQtcHVycG9zZS1yMS1yZXN0b3JlLTIwMjYxMDExJ1xuTUFYX0JZVEVTID0gNTEyICogMTAyNCoqMlxuXG5cbmRlZiBydW4oYXJndiwgYm9keT1Ob25lLCB0aW1lb3V0PTkwKTpcbiAgICByZXR1cm4gc3VicHJvY2Vzcy5ydW4oYXJndiwgaW5wdXQ9Ym9keSwgdGV4dD1UcnVlLCBjYXB0dXJlX291dHB1dD1UcnVlLCB0aW1lb3V0PXRpbWVvdXQpXG5cblxuZGVmIGpzb25fcmVzdWx0KHJlc3VsdCk6XG4gICAgdHJ5OlxuICAgICAgICB2YWx1ZSA9IGpzb24ubG9hZHMocmVzdWx0LnN0ZG91dClcbiAgICBleGNlcHQgKFZhbHVlRXJyb3IsIFR5cGVFcnJvcik6XG4gICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoJ3NhZmUgcGhhc2UgcmVjZWlwdCB1bmF2YWlsYWJsZTsgb3V0Y29tZSB1bmNlcnRhaW4nKSBmcm9tIE5vbmVcbiAgICByZXF1aXJlKHJlc3VsdC5yZXR1cm5jb2RlID09IDAgYW5kIGlzaW5zdGFuY2UodmFsdWUsIGRpY3QpIGFuZCB2YWx1ZS5nZXQoJ2FsbF9jaGVja3NfcGFzcycpIGlzIFRydWUsXG4gICAgICAgICAgICAncGhhc2UgZGlkIG5vdCB2ZXJpZnkgY29tcGxldGU7IHJhdyBvdXRwdXQgd2l0aGhlbGQ7IG5vIHJldHJ5JylcbiAgICBwZXJtaXR0ZWQgPSB7J3BoYXNlJywgJ2FsbF9jaGVja3NfcGFzcycsICdyYXdfb3V0cHV0X3dpdGhoZWxkJywgJ25hdGl2ZV9hcHByb3ZhbF92ZXJpZmllZF9ieV9yb290JyxcbiAgICAgICAgICAgICAgICAgJ25hdGl2ZV9hdXRoZW50aWNhdGVkX2dyYW50JywgJ3NvdXJjZV9yZWFkb25seV9iYXNlbGluZScsICdzbmFwc2hvdF9yZWFkb25seScsXG4gICAgICAgICAgICAgICAgICdzbmFwc2hvdF9zaGEyNTYnLCAnc25hcHNob3RfYnl0ZXMnLCAnc25hcHNob3RfZmlsZScsICduYXRpdmVfcGFyZW50X3ByaXZhdGUnLFxuICAgICAgICAgICAgICAgICAnbmF0aXZlX3VpZCcsICdwb2RfbmFtZScsICdwb2RfdWlkJywgJ2xpdmVfcmVhZG9ubHlfc2NoZW1hX2ludGVncml0eV9jb3VudHMnLFxuICAgICAgICAgICAgICAgICAnbGl2ZV9jb3VudHNfbWF5X2luY2x1ZGVfY29uY3VycmVudF9jb21taXRzJywgJ29wZXJhdGlvbl9yZXF1ZXN0ZWQnLCAnc291cmNlX3JldmlzaW9uJyxcbiAgICAgICAgICAgICAgICAgJ3Jlc291cmNlcycsICdwcnVuZScsICdyb2xsb3V0X3ZlcmlmaWVkJywgJ2xhdGVzdF9saXZlX2RhdGFiYXNlX3JldGFpbmVkJyxcbiAgICAgICAgICAgICAgICAgJ2NsaWVudF9kaWZmX3NoYTI1NicsICduYXRpdmVfcm9sbG91dF92ZXJpZmllZCcsICdjdXJyZW50X3NjaGVtYTVfZGF0YWJhc2VfcmV0YWluZWQnLFxuICAgICAgICAgICAgICAgICAncHJpdmF0ZV9jb3B5X3ZlcmlmaWVkJywgJ2luc3RhbGxlZF9wdXJwb3NlX2NoZWNrcycsICdwb2xpY3lfc2hhMjU2JyxcbiAgICAgICAgICAgICAgICAgJ3BvbGljeV9tb2RlJywgJ3BvbGljeV91aWQnLCAnaGVhbHRoX3N0YXR1c2VzJywgJ25hdGl2ZV9wcm92aWRlcl9wcm9iZScsICdyZWNvdmVyeV92ZXJpZmljYXRpb24nfVxuICAgIHJlcXVpcmUoc2V0KHZhbHVlKSA8PSBwZXJtaXR0ZWQsICd1bmV4cGVjdGVkIG91dHB1dCBmaWVsZHMgd2l0aGhlbGQnKVxuICAgIGZyb20gcmVjZWlwdF9zYWZldHkgaW1wb3J0IGNvdW50c1xuICAgIGZvciBuYW1lIGluICgnc291cmNlX3JlYWRvbmx5X2Jhc2VsaW5lJywgJ3NuYXBzaG90X3JlYWRvbmx5JywgJ2xpdmVfcmVhZG9ubHlfc2NoZW1hX2ludGVncml0eV9jb3VudHMnKTpcbiAgICAgICAgaWYgbmFtZSBpbiB2YWx1ZTpcbiAgICAgICAgICAgIGNvdW50cyh2YWx1ZVtuYW1lXSlcbiAgICBmb3IgbmFtZSBpbiAoJ3NuYXBzaG90X3NoYTI1NicsICdjbGllbnRfZGlmZl9zaGEyNTYnKTpcbiAgICAgICAgaWYgbmFtZSBpbiB2YWx1ZTpcbiAgICAgICAgICAgIHJlcXVpcmUocmUuZnVsbG1hdGNoKHInW2EtZjAtOV17NjR9JywgdmFsdWVbbmFtZV0pIGlzIG5vdCBOb25lLCAnaW52YWxpZCBvdXRwdXQgZGlnZXN0IHdpdGhoZWxkJylcbiAgICBpZiAnc25hcHNob3RfYnl0ZXMnIGluIHZhbHVlOlxuICAgICAgICByZXF1aXJlKHR5cGUodmFsdWVbJ3NuYXBzaG90X2J5dGVzJ10pIGlzIGludCBhbmQgMCA8IHZhbHVlWydzbmFwc2hvdF9ieXRlcyddIDw9IE1BWF9CWVRFUyxcbiAgICAgICAgICAgICAgICAnaW52YWxpZCBvdXRwdXQgc2l6ZSB3aXRoaGVsZCcpXG4gICAgaWYgJ3NuYXBzaG90X2ZpbGUnIGluIHZhbHVlOlxuICAgICAgICByZXF1aXJlKHZhbHVlWydzbmFwc2hvdF9maWxlJ10gaW4gKCdkcmlsbC5zcWxpdGUnLCAnY3V0b3Zlci5zcWxpdGUnKSwgJ2ludmFsaWQgb3V0cHV0IGZpbGUgd2l0aGhlbGQnKVxuICAgIHJldHVybiB2YWx1ZVxuXG5cbmRlZiBkb2NrZXIoYXJndiwgYm9keT1Ob25lLCB0aW1lb3V0PTEyMCk6XG4gICAgcmV0dXJuIHJ1bihbJ2RvY2tlcicsICctLWNvbmZpZycsIHN0cihDVVNUT0RZIC8gJ2VtcHR5LWRvY2tlci1jb25maWcnKSwgJy0taG9zdCcsIFNPQ0tFVF0gKyBhcmd2LFxuICAgICAgICAgICAgICAgYm9keT1ib2R5LCB0aW1lb3V0PXRpbWVvdXQpXG5cblxuZGVmIHJlbW90ZShwaGFzZSwgcmV2aXNpb24sIGFwcHJvdmVkLCBzbmFwc2hvdF9pZGVudGl0eT1Ob25lKTpcbiAgICAjIEZpeGVkIG1vZHVsZSBpbXBvcnRlZCBvbmx5IGFmdGVyIG1haW4gdmVyaWZpZXMgZXZlcnkgZXhlY3V0b3Igc291cmNlIGhhc2guXG4gICAgZnJvbSBuYXRpdmVfcHJvZ3JhbSBpbXBvcnQgUFJPR1JBTVxuICAgIHBheWxvYWQgPSB7J3NuYXBzaG90X2lkZW50aXR5Jzogc25hcHNob3RfaWRlbnRpdHksICdwaGFzZSc6IHBoYXNlLCAnc291cmNlX3JldmlzaW9uJzogcmV2aXNpb24sICdhcHByb3ZhbCc6IGFwcHJvdmVkLFxuICAgICAgICAgICAgICAgJ3NlYWxlZCc6IGpzb24ubG9hZHMoKENBU0UgLyAnc2VhbGVkLWxpdmUtZGVwbG95bWVudC5qc29uJykucmVhZF90ZXh0KCkpLFxuICAgICAgICAgICAgICAgJ2RlcGVuZGVuY2llcyc6IGpzb24ubG9hZHMoKENBU0UgLyAnc2VhbGVkLW5hdGl2ZS1kZXBlbmRlbmNpZXMuanNvbicpLnJlYWRfdGV4dCgpKSxcbiAgICAgICAgICAgICAgICdjYW5kaWRhdGUnOiBqc29uLmxvYWRzKChDQVNFIC8gJ2NhbmRpZGF0ZS1kZXBsb3ltZW50Lmpzb24nKS5yZWFkX3RleHQoKSksXG4gICAgICAgICAgICAgICAncm9sbGJhY2snOiBqc29uLmxvYWRzKChDQVNFIC8gJ3JvbGxiYWNrLWRlcGxveW1lbnQuanNvbicpLnJlYWRfdGV4dCgpKSxcbiAgICAgICAgICAgICAgICdyZWNlaXB0X3NhZmV0eSc6IChST09UIC8gJ3JlY2VpcHRfc2FmZXR5LnB5JykucmVhZF90ZXh0KCksXG4gICAgICAgICAgICAgICAncHVycG9zZV9jaGVja3MnOiAoQ0FTRSAvICdjaGVja19pbnN0YWxsZWQucHknKS5yZWFkX3RleHQoKSxcbiAgICAgICAgICAgICAgICdyZWFkb25seSc6IChDQVNFIC8gJ3NxbGl0ZV9yZWFkb25seS5weScpLnJlYWRfdGV4dCgpfVxuICAgIHNjcmlwdCA9IFBST0dSQU0ucmVwbGFjZSgnX19QQVlMT0FEX18nLCByZXByKGpzb24uZHVtcHMocGF5bG9hZCkpKS5yZXBsYWNlKFxuICAgICAgICAnX19HVUFSRF9fJywgcmVwcigoQ0FTRSAvICdjaGFuZ2VfZ3VhcmQucHknKS5yZWFkX3RleHQoKSkpXG4gICAgcmV0dXJuIGpzb25fcmVzdWx0KHJ1bihbJ3NzaCcsICdyYWlsaWFuY2UwMScsICdweXRob24zIC0nXSwgc2NyaXB0LCB0aW1lb3V0PTIwMCkpXG5cblxuZGVmIGNvcHlfc25hcHNob3QocGhhc2UsIHJldmlzaW9uLCBhcHByb3ZlZCwgam91cm5hbCk6XG4gICAgcHJpb3IgPSAoam91cm5hbC5kYXRhWydpZGVudGl0eSddWydyZWNvdmVyeV9hbmNob3InXVsnYmFja3VwX3Jlc3VsdCddXG4gICAgICAgICAgICAgaWYgcGhhc2UgPT0gJ2RyaWxsLWNvcHktcmVzY3VlLXIxJyBlbHNlIGpvdXJuYWwuZGF0YVsncGhhc2VzJ11bJ2N1dG92ZXItYmFja3VwJ11bJ3Jlc3VsdCddKVxuICAgIG1ldGFkYXRhID0gcmVtb3RlKHBoYXNlLCByZXZpc2lvbiwgYXBwcm92ZWQsIHNuYXBzaG90X2lkZW50aXR5PXByaW9yKVxuICAgIGZvciBrZXkgaW4gKCdzbmFwc2hvdF9zaGEyNTYnLCAnc25hcHNob3RfYnl0ZXMnLCAnc25hcHNob3RfZmlsZScsICdzbmFwc2hvdF9yZWFkb25seScpOlxuICAgICAgICByZXF1aXJlKG1ldGFkYXRhW2tleV0gPT0gcHJpb3Jba2V5XSwgJ2Nsb3NlZCBmcm96ZW4gc25hcHNob3QgY2hhbmdlZCcpXG4gICAgbmFtZSA9IG1ldGFkYXRhWydzbmFwc2hvdF9maWxlJ11cbiAgICByZXF1aXJlKG5hbWUgaW4gKCdkcmlsbC5zcWxpdGUnLCAnY3V0b3Zlci5zcWxpdGUnKSBhbmQgMCA8IG1ldGFkYXRhWydzbmFwc2hvdF9ieXRlcyddIDw9IE1BWF9CWVRFUyxcbiAgICAgICAgICAgICdmaXhlZCBib3VuZGVkIHNuYXBzaG90IHJlcXVpcmVkJylcbiAgICBwb2QgPSBtZXRhZGF0YVsncG9kX25hbWUnXVxuICAgIHJlcXVpcmUocmUuZnVsbG1hdGNoKHInW2EtejAtOV0oWy1hLXowLTldKlthLXowLTldKT8nLCBwb2QpIGlzIG5vdCBOb25lLCAnZml4ZWQgb3duZXIgcG9kIG5hbWUgcmVxdWlyZWQnKVxuICAgIGxvY2FsID0gQ1VTVE9EWSAvIG5hbWVcbiAgICBmZCA9IG9zLm9wZW4obG9jYWwsIG9zLk9fV1JPTkxZIHwgb3MuT19DUkVBVCB8IG9zLk9fRVhDTCB8IG9zLk9fTk9GT0xMT1csIDBvNjAwKVxuICAgICMgQmluYXJ5IHNuYXBzaG90IHN0ZG91dCBnb2VzIG9ubHkgdG8gYSBwcml2YXRlIGZpbGUsIG5ldmVyIHRvb2wvY2hhdC9sb2cgb3V0cHV0LlxuICAgICMgU25hcHNob3Qgc2NoZW1hL2NvdW50IG1ldGFkYXRhIHdhcyB2YWxpZGF0ZWQgYmVmb3JlIG9wZW5pbmcgdGhpcyBkZXN0aW5hdGlvbi5cbiAgICB3aXRoIG9zLmZkb3BlbihmZCwgJ3diJykgYXMgZGVzdGluYXRpb246XG4gICAgICAgIGNvbW1hbmQgPSAoJ2t1YmVjdGwgZXhlYyAtbiBpbmZvcm1lZC1kZWNpc2lvbiAnICsgcG9kICtcbiAgICAgICAgICAgICAgICAgICAnIC1jIGluZm9ybWVkLWRlY2lzaW9uIC0tIGNhdCAvZGF0YS9wcml2YXRlL3B1cnBvc2Utb3ZlcmxheS1yMS8nICsgbmFtZSlcbiAgICAgICAgdHJhbnNmZXIgPSBzdWJwcm9jZXNzLlBvcGVuKFsnc3NoJywgJ3JhaWxpYW5jZTAxJywgY29tbWFuZF0sIHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGRlcnI9c3VicHJvY2Vzcy5ERVZOVUxMKVxuICAgICAgICBzZWxlY3RvciA9IHNlbGVjdG9ycy5EZWZhdWx0U2VsZWN0b3IoKVxuICAgICAgICBzZWxlY3Rvci5yZWdpc3Rlcih0cmFuc2Zlci5zdGRvdXQsIHNlbGVjdG9ycy5FVkVOVF9SRUFEKVxuICAgICAgICBkZWFkbGluZSA9IHRpbWUubW9ub3RvbmljKCkgKyAxNTBcbiAgICAgICAgcmVjZWl2ZWQgPSAwXG4gICAgICAgIHRyeTpcbiAgICAgICAgICAgIHdoaWxlIFRydWU6XG4gICAgICAgICAgICAgICAgcmVtYWluaW5nID0gZGVhZGxpbmUgLSB0aW1lLm1vbm90b25pYygpXG4gICAgICAgICAgICAgICAgcmVxdWlyZShyZW1haW5pbmcgPiAwIGFuZCBzZWxlY3Rvci5zZWxlY3QocmVtYWluaW5nKSwgJ3ByaXZhdGUgdHJhbnNmZXIgdGltZWQgb3V0JylcbiAgICAgICAgICAgICAgICBibG9jayA9IG9zLnJlYWQodHJhbnNmZXIuc3Rkb3V0LmZpbGVubygpLCAxMDI0KioyKVxuICAgICAgICAgICAgICAgIGlmIG5vdCBibG9jazpcbiAgICAgICAgICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICAgICAgICByZWNlaXZlZCArPSBsZW4oYmxvY2spXG4gICAgICAgICAgICAgICAgcmVxdWlyZShyZWNlaXZlZCA8PSBtZXRhZGF0YVsnc25hcHNob3RfYnl0ZXMnXSBhbmQgcmVjZWl2ZWQgPD0gTUFYX0JZVEVTLFxuICAgICAgICAgICAgICAgICAgICAgICAgJ3ByaXZhdGUgY29weSBleGNlZWRzIGZyb3plbiBzbmFwc2hvdCBzaXplJylcbiAgICAgICAgICAgICAgICBkZXN0aW5hdGlvbi53cml0ZShibG9jaylcbiAgICAgICAgICAgIHRyYW5zZmVyLndhaXQodGltZW91dD1tYXgoMSwgZGVhZGxpbmUgLSB0aW1lLm1vbm90b25pYygpKSlcbiAgICAgICAgZmluYWxseTpcbiAgICAgICAgICAgIHNlbGVjdG9yLmNsb3NlKClcbiAgICAgICAgICAgIHRyYW5zZmVyLnN0ZG91dC5jbG9zZSgpXG4gICAgICAgICAgICBpZiB0cmFuc2Zlci5wb2xsKCkgaXMgTm9uZTpcbiAgICAgICAgICAgICAgICB0cmFuc2Zlci5raWxsKClcbiAgICAgICAgICAgICAgICB0cmFuc2Zlci53YWl0KClcbiAgICAgICAgZGVzdGluYXRpb24uZmx1c2goKVxuICAgICAgICBvcy5mc3luYyhkZXN0aW5hdGlvbi5maWxlbm8oKSlcbiAgICBwcml2YXRlKGxvY2FsKVxuICAgIHJlcXVpcmUodHJhbnNmZXIucmV0dXJuY29kZSA9PSAwIGFuZCBsb2NhbC5zdGF0KCkuc3Rfc2l6ZSA9PSBtZXRhZGF0YVsnc25hcHNob3RfYnl0ZXMnXVxuICAgICAgICAgICAgYW5kIHNoYShsb2NhbCkgPT0gbWV0YWRhdGFbJ3NuYXBzaG90X3NoYTI1NiddLCAncHJpdmF0ZSBjb3B5IGluY29tcGxldGUvdW5jZXJ0YWluOyByZXRhaW4sIG5vIHJldHJ5JylcbiAgICAjIFJlLXJlYWQgaWRlbnRpdHkvaGFzaCBhZnRlciB0cmFuc2Zlci4gVGhpcyBpcyB2ZXJpZmljYXRpb24sIG5vdCBhIHdyaXRlIHJldHJ5LlxuICAgIGFmdGVyID0gcmVtb3RlKHBoYXNlLCByZXZpc2lvbiwgYXBwcm92ZWQsIHNuYXBzaG90X2lkZW50aXR5PXByaW9yKVxuICAgIHJlcXVpcmUoYWZ0ZXJbJ3BvZF91aWQnXSA9PSBtZXRhZGF0YVsncG9kX3VpZCddIGFuZCBhZnRlclsnc25hcHNob3Rfc2hhMjU2J10gPT0gbWV0YWRhdGFbJ3NuYXBzaG90X3NoYTI1NiddLFxuICAgICAgICAgICAgJ3NvdXJjZSBpZGVudGl0eS9zbmFwc2hvdCBjaGFuZ2VkIGR1cmluZyB0cmFuc2ZlcicpXG4gICAgcmV0dXJuIHsqKm1ldGFkYXRhLCAnb2ZmX2NsdXN0ZXJfcHJpdmF0ZV9jb3B5X3ZlcmlmaWVkJzogVHJ1ZSwgJ3NuYXBzaG90X2NvbnRlbnRzX291dHB1dCc6IEZhbHNlfVxuXG5cbmRlZiBvZmZsaW5lX3ZlcmlmeShqb3VybmFsKTpcbiAgICBmcm9tIHJlY2VpcHRfc2FmZXR5IGltcG9ydCBjb3VudHNcbiAgICBzbmFwc2hvdCA9IENVU1RPRFkgLyAnZHJpbGwuc3FsaXRlJ1xuICAgIHByaXZhdGUoc25hcHNob3QpXG4gICAgcHJldmlvdXMgPSBqb3VybmFsLmRhdGFbJ3BoYXNlcyddWydkcmlsbC1jb3B5LXJlc2N1ZS1yMSddWydyZXN1bHQnXVxuICAgIHJlcXVpcmUoc2hhKHNuYXBzaG90KSA9PSBwcmV2aW91c1snc25hcHNob3Rfc2hhMjU2J10sICdwcm90ZWN0ZWQgc25hcHNob3QgYnl0ZXMgY2hhbmdlZCcpXG4gICAgaWRlbnRpdHkgPSBkb2NrZXIoWydpbmZvJywgJy0tZm9ybWF0JywgJ3t7anNvbiAuTmFtZX19J10pXG4gICAgcmVxdWlyZShpZGVudGl0eS5yZXR1cm5jb2RlID09IDAgYW5kIGpzb24ubG9hZHMoaWRlbnRpdHkuc3Rkb3V0KSA9PSAnYm50LWxhcDAwMScsXG4gICAgICAgICAgICAnbG9jYWwgb2ZmbGluZSBEb2NrZXIgZW5naW5lIGlkZW50aXR5IGNoYW5nZWQnKVxuICAgIGxpc3RlZCA9IGRvY2tlcihbJ3ZvbHVtZScsICdscycsICctLWZvcm1hdCcsICd7ey5OYW1lfX0nXSlcbiAgICByZXF1aXJlKGxpc3RlZC5yZXR1cm5jb2RlID09IDAgYW5kIFZPTFVNRSBub3QgaW4gbGlzdGVkLnN0ZG91dC5zcGxpdGxpbmVzKCksXG4gICAgICAgICAgICAnZGlzcG9zYWJsZSB2b2x1bWUgYWJzZW5jZSBub3QgdmVyaWZpZWQnKVxuICAgIG5vbmNlID0gam91cm5hbC5kYXRhWydwaGFzZXMnXVsnb2ZmbGluZS12ZXJpZnknXVsnYXR0ZW1wdF9pZCddXG4gICAgbGFiZWxzID0geydpbmZvcm1lZC1kZWNpc2lvbi5jYXNlJzogJ2luZmQtcHVycG9zZS0yMDI2MTAxMS1yMScsXG4gICAgICAgICAgICAgICdpbmZvcm1lZC1kZWNpc2lvbi51c2UnOiAnb2ZmbGluZS1yZXN0b3JlLW9ubHknLCAnaW5mb3JtZWQtZGVjaXNpb24uYXR0ZW1wdCc6IG5vbmNlfVxuICAgIGNyZWF0ZWQgPSBkb2NrZXIoWyd2b2x1bWUnLCAnY3JlYXRlJywgJy0tZHJpdmVyJywgJ2xvY2FsJywgJy0tbGFiZWwnLCAnaW5mb3JtZWQtZGVjaXNpb24uY2FzZT1pbmZkLXB1cnBvc2UtMjAyNjEwMTEtcjEnLFxuICAgICAgICAgICAgICAgICAgICAgICctLWxhYmVsJywgJ2luZm9ybWVkLWRlY2lzaW9uLmF0dGVtcHQ9JyArIG5vbmNlLFxuICAgICAgICAgICAgICAgICAgICAgICctLWxhYmVsJywgJ2luZm9ybWVkLWRlY2lzaW9uLnVzZT1vZmZsaW5lLXJlc3RvcmUtb25seScsIFZPTFVNRV0pXG4gICAgcmVxdWlyZShjcmVhdGVkLnJldHVybmNvZGUgPT0gMCBhbmQgY3JlYXRlZC5zdGRvdXQuc3RyaXAoKSA9PSBWT0xVTUUsICd2b2x1bWUgY3JlYXRpb24gdW5jZXJ0YWluOyBubyByZXRyeScpXG4gICAgaW5zcGVjdGVkID0gZG9ja2VyKFsndm9sdW1lJywgJ2luc3BlY3QnLCBWT0xVTUVdKVxuICAgIHJlcXVpcmUoaW5zcGVjdGVkLnJldHVybmNvZGUgPT0gMCwgJ25ldyB2b2x1bWUgaWRlbnRpdHkgdW5hdmFpbGFibGUnKVxuICAgIHZvbHVtZSA9IGpzb24ubG9hZHMoaW5zcGVjdGVkLnN0ZG91dClcbiAgICByZXF1aXJlKGxlbih2b2x1bWUpID09IDEgYW5kIHZvbHVtZVswXVsnTmFtZSddID09IFZPTFVNRSBhbmQgdm9sdW1lWzBdLmdldCgnTGFiZWxzJykgPT0gbGFiZWxzXG4gICAgICAgICAgICBhbmQgdm9sdW1lWzBdLmdldCgnRHJpdmVyJykgPT0gJ2xvY2FsJyBhbmQgbm90IHZvbHVtZVswXS5nZXQoJ09wdGlvbnMnKVxuICAgICAgICAgICAgYW5kIHZvbHVtZVswXS5nZXQoJ1Njb3BlJykgPT0gJ2xvY2FsJywgJ25ldyBpc29sYXRlZCB2b2x1bWUgaWRlbnRpdHkgY2hhbmdlZCcpXG4gICAgaWRlbnRpdHkgPSB7a2V5OiB2b2x1bWVbMF1ba2V5XSBmb3Iga2V5IGluICgnTmFtZScsICdMYWJlbHMnLCAnRHJpdmVyJywgJ1Njb3BlJywgJ0NyZWF0ZWRBdCcpfVxuICAgIGpvdXJuYWwubm90ZSgnb2ZmbGluZS12ZXJpZnknLCAnY3JlYXRlZF92b2x1bWVfaWRlbnRpdHknLCBpZGVudGl0eSlcbiAgICAjIE9uZS10aW1lIFVJRDAvQ0FQX0NIT1dOIGluaXRpYWxpemF0aW9uIGlzIGlzb2xhdGVkIHRvIHRoZSBORVcgbmFtZWQgdm9sdW1lLlxuICAgICMgTm8gaG9zdC9saXZlIFBWQy9jb25maWcvdG9rZW4gbW91bnQgZXhpc3RzOyB0aGlzIGRldGFpbCBuZWVkcyBwYWNrZXQgcmV2aWV3LlxuICAgIGluaXRpYWxpemVyID0gXCJcIlwiaW1wb3J0IGhhc2hsaWIsb3Msc3RhdCxzeXNcbmlmIHN5cy5mbGFncy5vcHRpbWl6ZTpyYWlzZSBSdW50aW1lRXJyb3IoJ29wdGltaXplZCBpbnRlcnByZXRlciByZWZ1c2VkJylcbmZvbGRlcj0nL3Jlc3RvcmUnO2V4cGVjdGVkPUVYUEVDVEVEXG5pZiBvcy5saXN0ZGlyKGZvbGRlcik6cmFpc2UgVmFsdWVFcnJvcignbmV3IGVtcHR5IHByaXZhdGUgdm9sdW1lIHJlcXVpcmVkJylcbm9zLmNobW9kKGZvbGRlciwwbzcwMClcbmZkPW9zLm9wZW4oZm9sZGVyKycvcmV2aWV3LnNxbGl0ZScsb3MuT19DUkVBVHxvcy5PX0VYQ0x8b3MuT19OT0ZPTExPV3xvcy5PX1dST05MWSwwbzYwMClcbmRpZ2VzdD1oYXNobGliLnNoYTI1NigpO3NpemU9MFxud2l0aCBvcy5mZG9wZW4oZmQsJ3diJykgYXMgdGFyZ2V0OlxuIHdoaWxlIFRydWU6XG4gIGJsb2NrPXN5cy5zdGRpbi5idWZmZXIucmVhZCgxMDI0KioyKVxuICBpZiBub3QgYmxvY2s6YnJlYWtcbiAgc2l6ZSs9bGVuKGJsb2NrKVxuICBpZiBzaXplPjUxMioxMDI0KioyOnJhaXNlIFZhbHVlRXJyb3IoJ3ByaXZhdGUgcmVzdG9yZSBzaXplIGV4Y2VlZHMgYm91bmQnKVxuICB0YXJnZXQud3JpdGUoYmxvY2spO2RpZ2VzdC51cGRhdGUoYmxvY2spXG4gdGFyZ2V0LmZsdXNoKCk7b3MuZnN5bmModGFyZ2V0LmZpbGVubygpKVxuaWYgZGlnZXN0LmhleGRpZ2VzdCgpIT1leHBlY3RlZDpyYWlzZSBWYWx1ZUVycm9yKCdwcml2YXRlIGNvcGllZCBzbmFwc2hvdCBkaWZmZXJzJylcbm9zLmNob3duKGZvbGRlcisnL3Jldmlldy5zcWxpdGUnLDEwMDAxLDEwMDAxKTtvcy5jaG93bihmb2xkZXIsMTAwMDEsMTAwMDEpXG5wcmludCgne1wiYWxsX2NoZWNrc19wYXNzXCI6dHJ1ZSxcInByaXZhdGVfY29weV92ZXJpZmllZFwiOnRydWV9JylcblwiXCJcIi5yZXBsYWNlKCdFWFBFQ1RFRCcsIHJlcHIocHJldmlvdXNbJ3NuYXBzaG90X3NoYTI1NiddKSlcbiAgICB3aXRoIHNuYXBzaG90Lm9wZW4oJ3JiJykgYXMgc291cmNlOlxuICAgICAgICBhcmd2ID0gWydkb2NrZXInLCAnLS1jb25maWcnLCBzdHIoQ1VTVE9EWSAvICdlbXB0eS1kb2NrZXItY29uZmlnJyksICctLWhvc3QnLCBTT0NLRVQsXG4gICAgICAgICAgICAgICAgJ3J1bicsICctLXJtJywgJy1pJywgJy0tbmV0d29yaycsICdub25lJywgJy0tcmVhZC1vbmx5JywgJy0tY3B1cycsICcxJywgJy0tbWVtb3J5JywgJzEyOG0nLFxuICAgICAgICAgICAgICAgICctLXVzZXInLCAnMDowJywgJy0tY2FwLWRyb3AnLCAnQUxMJywgJy0tY2FwLWFkZCcsICdDSE9XTicsXG4gICAgICAgICAgICAgICAgJy0tc2VjdXJpdHktb3B0JywgJ25vLW5ldy1wcml2aWxlZ2VzJywgJy0tbW91bnQnLCAndHlwZT12b2x1bWUsc3JjPScgKyBWT0xVTUUgKyAnLGRzdD0vcmVzdG9yZScsXG4gICAgICAgICAgICAgICAgJy0tZW50cnlwb2ludCcsICdweXRob24nLCBJTUFHRSwgJy1jJywgaW5pdGlhbGl6ZXJdXG4gICAgICAgIGNvcGllZCA9IHN1YnByb2Nlc3MucnVuKGFyZ3YsIHN0ZGluPXNvdXJjZSwgdGV4dD1UcnVlLCBjYXB0dXJlX291dHB1dD1UcnVlLCB0aW1lb3V0PTE1MClcbiAgICBqc29uX3Jlc3VsdChjb3BpZWQpXG4gICAgb3B0aW9ucyA9IFsncnVuJywgJy0tcm0nLCAnLWknLCAnLS1uZXR3b3JrJywgJ25vbmUnLCAnLS1yZWFkLW9ubHknLCAnLS1jcHVzJywgJzEnLCAnLS1tZW1vcnknLCAnMTI4bScsXG4gICAgICAgICAgICAgICAnLS11c2VyJywgJzEwMDAxOjEwMDAxJywgJy0tY2FwLWRyb3AnLCAnQUxMJywgJy0tc2VjdXJpdHktb3B0JywgJ25vLW5ldy1wcml2aWxlZ2VzJyxcbiAgICAgICAgICAgICAgICctLW1vdW50JywgJ3R5cGU9dm9sdW1lLHNyYz0nICsgVk9MVU1FICsgJyxkc3Q9L3Jlc3RvcmUnXVxuICAgIHJlYWRvbmx5ID0gZG9ja2VyKG9wdGlvbnMgKyBbJy0tZW50cnlwb2ludCcsICdweXRob24nLCBJTUFHRSwgJy0nLCAnLS1kYicsICcvcmVzdG9yZS9yZXZpZXcuc3FsaXRlJ10sXG4gICAgICAgICAgICAgICAgICAgICAgKENBU0UgLyAnc3FsaXRlX3JlYWRvbmx5LnB5JykucmVhZF90ZXh0KCkpXG4gICAgcmVxdWlyZShyZWFkb25seS5yZXR1cm5jb2RlID09IDAsICdvZmZsaW5lIHByZS1vcGVuIHNjaGVtYS9pbnRlZ3JpdHkgZ2F0ZSByZWZ1c2VkOyBuZXZlciBvcGVuIFN0b3JlJylcbiAgICBjaGVja2VkID0gY291bnRzKGpzb24ubG9hZHMocmVhZG9ubHkuc3Rkb3V0KSlcbiAgICByZXF1aXJlKGNoZWNrZWQgPT0gcHJldmlvdXNbJ3NuYXBzaG90X3JlYWRvbmx5J10sICdmcm96ZW4gc25hcHNob3QvY2xvbmUgcmVhZG9ubHkgY291bnRzIGRpZmZlcicpXG4gICAgYWRtaW4gPSBkb2NrZXIob3B0aW9ucyArIFsnLS1lbnRyeXBvaW50JywgJ2luZm9ybWVkLWRlY2lzaW9uLWFkbWluJywgSU1BR0UsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnaW5zcGVjdCcsICctLWRiJywgJy9yZXN0b3JlL3Jldmlldy5zcWxpdGUnXSlcbiAgICByZXF1aXJlKGFkbWluLnJldHVybmNvZGUgPT0gMCwgJ29mZmxpbmUgYWRtaW4gcmVzdWx0IHVuY2VydGFpbicpXG4gICAgYWRtaW5fY291bnRzID0ganNvbi5sb2FkcyhhZG1pbi5zdGRvdXQpXG4gICAgcmVxdWlyZShhZG1pbl9jb3VudHMgPT0ge2tleTogY2hlY2tlZFtrZXldIGZvciBrZXkgaW4gKCdzY2hlbWFfdmVyc2lvbicsICdsaWZlY3ljbGUnLCAnb3V0Ym94JywgJ3N1Ym1pc3Npb25zJyl9LFxuICAgICAgICAgICAgJ29mZmxpbmUgYWRtaW4gY2hhbmdlZCBmcm96ZW4gc25hcHNob3QgY291bnRlcnMnKVxuICAgICMgQWRtaW4gU3RvcmUgY29uc3RydWN0aW9uIG11c3Qgbm90IHNpbGVudGx5IGFsdGVyIHNjaGVtYS9pbnRlZ3JpdHkvY291bnRlcnMuXG4gICAgcG9zdCA9IGRvY2tlcihvcHRpb25zICsgWyctLWVudHJ5cG9pbnQnLCAncHl0aG9uJywgSU1BR0UsICctJywgJy0tZGInLCAnL3Jlc3RvcmUvcmV2aWV3LnNxbGl0ZSddLFxuICAgICAgICAgICAgICAgICAgKENBU0UgLyAnc3FsaXRlX3JlYWRvbmx5LnB5JykucmVhZF90ZXh0KCkpXG4gICAgcmVxdWlyZShwb3N0LnJldHVybmNvZGUgPT0gMCwgJ29mZmxpbmUgcG9zdC1hZG1pbiByZWFkb25seSBpbnRlZ3JpdHkgZ2F0ZSByZWZ1c2VkJylcbiAgICBwb3N0X2NoZWNrZWQgPSBjb3VudHMoanNvbi5sb2Fkcyhwb3N0LnN0ZG91dCkpXG4gICAgcmVxdWlyZShwb3N0X2NoZWNrZWQgPT0gY2hlY2tlZCA9PSBwcmV2aW91c1snc25hcHNob3RfcmVhZG9ubHknXSxcbiAgICAgICAgICAgICdvZmZsaW5lIGFkbWluIGFsdGVyZWQgZnJvemVuIHNuYXBzaG90IHByb29mJylcbiAgICBwcml2YXRlKHNuYXBzaG90KVxuICAgIHJlcXVpcmUoc2hhKHNuYXBzaG90KSA9PSBwcmV2aW91c1snc25hcHNob3Rfc2hhMjU2J10sICdvcmlnaW5hbCBwcm90ZWN0ZWQgc25hcHNob3QgY2hhbmdlZCBkdXJpbmcgZHJpbGwnKVxuICAgIHJldHVybiB7J2FsbF9jaGVja3NfcGFzcyc6IFRydWUsICdvZmZsaW5lX3ZvbHVtZSc6IFZPTFVNRSwgJ29mZmxpbmVfcmVhZG9ubHknOiBjaGVja2VkLFxuICAgICAgICAgICAgJ29mZmxpbmVfcG9zdF9hZG1pbl9yZWFkb25seSc6IHBvc3RfY2hlY2tlZCwgJ29yaWdpbmFsX3NuYXBzaG90X2hhc2hfdW5jaGFuZ2VkJzogVHJ1ZSxcbiAgICAgICAgICAgICdjcmVhdGVkX3ZvbHVtZV9pZGVudGl0eSc6IGlkZW50aXR5LFxuICAgICAgICAgICAgJ2FkbWluX2NvdW50cyc6IGFkbWluX2NvdW50cywgJ25ldHdvcmsnOiAnbm9uZScsICdydW50aW1lX3Rva2Vuc19vcl9jb25maWdfbW91bnRlZCc6IEZhbHNlLFxuICAgICAgICAgICAgJ3NlcnZpY2VfZW50cnlwb2ludF9zdGFydGVkJzogRmFsc2UsICdvcmlnaW5hbF9zbmFwc2hvdF9yZXRhaW5lZCc6IFRydWV9XG5cblxuZGVmIGNsZWFudXBfb2ZmbGluZShqb3VybmFsKTpcbiAgICBpbnNwZWN0ZWQgPSBkb2NrZXIoWyd2b2x1bWUnLCAnaW5zcGVjdCcsIFZPTFVNRV0pXG4gICAgcmVxdWlyZShpbnNwZWN0ZWQucmV0dXJuY29kZSA9PSAwLCAnb3duZWQgZGlzcG9zYWJsZSB2b2x1bWUgaWRlbnRpdHkgdW52ZXJpZmllZCcpXG4gICAgdmFsdWUgPSBqc29uLmxvYWRzKGluc3BlY3RlZC5zdGRvdXQpXG4gICAgZXhwZWN0ZWQgPSBqb3VybmFsLmRhdGFbJ3BoYXNlcyddWydvZmZsaW5lLXZlcmlmeSddWydyZXN1bHQnXVsnY3JlYXRlZF92b2x1bWVfaWRlbnRpdHknXVxuICAgIHJlcXVpcmUobGVuKHZhbHVlKSA9PSAxIGFuZCB7a2V5OiB2YWx1ZVswXS5nZXQoa2V5KSBmb3Iga2V5IGluIGV4cGVjdGVkfSA9PSBleHBlY3RlZFxuICAgICAgICAgICAgYW5kIG5vdCB2YWx1ZVswXS5nZXQoJ09wdGlvbnMnKSwgJ3ZvbHVtZSBvd25lcnNoaXAvcmVjcmVhdGlvbiBjaGFuZ2VkJylcbiAgICByZW1vdmVkID0gZG9ja2VyKFsndm9sdW1lJywgJ3JtJywgVk9MVU1FXSlcbiAgICByZXF1aXJlKHJlbW92ZWQucmV0dXJuY29kZSA9PSAwIGFuZCByZW1vdmVkLnN0ZG91dC5zdHJpcCgpID09IFZPTFVNRVxuICAgICAgICAgICAgYW5kIGRvY2tlcihbJ3ZvbHVtZScsICdpbnNwZWN0JywgVk9MVU1FXSkucmV0dXJuY29kZSAhPSAwLFxuICAgICAgICAgICAgJ2NsZWFudXAgb3V0Y29tZSBhbWJpZ3VvdXM7IGRvIG5vdCByZXRyeScpXG4gICAgcmV0dXJuIHsnYWxsX2NoZWNrc19wYXNzJzogVHJ1ZSwgJ29ubHlfZGlzcG9zYWJsZV9vZmZsaW5lX3ZvbHVtZV9yZW1vdmVkJzogVk9MVU1FLFxuICAgICAgICAgICAgJ25hdGl2ZV9hbmRfb2ZmY2x1c3Rlcl9vcmlnaW5hbF9zbmFwc2hvdHNfcmV0YWluZWQnOiBUcnVlfVxuXG5cbmRlZiBtYWluKCk6XG4gICAgcGFyc2VyID0gYXJncGFyc2UuQXJndW1lbnRQYXJzZXIoZGVzY3JpcHRpb249X19kb2NfXylcbiAgICBwYXJzZXIuYWRkX2FyZ3VtZW50KCctLXBoYXNlJywgY2hvaWNlcz1QSEFTRVMsIHJlcXVpcmVkPVRydWUpXG4gICAgcGFyc2VyLmFkZF9hcmd1bWVudCgnLS1yb290LWF1dGhvcml0eS1yZWNlaXB0JywgdHlwZT1QYXRoLCByZXF1aXJlZD1UcnVlKVxuICAgIHBhcnNlci5hZGRfYXJndW1lbnQoJy0tcm9vdC1uYXRpdmUtb3V0Y29tZScsIHR5cGU9UGF0aCwgcmVxdWlyZWQ9VHJ1ZSlcbiAgICBwYXJzZXIuYWRkX2FyZ3VtZW50KCctLXNvdXJjZS1yZXZpc2lvbicsIHJlcXVpcmVkPVRydWUpXG4gICAgYXJncyA9IHBhcnNlci5wYXJzZV9hcmdzKClcbiAgICByZXF1aXJlKGFyZ3Mucm9vdF9hdXRob3JpdHlfcmVjZWlwdCA9PSBQYXRoKCcvdG1wL3NlY3VyaXR5LWluZmQtcHVycG9zZS1yb290LWF1dGhvcml0eS5qc29uJylcbiAgICAgICAgICAgIGFuZCBhcmdzLnJvb3RfbmF0aXZlX291dGNvbWUgPT0gUGF0aCgnL3RtcC9zZWN1cml0eS1pbmZkLXB1cnBvc2UtbmF0aXZlLW91dGNvbWUtbGF0ZXN0Lmpzb24nKSxcbiAgICAgICAgICAgICdmaXhlZCBzdXBlcnZpc2VkIHJlY2VpcHQgcGF0aHMgcmVxdWlyZWQnKVxuICAgIHJlcXVpcmUocmUuZnVsbG1hdGNoKHInWzAtOWEtZl17NDB9JywgYXJncy5zb3VyY2VfcmV2aXNpb24pIGlzIG5vdCBOb25lLCAnZXhhY3Qgc291cmNlIGNvbW1pdCByZXF1aXJlZCcpXG4gICAgIyBWZXJpZnkgYWxsIHByZXBhcmVkIGV4ZWN1dG9yL2lucHV0IGJ5dGVzIGJlZm9yZSByZWFkaW5nIGF1dGhvcml0eSBvciBkaXNwYXRjaGluZy5cbiAgICBwbGFuID0ganNvbi5sb2FkcygoUk9PVCAvICdleGVjdXRpb24tcGxhbi5qc29uJykucmVhZF90ZXh0KCkpXG4gICAgcmVxdWlyZShzZXQocGxhblsnZXhlY3V0b3JfZmlsZXMnXSkgPT0geydhY3R1YXRvci5weScsICdhdXRob3JpdHlfam91cm5hbC5weScsICduYXRpdmVfcHJvZ3JhbS5weScsICdyZWNlaXB0X3NhZmV0eS5weSd9LFxuICAgICAgICAgICAgJ2ZpeGVkIGV4ZWN1dG9yIHNvdXJjZXMgcmVxdWlyZWQnKVxuICAgIHJlcXVpcmUoc2V0KHBsYW5bJ293bmVyX3NvdXJjZV9maWxlcyddKSA9PSB7J2RlcGxveS9saWZlY3ljbGUvYWRtaXNzaW9uLmNhbmRpZGF0ZS5qc29uJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZGVwbG95L2xpZmVjeWNsZS9zZXJ2aWNlLmNhbmRpZGF0ZS5qc29uJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZGVwbG95L2xpZmVjeWNsZS9rdXN0b21pemF0aW9uLnlhbWwnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdkZXBsb3kvbGlmZWN5Y2xlL3JlZ2lzdHJpZXMuY2FuZGlkYXRlLmpzb24nfSxcbiAgICAgICAgICAgICdmaXhlZCBvd25lciBpbWFnZSBzb3VyY2VzIHJlcXVpcmVkJylcbiAgICBmb3IgcmVsYXRpdmUsIGRpZ2VzdCBpbiBwbGFuWydleGVjdXRvcl9maWxlcyddLml0ZW1zKCk6XG4gICAgICAgIHRhcmdldCA9IFJPT1QgLyByZWxhdGl2ZVxuICAgICAgICByZXF1aXJlKG5vdCB0YXJnZXQuaXNfc3ltbGluaygpIGFuZCBzaGEodGFyZ2V0KSA9PSBkaWdlc3QsICdleGVjdXRvciBzb3VyY2UgYnl0ZXMgY2hhbmdlZCcpXG4gICAgZm9yIHJlbGF0aXZlLCBkaWdlc3QgaW4gcGxhblsnY2FzZV9maWxlcyddLml0ZW1zKCk6XG4gICAgICAgIHJlcXVpcmUobm90IFBhdGgocmVsYXRpdmUpLmlzX2Fic29sdXRlKCkgYW5kICcuLicgbm90IGluIFBhdGgocmVsYXRpdmUpLnBhcnRzLFxuICAgICAgICAgICAgICAgICdjYXNlIHNvdXJjZSBwYXRoIGVzY2FwZWQnKVxuICAgICAgICB0YXJnZXQgPSBDQVNFIC8gcmVsYXRpdmVcbiAgICAgICAgcmVxdWlyZShub3QgdGFyZ2V0LmlzX3N5bWxpbmsoKSBhbmQgc2hhKHRhcmdldCkgPT0gZGlnZXN0LCAnY2FzZSBzb3VyY2UgYnl0ZXMgY2hhbmdlZCcpXG4gICAgZm9yIHJlbGF0aXZlLCBkaWdlc3QgaW4gcGxhblsnb3duZXJfc291cmNlX2ZpbGVzJ10uaXRlbXMoKTpcbiAgICAgICAgdGFyZ2V0ID0gT1dORVIgLyByZWxhdGl2ZVxuICAgICAgICByZXF1aXJlKG5vdCB0YXJnZXQuaXNfc3ltbGluaygpIGFuZCBzaGEodGFyZ2V0KSA9PSBkaWdlc3QsICdvd25lciBpbWFnZS1vbmx5IHNvdXJjZSBjaGFuZ2VkJylcbiAgICAgICAgY29tbWl0dGVkID0gc3VicHJvY2Vzcy5ydW4oWydnaXQnLCAnLUMnLCBzdHIoT1dORVIpLCAnc2hvdycsIGFyZ3Muc291cmNlX3JldmlzaW9uICsgJzonICsgcmVsYXRpdmVdLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXB0dXJlX291dHB1dD1UcnVlKVxuICAgICAgICByZXF1aXJlKGNvbW1pdHRlZC5yZXR1cm5jb2RlID09IDAgYW5kIGhhc2hsaWIuc2hhMjU2KGNvbW1pdHRlZC5zdGRvdXQpLmhleGRpZ2VzdCgpID09IGRpZ2VzdCxcbiAgICAgICAgICAgICAgICAnY29tbWl0dGVkIG93bmVyIHJlbmRlciBzb3VyY2UgZGlmZmVycyBmcm9tIGFwcHJvdmVkIGlucHV0cycpXG4gICAgaGVhZCA9IHJ1bihbJ2dpdCcsICctQycsIHN0cihPV05FUiksICdyZXYtcGFyc2UnLCAnSEVBRCddKVxuICAgIHJlcXVpcmUoaGVhZC5yZXR1cm5jb2RlID09IDAgYW5kIGhlYWQuc3Rkb3V0LnN0cmlwKCkgPT0gYXJncy5zb3VyY2VfcmV2aXNpb24sICdvd25lciBzb3VyY2UgSEVBRCBkaWZmZXJzJylcbiAgICBmcm9tIGF1dGhvcml0eV9qb3VybmFsIGltcG9ydCBKb3VybmFsLCBhdXRob3JpdHksIG9yaWdpbmFsX2FuY2hvclxuICAgIHByaXZhdGUoYXJncy5yb290X2F1dGhvcml0eV9yZWNlaXB0KVxuICAgIHByaXZhdGUoYXJncy5yb290X25hdGl2ZV9vdXRjb21lKVxuICAgIHJlY2VpcHQgPSBqc29uLmxvYWRzKGFyZ3Mucm9vdF9hdXRob3JpdHlfcmVjZWlwdC5yZWFkX3RleHQoKSlcbiAgICByZXF1aXJlKHJlY2VpcHQuZ2V0KCduYXRpdmVfb3V0Y29tZV9zaGEyNTYnKSA9PSBzaGEoYXJncy5yb290X25hdGl2ZV9vdXRjb21lKSwgJ25hdGl2ZSBvdXRjb21lIGJ5dGVzIGNoYW5nZWQnKVxuICAgIHJlcXVpcmUocmVjZWlwdC5nZXQoJ2V4ZWN1dG9yX3BsYW5fc2hhMjU2JykgPT0gc2hhKFJPT1QgLyAnZXhlY3V0aW9uLXBsYW4uanNvbicpLFxuICAgICAgICAgICAgJ3Jvb3QgdmVyaWZpZWQgZXhlY3V0b3IgcGxhbiBkaWZmZXJzJylcbiAgICBhcHByb3ZlZCA9IGF1dGhvcml0eShyZWNlaXB0LCBqc29uLmxvYWRzKGFyZ3Mucm9vdF9uYXRpdmVfb3V0Y29tZS5yZWFkX3RleHQoKSksIHNoYShDQVNFIC8gJ21lbW8uanNvbicpLFxuICAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3Muc291cmNlX3JldmlzaW9uLCBhcmdzLnBoYXNlKVxuICAgIHBhcmVudCA9IENVU1RPRFkucGFyZW50XG4gICAgcHJpdmF0ZShwYXJlbnQsIGRpcmVjdG9yeT1UcnVlKVxuICAgIGlnbm9yZWQgPSBydW4oWydnaXQnLCAnLUMnLCBzdHIoQ1VTVE9ESUFOKSwgJ2NoZWNrLWlnbm9yZScsICctLW5vLWluZGV4Jywgc3RyKENVU1RPRFkgLyAnZHJpbGwuc3FsaXRlJyldKVxuICAgIHJlcXVpcmUoaWdub3JlZC5yZXR1cm5jb2RlID09IDAsICdvZmZjbHVzdGVyIGN1c3RvZHkgaXMgbm90IGlnbm9yZWQnKVxuICAgIHJlcXVpcmUoQ1VTVE9EWS5leGlzdHMoKSwgJ29yaWdpbmFsIHByb3RlY3RlZCBjdXN0b2R5IG11c3QgYWxyZWFkeSBleGlzdCcpXG4gICAgcHJpdmF0ZShDVVNUT0RZLCBkaXJlY3Rvcnk9VHJ1ZSlcbiAgICBjYXBhY2l0eSA9IG9zLnN0YXR2ZnMoQ1VTVE9EWSlcbiAgICByZXF1aXJlKGNhcGFjaXR5LmZfYmF2YWlsICogY2FwYWNpdHkuZl9mcnNpemUgPj0gMiAqIE1BWF9CWVRFUyArIDE2ICogMTAyNCoqMixcbiAgICAgICAgICAgICdpbmRlcGVuZGVudCBwcm90ZWN0ZWQgY3VzdG9keSBoZWFkcm9vbSBpbnN1ZmZpY2llbnQnKVxuICAgIG9zLm1ha2VkaXJzKENVU1RPRFkgLyAnZW1wdHktZG9ja2VyLWNvbmZpZycsIG1vZGU9MG83MDAsIGV4aXN0X29rPVRydWUpXG4gICAgcHJpdmF0ZShDVVNUT0RZIC8gJ2VtcHR5LWRvY2tlci1jb25maWcnLCBkaXJlY3Rvcnk9VHJ1ZSlcbiAgICByZXF1aXJlKG5vdCBsaXN0KChDVVNUT0RZIC8gJ2VtcHR5LWRvY2tlci1jb25maWcnKS5pdGVyZGlyKCkpLCAncHVibGljIERvY2tlciByZWFkIGNvbmZpZyBtdXN0IHN0YXkgZW1wdHknKVxuICAgIGFuY2hvciA9IG9yaWdpbmFsX2FuY2hvcihDVVNUT0RZLCBwbGFuWydyZWNvdmVyeSddWydvcmlnaW5hbF9hbmNob3InXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAganNvbi5sb2FkcygoQ0FTRSAvICdvcmlnaW5hbC1hcHByb3ZlZC1kcmlsbC1iYWNrdXAuanNvbicpLnJlYWRfdGV4dCgpKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhblsncmVjb3ZlcnknXVsnb3JpZ2luYWxfaWRlbnRpdHknXSlcbiAgICBpZiBhcmdzLnBoYXNlID09ICdkcmlsbC1jb3B5LXJlc2N1ZS1yMSc6XG4gICAgICAgIHJlcXVpcmUobm90IG9zLnBhdGgubGV4aXN0cyhDVVNUT0RZIC8gJ2RyaWxsLnNxbGl0ZScpXG4gICAgICAgICAgICAgICAgYW5kIG5vdCBvcy5wYXRoLmxleGlzdHMoQ1VTVE9EWSAvICdjdXRvdmVyLnNxbGl0ZScpLCAncmVzY3VlIGRlc3RpbmF0aW9uIG11c3QgYmUgYWJzZW50JylcbiAgICAgICAgaWRlbnRpdHkgPSBkb2NrZXIoWydpbmZvJywgJy0tZm9ybWF0JywgJ3t7anNvbiAuTmFtZX19J10pXG4gICAgICAgIHJlcXVpcmUoaWRlbnRpdHkucmV0dXJuY29kZSA9PSAwIGFuZCBqc29uLmxvYWRzKGlkZW50aXR5LnN0ZG91dCkgPT0gJ2JudC1sYXAwMDEnLFxuICAgICAgICAgICAgICAgICdsb2NhbCBlbmdpbmUgaWRlbnRpdHkgY2hhbmdlZCcpXG4gICAgICAgIGxpc3RlZCA9IGRvY2tlcihbJ3ZvbHVtZScsICdscycsICctLWZvcm1hdCcsICd7ey5OYW1lfX0nXSlcbiAgICAgICAgcmVxdWlyZShsaXN0ZWQucmV0dXJuY29kZSA9PSAwIGFuZCBWT0xVTUUgbm90IGluIGxpc3RlZC5zdGRvdXQuc3BsaXRsaW5lcygpLFxuICAgICAgICAgICAgICAgICdleGlzdGluZyByZXN0b3JlIHZvbHVtZSBmb3JiaWRzIHJlc2N1ZScpXG4gICAgam91cm5hbCA9IEpvdXJuYWwoQ1VTVE9EWSwgeydwcm9wb3NhbCc6IHBsYW5bJ3Byb3Bvc2FsX2lkJ10sICdzb3VyY2VfcmV2aXNpb24nOiBhcmdzLnNvdXJjZV9yZXZpc2lvbixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbWVtb19zaGEyNTYnOiBzaGEoQ0FTRSAvICdtZW1vLmpzb24nKSwgJ3BsYW5fc2hhMjU2Jzogc2hhKFJPT1QgLyAnZXhlY3V0aW9uLXBsYW4uanNvbicpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdyZWNvdmVyeV9hbmNob3InOiBhbmNob3J9KVxuICAgIHRyeTpcbiAgICAgICAgam91cm5hbC5zdGFydChhcmdzLnBoYXNlLCBhcHByb3ZlZCkgIyBmc3luY2VkIFJVTk5JTkcgYmVmb3JlIGFueSBwaGFzZSBlZmZlY3QuXG4gICAgICAgIGlmIGFyZ3MucGhhc2UgaW4gKCdkcmlsbC1jb3B5LXJlc2N1ZS1yMScsICdjdXRvdmVyLWNvcHknKTpcbiAgICAgICAgICAgIHJlc3VsdCA9IGNvcHlfc25hcHNob3QoYXJncy5waGFzZSwgYXJncy5zb3VyY2VfcmV2aXNpb24sIGFwcHJvdmVkLCBqb3VybmFsKVxuICAgICAgICBlbGlmIGFyZ3MucGhhc2UgPT0gJ29mZmxpbmUtdmVyaWZ5JzpcbiAgICAgICAgICAgIHJlc3VsdCA9IG9mZmxpbmVfdmVyaWZ5KGpvdXJuYWwpXG4gICAgICAgIGVsaWYgYXJncy5waGFzZSA9PSAnY2xlYW51cC1vZmZsaW5lJzpcbiAgICAgICAgICAgIHJlc3VsdCA9IGNsZWFudXBfb2ZmbGluZShqb3VybmFsKVxuICAgICAgICBlbHNlOlxuICAgICAgICAgICAgcmVzdWx0ID0gcmVtb3RlKGFyZ3MucGhhc2UsIGFyZ3Muc291cmNlX3JldmlzaW9uLCBhcHByb3ZlZClcbiAgICAgICAgcmVxdWlyZShvcmlnaW5hbF9hbmNob3IoQ1VTVE9EWSwgcGxhblsncmVjb3ZlcnknXVsnb3JpZ2luYWxfYW5jaG9yJ10sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGpzb24ubG9hZHMoKENBU0UgLyAnb3JpZ2luYWwtYXBwcm92ZWQtZHJpbGwtYmFja3VwLmpzb24nKS5yZWFkX3RleHQoKSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYW5bJ3JlY292ZXJ5J11bJ29yaWdpbmFsX2lkZW50aXR5J10pID09IGFuY2hvcixcbiAgICAgICAgICAgICAgICAnb3JpZ2luYWwgZmFpbGVkIGpvdXJuYWwgY2hhbmdlZCBkdXJpbmcgbmV3IHBoYXNlJylcbiAgICAgICAgam91cm5hbC5maW5pc2goYXJncy5waGFzZSwgcmVzdWx0KVxuICAgICAgICBwcmludChqc29uLmR1bXBzKHJlc3VsdCkpICMgT25seSBjb3VudC9oYXNoL2lkZW50aXR5IHJlY2VpcHRzLCBuZXZlciBzbmFwc2hvdCBieXRlcy5cbiAgICBleGNlcHQgQmFzZUV4Y2VwdGlvbiBhcyBlcnJvcjpcbiAgICAgICAgc2FmZSA9IHsnYWxsX2NoZWNrc19wYXNzJzogRmFsc2UsICdwaGFzZSc6IGFyZ3MucGhhc2UsICdmYWlsdXJlX2NsYXNzJzogdHlwZShlcnJvcikuX19uYW1lX18sXG4gICAgICAgICAgICAgICAgJ2ZhaWx1cmUnOiAnZml4ZWQgcGhhc2Ugb3V0Y29tZSB1bmNlcnRhaW47IG9yaWdpbmFsIGV2aWRlbmNlIHJldGFpbmVkOyBubyByZXRyeScsXG4gICAgICAgICAgICAgICAgJ3Jhd19vdXRwdXRfd2l0aGhlbGQnOiBUcnVlfVxuICAgICAgICBpZiBqb3VybmFsLmRhdGFbJ3BoYXNlcyddLmdldChhcmdzLnBoYXNlLCB7fSkuZ2V0KCdzdGF0ZScpID09ICdSVU5OSU5HJzpcbiAgICAgICAgICAgIGpvdXJuYWwuZmluaXNoKGFyZ3MucGhhc2UsIHNhZmUpXG4gICAgICAgIHByaW50KGpzb24uZHVtcHMoc2FmZSkpXG4gICAgICAgIHJhaXNlIFN5c3RlbUV4aXQoMSkgZnJvbSBOb25lXG4gICAgZmluYWxseTpcbiAgICAgICAgam91cm5hbC5jbG9zZSgpXG5cblxuaWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzpcbiAgICB0cnk6XG4gICAgICAgIG1haW4oKVxuICAgIGV4Y2VwdCBFeGNlcHRpb246XG4gICAgICAgIHJhaXNlIFN5c3RlbUV4aXQoJ3N1cGVydmlzZWQgZXhlY3V0aW9uIHJlZnVzZWQgYmVmb3JlIHBoYXNlOyByYXcgb3V0cHV0IHdpdGhoZWxkJykgZnJvbSBOb25lXG4iCiAgICB9LAogICAgImF1dGhvcml0eV9qb3VybmFsLnB5IjogewogICAgICAic2hhMjU2IjogIjA1MzU5NzVhZTYzMTIxOWY5MGZjZTdlNTJmOGI1NGU2MWU4YWZkNGVmNjhiYjc0NzM4NjM0NzhmMGY1MTlmNjgiLAogICAgICAiY29udGVudCI6ICJcIlwiXCJTdXBlcnZpc2VkIHJlY2VpcHQgYm9va2tlZXBpbmcsIG5vdCBhbiBhdXRoZW50aWNhdGVkIGFwcHJvdmFsIHByb3ZpZGVyLlwiXCJcIlxuaW1wb3J0IGRhdGV0aW1lXG5pbXBvcnQgZmNudGxcbmltcG9ydCBoYXNobGliXG5pbXBvcnQganNvblxuaW1wb3J0IG9zXG5pbXBvcnQgcmVcbmZyb20gcGF0aGxpYiBpbXBvcnQgUGF0aFxuaW1wb3J0IHN0YXRcbmltcG9ydCB1dWlkXG5cbkZPVU5ERVIgPSB7J2tpbmQnOiAncGVyc29uJywgJ3N1Yic6ICd1aWQ9cGxhdGZvcm0tcm9vdCxvdT1wZW9wbGUsZGM9bmV0a2luZ2RvbSxkYz1sb2NhbCd9XG5NRU1PX0lEID0gJ2luZmQtMjAyNjEwMTEtcHVycG9zZS1vdmVybGF5LXIxJ1xuUFJPUE9TQUwgPSAnSU5GRC1XUC0wMDA5LVQwNC9wdXJwb3NlLW92ZXJsYXktdjEnXG5QSEFTRVMgPSAoJ2RyaWxsLWNvcHktcmVzY3VlLXIxJywgJ29mZmxpbmUtdmVyaWZ5JywgJ2NsZWFudXAtb2ZmbGluZScsXG4gICAgICAgICAgJ2N1dG92ZXItYmFja3VwJywgJ2N1dG92ZXItY29weScsICdyZWxlYXNlJywgJ3ZlcmlmeScsICdyb2xsYmFjaycsICdyb2xsYmFjay12ZXJpZnknKVxuXG5cbmRlZiByZXF1aXJlKHZhbHVlLCByZWFzb24pOlxuICAgIGlmIG5vdCB2YWx1ZTpcbiAgICAgICAgcmFpc2UgVmFsdWVFcnJvcihyZWFzb24pXG5cblxuZGVmIHNoYShwYXRoKTpcbiAgICBkaWdlc3QgPSBoYXNobGliLnNoYTI1NigpXG4gICAgd2l0aCBQYXRoKHBhdGgpLm9wZW4oJ3JiJykgYXMgc3RyZWFtOlxuICAgICAgICBmb3IgYmxvY2sgaW4gaXRlcihsYW1iZGE6IHN0cmVhbS5yZWFkKDEwMjQqKjIpLCBiJycpOlxuICAgICAgICAgICAgZGlnZXN0LnVwZGF0ZShibG9jaylcbiAgICByZXR1cm4gZGlnZXN0LmhleGRpZ2VzdCgpXG5cblxuZGVmIHByaXZhdGUocGF0aCwgZGlyZWN0b3J5PUZhbHNlKTpcbiAgICBpbmZvID0gUGF0aChwYXRoKS5sc3RhdCgpXG4gICAgcmVxdWlyZSgoc3RhdC5TX0lTRElSKGluZm8uc3RfbW9kZSkgaWYgZGlyZWN0b3J5IGVsc2Ugc3RhdC5TX0lTUkVHKGluZm8uc3RfbW9kZSkpXG4gICAgICAgICAgICBhbmQgaW5mby5zdF91aWQgPT0gb3MuZ2V0dWlkKCkgYW5kIHN0YXQuU19JTU9ERShpbmZvLnN0X21vZGUpID09ICgwbzcwMCBpZiBkaXJlY3RvcnkgZWxzZSAwbzYwMClcbiAgICAgICAgICAgIGFuZCAoZGlyZWN0b3J5IG9yIGluZm8uc3RfbmxpbmsgPT0gMSksICdwcml2YXRlIG93bmVkIGN1c3RvZHkgcmVxdWlyZWQnKVxuXG5cbmRlZiBhdXRob3JpdHkocmVjZWlwdCwgb3V0Y29tZSwgbWVtb19zaGEsIHNvdXJjZV9yZXZpc2lvbiwgcGhhc2UsIG5vdz1Ob25lKTpcbiAgICBcIlwiXCJSb290IG11c3QgZnJlc2hseSB2ZXJpZnkgbmF0aXZlIG91dGNvbWUgYXQgZml4ZWQgT1JJR0lOIG91dHNpZGUgdGhpcyBoZWxwZXIuXG5cbiAgICBSZWNlaXB0IGZpbGVzL2ZsYWdzIGFyZSBub3Qgc2lnbmVkIGdyYW50cy4gVGhpcyBmdW5jdGlvbiBjaGVja3MgdGhlIGV4YWN0XG4gICAgc3VwZXJ2aXNlZCByZWNlaXB0IHJlbGF0aW9uOyBleGlzdGluZyBoYXJuZXNzL2ZvdW5kZXIgYXV0aG9yaXR5IHJlbWFpbnMgdGhlXG4gICAgYWN0dWFsIHBlcm1pc3Npb24gYm91bmRhcnkuIEl0IG5ldmVyIGF1dGhlbnRpY2F0ZXMgYSBjYWxsZXIgYXMgaHVtYW4uXG4gICAgXCJcIlwiXG4gICAgbm93ID0gbm93IG9yIGRhdGV0aW1lLmRhdGV0aW1lLm5vdyhkYXRldGltZS50aW1lem9uZS51dGMpXG4gICAgcmVxdWlyZShwaGFzZSBpbiBQSEFTRVMsICdmaXhlZCBwaGFzZSByZXF1aXJlZCcpXG4gICAgcmVxdWlyZShyZWNlaXB0LmdldCgncHJvcG9zYWxfaWQnKSA9PSBQUk9QT1NBTCBhbmQgcmVjZWlwdC5nZXQoJ21lbW9faWQnKSA9PSBNRU1PX0lEXG4gICAgICAgICAgICBhbmQgcmVjZWlwdC5nZXQoJ21lbW9fdmVyc2lvbicpID09IDIgYW5kIHJlY2VpcHQuZ2V0KCdtZW1vX3NoYTI1NicpID09IG1lbW9fc2hhXG4gICAgICAgICAgICBhbmQgcmVjZWlwdC5nZXQoJ3NvdXJjZV9yZXZpc2lvbicpID09IHNvdXJjZV9yZXZpc2lvblxuICAgICAgICAgICAgYW5kIHJlY2VpcHQuZ2V0KCdhY3RpdmF0aW9uJykgPT0gJ0FQUFJPVkVEJ1xuICAgICAgICAgICAgYW5kIHJlY2VpcHQuZ2V0KCdhdXRob3JpdHlfbW9kZScpID09ICdBRE1JTklTVEVSJ1xuICAgICAgICAgICAgYW5kIHJlY2VpcHQuZ2V0KCd0YXJnZXQnKSA9PSAncmVhbG06a3ViZXJuZXRlcy9yYWlsaWFuY2UwMS9pbmZvcm1lZC1kZWNpc2lvbidcbiAgICAgICAgICAgIGFuZCByZWNlaXB0LmdldCgndmVyaWZpY2F0aW9uX21ldGhvZCcpID09ICdyb290LWZpeGVkLW9yaWdpbi1uYXRpdmUtcmVhZGJhY2snXG4gICAgICAgICAgICBhbmQgcmVjZWlwdC5nZXQoJ3J1bnRpbWVfYXV0aGVudGljYXRlZF9ncmFudCcpIGlzIEZhbHNlXG4gICAgICAgICAgICBhbmQgcmVjZWlwdC5nZXQoJ291dGNvbWVfcXVlcnknKSA9PSAnL2xpZmVjeWNsZS9tZW1vcy9pbmZkLTIwMjYxMDExLXB1cnBvc2Utb3ZlcmxheS1yMS9vdXRjb21lcz92ZXJzaW9uPTInLFxuICAgICAgICAgICAgJ2V4YWN0IGV4dGVybmFsbHkgdmVyaWZpZWQgc3VwZXJ2aXNlZCByZWNlaXB0IHJlcXVpcmVkJylcbiAgICB2ZXJpZmllZCA9IGRhdGV0aW1lLmRhdGV0aW1lLmZyb21pc29mb3JtYXQocmVjZWlwdFsndmVyaWZpZWRfYXQnXS5yZXBsYWNlKCdaJywgJyswMDowMCcpKVxuICAgIHJlcXVpcmUodmVyaWZpZWQudHppbmZvIGlzIG5vdCBOb25lIGFuZCAwIDw9IChub3cgLSB2ZXJpZmllZCkudG90YWxfc2Vjb25kcygpIDw9IDEyMCxcbiAgICAgICAgICAgICdmcmVzaCByb290IG5hdGl2ZSByZWFkYmFjayByZXF1aXJlZCBiZWZvcmUgZXZlcnkgcGhhc2UnKVxuICAgIGRlYWRsaW5lID0gZGF0ZXRpbWUuZGF0ZXRpbWUuZnJvbWlzb2Zvcm1hdCgnMjAyNi0xMC0xMlQyMzo1OTo1OSswMDowMCcpXG4gICAgcmVxdWlyZShub3cgPCBkZWFkbGluZSwgJ2FwcHJvdmVkIGV4ZWN1dGlvbiB3aW5kb3cgZXhwaXJlZCcpXG4gICAgcmVxdWlyZShvdXRjb21lLmdldCgnbWVtb19pZCcpID09IE1FTU9fSUQgYW5kIG91dGNvbWUuZ2V0KCdyZXZpZXcnLCB7fSkuZ2V0KCdzdGFsZScpIGlzIEZhbHNlXG4gICAgICAgICAgICBhbmQgb3V0Y29tZVsncmV2aWV3J10uZ2V0KCdpbnRha2Vfc3RhdGUnKSA9PSAncmVhZHknLCAnbmF0aXZlIHJldmlldyBpcyBub3QgcmVhZHkvY3VycmVudCcpXG4gICAgcmV2aWV3X2lkID0gb3V0Y29tZVsncmV2aWV3J11bJ21lbW9faWQnXVxuICAgIHJlcXVpcmUocmV2aWV3X2lkID09IHJlY2VpcHQuZ2V0KCdyZXZpZXdfbWVtb19pZCcpLCAnbmF0aXZlIHJldmlldyBpZGVudGl0eSBjaGFuZ2VkJylcbiAgICBhY2NlcHRlZCA9IFt4IGZvciB4IGluIG91dGNvbWUuZ2V0KCdkaXNwb3NpdGlvbnMnLCBbXSlcbiAgICAgICAgICAgICAgICBpZiB4LmdldCgnc3VibWlzc2lvbl9zdGF0ZScpID09ICdjb25maXJtZWQnXG4gICAgICAgICAgICAgICAgYW5kIHguZ2V0KCdkaXNwb3NpdGlvbicsIHt9KS5nZXQoJ3ZlcmInKSA9PSAnYWNjZXB0J1xuICAgICAgICAgICAgICAgIGFuZCB4WydkaXNwb3NpdGlvbiddLmdldCgnbWVtb192ZXJzaW9uJykgPT0gMV1cbiAgICByZXF1aXJlKGxlbihhY2NlcHRlZCkgPT0gMSwgJ29uZSBjb25maXJtZWQgZm91bmRlciBhY2NlcHRhbmNlIHJlcXVpcmVkJylcbiAgICBhY2NlcHRlZCA9IGFjY2VwdGVkWzBdWydkaXNwb3NpdGlvbiddXG4gICAgcmVxdWlyZShhY2NlcHRlZC5nZXQoJ2FjdG9yJykgPT0gRk9VTkRFUiBhbmQgYWNjZXB0ZWQuZ2V0KCdtZW1vX2lkJykgPT0gcmV2aWV3X2lkXG4gICAgICAgICAgICBhbmQgYWNjZXB0ZWQuZ2V0KCdhcHByb3ZhbF9pZCcpID09IHJlY2VpcHQuZ2V0KCdhcHByb3ZhbF9pZCcpXG4gICAgICAgICAgICBhbmQgYWNjZXB0ZWQuZ2V0KCdpZCcpID09IHJlY2VpcHQuZ2V0KCdkaXNwb3NpdGlvbl9pZCcpXG4gICAgICAgICAgICBhbmQgYWNjZXB0ZWQuZ2V0KCdhdCcpID09IHJlY2VpcHQuZ2V0KCdhY2NlcHRlZF9hdCcpLCAnZXhhY3QgZm91bmRlciBkaXNwb3NpdGlvbiBtaXNtYXRjaCcpXG4gICAgcmVxdWlyZShyZS5mdWxsbWF0Y2gocidbYS1mMC05LV17MzZ9JywgYWNjZXB0ZWRbJ2FwcHJvdmFsX2lkJ10pIGlzIG5vdCBOb25lXG4gICAgICAgICAgICBhbmQgcmUuZnVsbG1hdGNoKHInZGlzcC1bYS1mMC05LV17MzZ9JywgYWNjZXB0ZWRbJ2lkJ10pIGlzIG5vdCBOb25lXG4gICAgICAgICAgICBhbmQgcmUuZnVsbG1hdGNoKHIncmV2aWV3LVthLWYwLTktXXszNn0nLCByZXZpZXdfaWQpIGlzIG5vdCBOb25lLFxuICAgICAgICAgICAgJ25hdGl2ZSBkaXNwb3NpdGlvbiBpZGVudGlmaWVycyBhcmUgbWFsZm9ybWVkJylcbiAgICBhY2NlcHRlZF9hdCA9IGRhdGV0aW1lLmRhdGV0aW1lLmZyb21pc29mb3JtYXQoYWNjZXB0ZWRbJ2F0J10ucmVwbGFjZSgnWicsICcrMDA6MDAnKSlcbiAgICByZXF1aXJlKGFjY2VwdGVkX2F0LnR6aW5mbyBpcyBub3QgTm9uZSBhbmQgYWNjZXB0ZWRfYXQgPD0gdmVyaWZpZWQsICdhY2NlcHRhbmNlIHRpbWUgbm90IGJvdW5kZWQnKVxuICAgIHJldHVybiB7a2V5OiByZWNlaXB0W2tleV0gZm9yIGtleSBpbiAoJ2FwcHJvdmFsX2lkJywgJ2Rpc3Bvc2l0aW9uX2lkJywgJ2FjY2VwdGVkX2F0JywgJ3ZlcmlmaWVkX2F0Jyl9XG5cblxuZGVmIG9yaWdpbmFsX2FuY2hvcihwYXJlbnQsIGV4cGVjdGVkLCBiYWNrdXBfcmVzdWx0LCBvcmlnaW5hbF9pZGVudGl0eSk6XG4gICAgXCJcIlwiUmVhZCBvbmx5IHNhbml0aXplZCBvcmlnaW5hbCBqb3VybmFsOyBuZXZlciByZXdyaXRlL3N5bnRoZXNpemUgaXRzIHBoYXNlcy5cIlwiXCJcbiAgICBwYXRoID0gUGF0aChwYXJlbnQpIC8gJ2V4ZWN1dGlvbi1qb3VybmFsLmpzb24nXG4gICAgcHJpdmF0ZShwYXRoKVxuICAgIHJlcXVpcmUoc2hhKHBhdGgpID09IGV4cGVjdGVkWydvcmlnaW5hbF9qb3VybmFsX3NoYTI1NiddLCAnb3JpZ2luYWwgam91cm5hbCBieXRlcyBjaGFuZ2VkJylcbiAgICBvcmlnaW5hbCA9IGpzb24ubG9hZHMocGF0aC5yZWFkX3RleHQoKSlcbiAgICByZXF1aXJlKG9yaWdpbmFsLmdldCgnaWRlbnRpdHknKSA9PSBvcmlnaW5hbF9pZGVudGl0eSwgJ29yaWdpbmFsIGFwcHJvdmVkIGlkZW50aXR5IGNoYW5nZWQnKVxuICAgIHBoYXNlcyA9IG9yaWdpbmFsLmdldCgncGhhc2VzJywge30pXG4gICAgcmVxdWlyZShzZXQocGhhc2VzKSA9PSB7J2RyaWxsLWJhY2t1cCcsICdkcmlsbC1jb3B5J30sICd1bmV4cGVjdGVkIG9yaWdpbmFsIGFjdGlvbiBvciByb2xsb3V0JylcbiAgICBmb3IgbmFtZSwgZmllbGRzIGluIGV4cGVjdGVkWydwaGFzZV9tZXRhZGF0YSddLml0ZW1zKCk6XG4gICAgICAgIHJlcXVpcmUoYWxsKHBoYXNlc1tuYW1lXS5nZXQoa2V5KSA9PSB2YWx1ZSBmb3Iga2V5LHZhbHVlIGluIGZpZWxkcy5pdGVtcygpKSxcbiAgICAgICAgICAgICAgICAnb3JpZ2luYWwgZmFpbGVkL2NvbXBsZXRlZCBhdHRlbXB0IGlkZW50aXR5IGNoYW5nZWQnKVxuICAgIHJlcXVpcmUocGhhc2VzWydkcmlsbC1iYWNrdXAnXS5nZXQoJ3Jlc3VsdCcpID09IGJhY2t1cF9yZXN1bHRcbiAgICAgICAgICAgIGFuZCBiYWNrdXBfcmVzdWx0LmdldCgnYWxsX2NoZWNrc19wYXNzJykgaXMgVHJ1ZVxuICAgICAgICAgICAgYW5kIHBoYXNlc1snZHJpbGwtY29weSddLmdldCgncmVzdWx0Jywge30pLmdldCgnYWxsX2NoZWNrc19wYXNzJykgaXMgRmFsc2UsXG4gICAgICAgICAgICAnb3JpZ2luYWwgYmFja3VwL2NvcHkgb3V0Y29tZSBjaGFuZ2VkJylcbiAgICByZXF1aXJlKGJhY2t1cF9yZXN1bHQuZ2V0KCdzbmFwc2hvdF9zaGEyNTYnKSA9PSBleHBlY3RlZFsnc25hcHNob3Rfc2hhMjU2J11cbiAgICAgICAgICAgIGFuZCBiYWNrdXBfcmVzdWx0LmdldCgnc25hcHNob3RfYnl0ZXMnKSA9PSBleHBlY3RlZFsnc25hcHNob3RfYnl0ZXMnXVxuICAgICAgICAgICAgYW5kIGJhY2t1cF9yZXN1bHQuZ2V0KCdwb2RfdWlkJykgPT0gJ2U4NTYxYWUwLTRiMDktNDQ1NS05MjRkLTY0YzI3YjYyNWZjNycsXG4gICAgICAgICAgICAnb3JpZ2luYWwgZnJvemVuIHNuYXBzaG90IGlkZW50aXR5IGNoYW5nZWQnKVxuICAgIHJlcXVpcmUoc2hhKHBhdGgpID09IGV4cGVjdGVkWydvcmlnaW5hbF9qb3VybmFsX3NoYTI1NiddLCAnb3JpZ2luYWwgam91cm5hbCBjaGFuZ2VkIGR1cmluZyByZWFkJylcbiAgICByZXR1cm4geydvcmlnaW5hbF9qb3VybmFsX3NoYTI1Nic6IGV4cGVjdGVkWydvcmlnaW5hbF9qb3VybmFsX3NoYTI1NiddLFxuICAgICAgICAgICAgJ29yaWdpbmFsX2NvcHlfYXR0ZW1wdF9pZCc6IHBoYXNlc1snZHJpbGwtY29weSddWydhdHRlbXB0X2lkJ10sXG4gICAgICAgICAgICAnb3JpZ2luYWxfYmFja3VwX2F0dGVtcHRfaWQnOiBwaGFzZXNbJ2RyaWxsLWJhY2t1cCddWydhdHRlbXB0X2lkJ10sXG4gICAgICAgICAgICAnYmFja3VwX3Jlc3VsdCc6IGJhY2t1cF9yZXN1bHQsICdvbGRfdW5jZXJ0YWluX3BoYXNlX3JldGFpbmVkJzogVHJ1ZX1cblxuXG5jbGFzcyBKb3VybmFsOlxuICAgIGRlZiBfX2luaXRfXyhzZWxmLCBwYXJlbnQsIGlkZW50aXR5KTpcbiAgICAgICAgc2VsZi5wYXJlbnQgPSBQYXRoKHBhcmVudClcbiAgICAgICAgcHJpdmF0ZShzZWxmLnBhcmVudCwgZGlyZWN0b3J5PVRydWUpXG4gICAgICAgIHNlbGYucGF0aCA9IHNlbGYucGFyZW50IC8gJ3Jlc2N1ZS1leGVjdXRpb24tam91cm5hbC1yMS5qc29uJ1xuICAgICAgICBzZWxmLmxvY2sgPSBvcy5vcGVuKHNlbGYucGFyZW50IC8gJ3Jlc2N1ZS1leGVjdXRpb24tcjEubG9jaycsIG9zLk9fQ1JFQVQgfCBvcy5PX05PRk9MTE9XIHwgb3MuT19SRFdSLCAwbzYwMClcbiAgICAgICAgZmNudGwuZmxvY2soc2VsZi5sb2NrLCBmY250bC5MT0NLX0VYIHwgZmNudGwuTE9DS19OQilcbiAgICAgICAgcHJpdmF0ZShzZWxmLnBhcmVudCAvICdyZXNjdWUtZXhlY3V0aW9uLXIxLmxvY2snKVxuICAgICAgICBpZiBzZWxmLnBhdGguZXhpc3RzKCk6XG4gICAgICAgICAgICBwcml2YXRlKHNlbGYucGF0aClcbiAgICAgICAgICAgIHNlbGYuZGF0YSA9IGpzb24ubG9hZHMoc2VsZi5wYXRoLnJlYWRfdGV4dCgpKVxuICAgICAgICAgICAgcmVxdWlyZShzZWxmLmRhdGFbJ2lkZW50aXR5J10gPT0gaWRlbnRpdHksICdqb3VybmFsIGNhc2Uvc291cmNlIGlkZW50aXR5IGNoYW5nZWQnKVxuICAgICAgICBlbHNlOlxuICAgICAgICAgICAgc2VsZi5kYXRhID0geydpZGVudGl0eSc6IGlkZW50aXR5LCAncGhhc2VzJzoge319XG4gICAgICAgICAgICBzZWxmLnNhdmUoKVxuXG4gICAgZGVmIHNhdmUoc2VsZik6XG4gICAgICAgIHRlbXBvcmFyeSA9IHNlbGYucGFyZW50IC8gJ2V4ZWN1dGlvbi1qb3VybmFsLm5ldydcbiAgICAgICAgZmQgPSBvcy5vcGVuKHRlbXBvcmFyeSwgb3MuT19DUkVBVCB8IG9zLk9fRVhDTCB8IG9zLk9fTk9GT0xMT1cgfCBvcy5PX1dST05MWSwgMG82MDApXG4gICAgICAgIHRyeTpcbiAgICAgICAgICAgIHdpdGggb3MuZmRvcGVuKGZkLCAndycpIGFzIHN0cmVhbTpcbiAgICAgICAgICAgICAgICBqc29uLmR1bXAoc2VsZi5kYXRhLCBzdHJlYW0sIGluZGVudD0yKVxuICAgICAgICAgICAgICAgIHN0cmVhbS53cml0ZSgnXFxuJylcbiAgICAgICAgICAgICAgICBzdHJlYW0uZmx1c2goKVxuICAgICAgICAgICAgICAgIG9zLmZzeW5jKHN0cmVhbS5maWxlbm8oKSlcbiAgICAgICAgICAgIG9zLnJlcGxhY2UodGVtcG9yYXJ5LCBzZWxmLnBhdGgpXG4gICAgICAgICAgICBkaXJlY3RvcnkgPSBvcy5vcGVuKHNlbGYucGFyZW50LCBvcy5PX0RJUkVDVE9SWSB8IG9zLk9fUkRPTkxZKVxuICAgICAgICAgICAgdHJ5OlxuICAgICAgICAgICAgICAgIG9zLmZzeW5jKGRpcmVjdG9yeSlcbiAgICAgICAgICAgIGZpbmFsbHk6XG4gICAgICAgICAgICAgICAgb3MuY2xvc2UoZGlyZWN0b3J5KVxuICAgICAgICBleGNlcHQgQmFzZUV4Y2VwdGlvbjpcbiAgICAgICAgICAgICMgUmV0YWluIGV2aWRlbmNlIHJhdGhlciB0aGFuIG92ZXJ3cml0aW5nIGFuIHVuY2VydGFpbiBkdXJhYmxlIGludGVudC5cbiAgICAgICAgICAgIHJhaXNlXG5cbiAgICBkZWYgc3RhcnQoc2VsZiwgcGhhc2UsIGFwcHJvdmFsKTpcbiAgICAgICAgcmVxdWlyZShwaGFzZSBub3QgaW4gc2VsZi5kYXRhWydwaGFzZXMnXSwgJ2FscmVhZHkgYXR0ZW1wdGVkIHBoYXNlOyBubyByZXRyeScpXG4gICAgICAgIHJlcXVpcmUocGhhc2UgaW4gUEhBU0VTLCAnZml4ZWQgcmVzY3VlIG9yIHJlbWFpbmluZyBwaGFzZSByZXF1aXJlZCcpXG4gICAgICAgIHByZWRlY2Vzc29ycyA9IGRpY3QoemlwKFBIQVNFU1sxOjddLCBQSEFTRVNbOjZdKSlcbiAgICAgICAgcHJlZGVjZXNzb3JzWydyb2xsYmFjay12ZXJpZnknXSA9ICdyb2xsYmFjaydcbiAgICAgICAgaWYgcGhhc2UgaW4gcHJlZGVjZXNzb3JzOlxuICAgICAgICAgICAgcmVxdWlyZShzZWxmLmRhdGFbJ3BoYXNlcyddLmdldChwcmVkZWNlc3NvcnNbcGhhc2VdLCB7fSkuZ2V0KCdzdGF0ZScpID09ICdDT01QTEVURScsXG4gICAgICAgICAgICAgICAgICAgICdwcmVjZWRpbmcgcGhhc2UgaXMgbm90IHZlcmlmaWVkIGNvbXBsZXRlJylcbiAgICAgICAgaWYgcGhhc2UgPT0gJ3JvbGxiYWNrJzpcbiAgICAgICAgICAgIHJlcXVpcmUoJ3JlbGVhc2UnIGluIHNlbGYuZGF0YVsncGhhc2VzJ10sICdyb2xsYmFjayByZXF1aXJlcyBhIHJlY29yZGVkIHJlbGVhc2UgYXR0ZW1wdCcpXG4gICAgICAgIHNlbGYuZGF0YVsncGhhc2VzJ11bcGhhc2VdID0geydzdGF0ZSc6ICdSVU5OSU5HJywgJ2FwcHJvdmFsJzogYXBwcm92YWwsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdhdHRlbXB0X2lkJzogc3RyKHV1aWQudXVpZDQoKSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdzdGFydGVkX2F0JzogZGF0ZXRpbWUuZGF0ZXRpbWUubm93KGRhdGV0aW1lLnRpbWV6b25lLnV0YykuaXNvZm9ybWF0KCl9XG4gICAgICAgIHNlbGYuc2F2ZSgpXG5cbiAgICBkZWYgbm90ZShzZWxmLCBwaGFzZSwga2V5LCB2YWx1ZSk6XG4gICAgICAgIHJlcXVpcmUoc2VsZi5kYXRhWydwaGFzZXMnXVtwaGFzZV1bJ3N0YXRlJ10gPT0gJ1JVTk5JTkcnLCAncGhhc2UgaW50ZW50IG1pc3NpbmcnKVxuICAgICAgICBzZWxmLmRhdGFbJ3BoYXNlcyddW3BoYXNlXVtrZXldID0gdmFsdWVcbiAgICAgICAgc2VsZi5zYXZlKClcblxuICAgIGRlZiBmaW5pc2goc2VsZiwgcGhhc2UsIHJlc3VsdCk6XG4gICAgICAgIGVudHJ5ID0gc2VsZi5kYXRhWydwaGFzZXMnXVtwaGFzZV1cbiAgICAgICAgcmVxdWlyZShlbnRyeVsnc3RhdGUnXSA9PSAnUlVOTklORycsICdwaGFzZSBpbnRlbnQgbWlzc2luZycpXG4gICAgICAgIGVudHJ5WydyZXN1bHQnXSA9IHJlc3VsdFxuICAgICAgICBlbnRyeVsnc3RhdGUnXSA9ICdDT01QTEVURScgaWYgcmVzdWx0LmdldCgnYWxsX2NoZWNrc19wYXNzJykgaXMgVHJ1ZSBlbHNlICdVTkNFUlRBSU4nXG4gICAgICAgIHNlbGYuc2F2ZSgpXG5cbiAgICBkZWYgY2xvc2Uoc2VsZik6XG4gICAgICAgIG9zLmNsb3NlKHNlbGYubG9jaylcbiIKICAgIH0sCiAgICAiZXhlY3V0aW9uLXBsYW4uanNvbiI6IHsKICAgICAgInNoYTI1NiI6ICI5Y2U1NzI4YTU2MWU2ZDM4Zjg0OTcyMDFiYWEyYjg0MGQxMTQ0NGEwYWY4YWQ2MjM0ZGZjMzc0MjgxMTNmMjU4IiwKICAgICAgImNvbnRlbnQiOiAie1xuICBcImtpbmRcIjogXCJpbmZvcm1lZC1kZWNpc2lvbi5zdXBlcnZpc2VkLW1lY2hhbmljYWwtcmVsZWFzZS1wbGFuXCIsXG4gIFwidmVyc2lvblwiOiAyLFxuICBcInByb3Bvc2FsX2lkXCI6IFwiSU5GRC1XUC0wMDA5LVQwNC9wdXJwb3NlLW92ZXJsYXktdjFcIixcbiAgXCJ0cmlhbF9pZFwiOiBcImluZmQtcHVycG9zZS0yMDI2MTAxMS1yMVwiLFxuICBcInN0YXRlXCI6IFwicHJlcGFyZWQtdW5hcHByb3ZlZFwiLFxuICBcImV4ZWN1dG9yX2ZpbGVzXCI6IHtcbiAgICBcImFjdHVhdG9yLnB5XCI6IFwiODZiNjdkMWFiYWQ2YWYyYThjNDk1MjhmZTEyNWE1YmFiOTQ0OTc1ZDNlODAxODI2YzUxMWVlODg4NDY1NzFiMlwiLFxuICAgIFwiYXV0aG9yaXR5X2pvdXJuYWwucHlcIjogXCIwNTM1OTc1YWU2MzEyMTlmOTBmY2U3ZTUyZjhiNTRlNjFlOGFmZDRlZjY4YmI3NDczODYzNDc4ZjBmNTE5ZjY4XCIsXG4gICAgXCJuYXRpdmVfcHJvZ3JhbS5weVwiOiBcIjc4OGRjOTlmN2VkZmJmZDU0MmEzYmIwOGZjMzFmNjBjYWY0ZjhmZDVkNjU0YTZhOTFiNDVlMTk3ZWNmZjlmOTFcIixcbiAgICBcInJlY2VpcHRfc2FmZXR5LnB5XCI6IFwiNWM1NDM3M2YyZGM0YjA2NDAwODIyNWMxODZlZmIxZDVhZmRlZWMzNmQxNTM1MGJkYTBhMTJkZWQ5NzYwMmQxYlwiXG4gIH0sXG4gIFwiY2FzZV9maWxlc1wiOiB7XG4gICAgXCJjaGFuZ2VfZ3VhcmQucHlcIjogXCJmMzQ4ZTQ0OWM0OWY0ZDllNDlhZjllODJlMDE3NjRlNzE5NzgzN2ZkM2RmOWQ3NTZmNTg5MWQ5YjhkOWIzOGJlXCIsXG4gICAgXCJzcWxpdGVfcmVhZG9ubHkucHlcIjogXCI5MDkzYzY0ZjdmMGUzOWIyNDlkYTlmZWZkZjVhYWY0ZTQyNThiYzMxZTdhMjdmZDg4ODQ3OWNlMzI5YTIwNTA5XCIsXG4gICAgXCJwcmVmbGlnaHQtaW5wdXRzLmpzb25cIjogXCIwM2JiNGI0MmZlMWFhNTFiODQ2ZTk1N2E5ZTIzOTI2ZmFlNzJmMDJhMmNiNWUyOTczNjgwNDdmYjI1YzE3ZTliXCIsXG4gICAgXCJzZWFsZWQtbGl2ZS1kZXBsb3ltZW50Lmpzb25cIjogXCJkMThkMjcwNjNkMDZmNTM1YWU4ODRlYTAxZjk2NzQ3ZmUzMDE2ODU1MThhYjk0YjFjYmEwNzJhMWUxNTE5MzYyXCIsXG4gICAgXCJzZWFsZWQtbmF0aXZlLWRlcGVuZGVuY2llcy5qc29uXCI6IFwiMDQyMzI3YTAzNmVkMjU0Y2Y5NWRiZWIwYzA1NmFjMjViMDNhNmE4NDRiOTVhMzMyYzk5MmRmMjk0MzY5MTM2OVwiLFxuICAgIFwiY2FuZGlkYXRlLWRlcGxveW1lbnQuanNvblwiOiBcIjcyMmE4ZTJkYzUyYmVjMjE3YmY5NjBlMjNiMmZkZGZjN2FjMjdkMzQzYWM4NzQzNzkwZTMxODNkYjgxYTZhMGVcIixcbiAgICBcInJvbGxiYWNrLWRlcGxveW1lbnQuanNvblwiOiBcIjM5YjNmNDNiYjg0ZWY0OTIxY2MzYTFmYmNkYzQ0NDYxMDc0MWVkODgwOTE0OWQ4ZjhmMTdlZDgwNWYyNjIxMjFcIixcbiAgICBcImNoZWNrX2luc3RhbGxlZC5weVwiOiBcImEzNGE1MWJlOWM5ZjJiMTZhMDZhODgxNzNiNWM2YzQ5MmM5OTU3ZmUwMjFjZjQxMmE4NmExNzM3NzMwNjQwYWRcIixcbiAgICBcInB1Ymxpc2hlZC12ZXJpZmljYXRpb24uanNvblwiOiBcImU1OWFiNDRiMWFhZjI4MTQwNTA5NTkzYWFlNGFiOWI5N2FiNjJjYzhiNTg5ZTNmMTU1MmJhYzc4NjE4ODk2ZGRcIixcbiAgICBcInNlY3VyaXR5LXN1bW1hcnkuanNvblwiOiBcIjBlZTU2NDAwZGM3MDNmN2M5OTY4YzJhMGEzZWEwMzkwZDgzNjJmOGQwYmJmODAwMmEyYmQ3ZmE1OGYxOWNiNDRcIixcbiAgICBcIm9yaWdpbmFsLWFwcHJvdmVkLWRyaWxsLWJhY2t1cC5qc29uXCI6IFwiMDI1ZGRkZjFlOTM5MzZmMzFlOThiOWZiZmE4NGFhMmJkYWFhMzM1NzNmOWQzYjBlMzJkOTQ3ZmQyODZiMTcwZVwiLFxuICAgIFwib3JpZ2luYWwtYXBwcm92ZWQtZHJpbGwtY29weS1mYWlsdXJlLmpzb25cIjogXCJmYjc4ZmIyZThjM2Q0MTY0OTBjZjBmNTU5YjJmNWJkMDE5NDA2YTQ5MGY4ZjVmYTZmNTkzMjQyMWYwYjFhYzU2XCIsXG4gICAgXCJvcmlnaW5hbC1qb3VybmFsLXNhbml0aXplZC1hbmNob3IuanNvblwiOiBcIjk4OGZjYTYxYWQ4ZWI5ZDQzZDkzMzkwYTgzNTMyM2Y5NTIxOTZiYmNlOGNjMGJkZTUxYzQyYTE3ZDQxMWY0NTRcIlxuICB9LFxuICBcIm93bmVyX3NvdXJjZV9maWxlc1wiOiB7XG4gICAgXCJkZXBsb3kvbGlmZWN5Y2xlL2FkbWlzc2lvbi5jYW5kaWRhdGUuanNvblwiOiBcIjkyMzgyYTU2YjM0OWMzYjg5NWU1ODA2ZTk3NTA4MjUyN2JiOTlkMWEwMDExNDBlNjlkODU3ZTViMDM5MWZhNTVcIixcbiAgICBcImRlcGxveS9saWZlY3ljbGUvc2VydmljZS5jYW5kaWRhdGUuanNvblwiOiBcIjM4Yjc4YjljYmVlNWFkZTc3NTBhNThkNTE1NmNhNGM1NzczMzUyZTk0N2FjYjMwNGVlNzE0YjU5ZTc0OWNlYjRcIixcbiAgICBcImRlcGxveS9saWZlY3ljbGUva3VzdG9taXphdGlvbi55YW1sXCI6IFwiMWJiY2U4MWJjNjc1ODQzNDM1NDE1N2Y4NjAxNTM0MzIwYzVkMDI5MDU4NzkwOGZkMTVhNmQyNWUzZmE1N2Y0N1wiLFxuICAgIFwiZGVwbG95L2xpZmVjeWNsZS9yZWdpc3RyaWVzLmNhbmRpZGF0ZS5qc29uXCI6IFwiOWJhZDZkYjVmYmMyMTc4ZDMxYjA0MTIwMDE2YTQxODMwYzM1NTJmYmI5ZTI1MTdiNzE4ZjliYmU4N2NmNjQ5ZVwiXG4gIH0sXG4gIFwiY2FuZGlkYXRlX2ltYWdlXCI6IFwiZm9yZ2Vqby5jb3Vsb21iLnNvY2lhbC9jb3Vsb21iL2luZm9ybWVkLWRlY2lzaW9uQHNoYTI1Njo3NjNjMzY0MDJjOGJlN2NjNGMxYmQxYTYxNjIzZDFhZmY5MTE2ZDUyMjQxODc3NDI1YjQ1YTcwMThjYzA4ODNhXCIsXG4gIFwicHJpb3JfaW1hZ2VcIjogXCJmb3JnZWpvLmNvdWxvbWIuc29jaWFsL2NvdWxvbWIvaW5mb3JtZWQtZGVjaXNpb25Ac2hhMjU2OjdmNWM2Y2IyOWM5ZjcwYTAyNmJmZTMwZTcyOTM0Mjc0ZGRjNjkyNjE2NzZjZjZkNDc2ZjgxZGQzMjgxMmQxNzNcIixcbiAgXCJzb3VyY2VfcmV2aXNpb25cIjogXCJtdXN0LWJlLWV4YWN0LWZpbmFsLW93bmVyLUhFQUQtd2l0aC1hcHByb3ZlZC1mb3VyLUdpdC1ibG9ic1wiLFxuICBcInBoYXNlc1wiOiBbXG4gICAgXCJkcmlsbC1jb3B5LXJlc2N1ZS1yMVwiLFxuICAgIFwib2ZmbGluZS12ZXJpZnlcIixcbiAgICBcImNsZWFudXAtb2ZmbGluZVwiLFxuICAgIFwiY3V0b3Zlci1iYWNrdXBcIixcbiAgICBcImN1dG92ZXItY29weVwiLFxuICAgIFwicmVsZWFzZVwiLFxuICAgIFwidmVyaWZ5XCIsXG4gICAgXCJyb2xsYmFja1wiLFxuICAgIFwicm9sbGJhY2stdmVyaWZ5XCJcbiAgXSxcbiAgXCJhdXRob3JpemF0aW9uXCI6IFwiZnJlc2ggZXh0ZXJuYWxseSBhdXRoZW50aWNhdGVkIHJvb3QgZml4ZWQtb3JpZ2luIG5hdGl2ZSByZWFkYmFjayBiZWZvcmUgZWFjaCBwaGFzZTsgZXhhY3QgY29uZmlybWVkIHBsYXRmb3JtLXJvb3QgZGlzcG9zaXRpb24gYW5kIGN1cnJlbnQgcGFja2V0IFNIQS9zb3VyY2UgY29tbWl0OyByZWNlaXB0IGJvb2trZWVwaW5nIGlzIG5vdCBhbiBhdXRvbm9tb3VzIHNpZ25lZCBncmFudFwiLFxuICBcImV4ZWN1dGVfYnlcIjogXCIyMDI2LTEwLTEyVDIzOjU5OjU5WlwiLFxuICBcInJhd19vdXRwdXRfd2l0aGhlbGRcIjogdHJ1ZSxcbiAgXCJuYXRpdmVfZGF0YV9vcl93b3JrbG9hZF9hY3Rpb25fZXhlY3V0ZWRcIjogZmFsc2UsXG4gIFwiZGVhZGxpbmVfc2VtYW50aWNzXCI6IFwiQWxsIHBoYXNlcyBpbmNsdWRpbmcgdmVyaWZpY2F0aW9uL3JlY292ZXJ5IG11c3QgYmVnaW4gYmVmb3JlIGV4ZWN1dGVfYnkuIE5vIGV4dGVuc2lvbiBvciBhdXRvbWF0aWMgZW1lcmdlbmN5IGdyYW50OyBiZXlvbmQgZGVhZGxpbmUgc3RvcCBhbmQgb2J0YWluIGEgZnJlc2ggZm91bmRlciBkZWNpc2lvbi4gQ29tcGxldGUgdGhlIGJvdW5kZWQgZHJpbGwgYW5kIHJvbGxvdXQgZWFybHkgZW5vdWdoIHRvIGFsbG93IHJlY292ZXJ5IHdpdGhpbiB0aGUgd2luZG93LlwiLFxuICBcInJlY292ZXJ5XCI6IHtcbiAgICBcIm9yaWdpbmFsX2FuY2hvclwiOiB7XG4gICAgICBcIm9yaWdpbmFsX2pvdXJuYWxfc2hhMjU2XCI6IFwiZDE4N2IwMmQ5OGQ2ZTk3NDI5ZmUyMGI0ZmJlMWQzMDlhNmM2YzRiNTUyMzJiNGFlMTNhYzM5ODczMDM5ZjFjMVwiLFxuICAgICAgXCJwaGFzZV9tZXRhZGF0YVwiOiB7XG4gICAgICAgIFwiZHJpbGwtYmFja3VwXCI6IHtcbiAgICAgICAgICBcInN0YXRlXCI6IFwiQ09NUExFVEVcIixcbiAgICAgICAgICBcImF0dGVtcHRfaWRcIjogXCJkNjMxODJhNy1lMWE1LTRlOGUtYTVmMS0yYmYzMzMzY2YxNTNcIixcbiAgICAgICAgICBcInN0YXJ0ZWRfYXRcIjogXCIyMDI2LTEwLTExVDAyOjM4OjQ1LjMxMDY1MyswMDowMFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiZHJpbGwtY29weVwiOiB7XG4gICAgICAgICAgXCJzdGF0ZVwiOiBcIlVOQ0VSVEFJTlwiLFxuICAgICAgICAgIFwiYXR0ZW1wdF9pZFwiOiBcIjMyOWVmMTkwLTE2OTItNDI0Ni1iOTUzLWU2YTU5NjY0YWJjY1wiLFxuICAgICAgICAgIFwic3RhcnRlZF9hdFwiOiBcIjIwMjYtMTAtMTFUMDI6Mzk6NTAuMTk4NzQwKzAwOjAwXCJcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwiZnJvemVuX2JhY2t1cF9yZWNlaXB0X3NoYTI1NlwiOiBcIjAyNWRkZGYxZTkzOTM2ZjMxZTk4YjlmYmZhODRhYTJiZGFhYTMzNTczZjlkM2IwZTMyZDk0N2ZkMjg2YjE3MGVcIixcbiAgICAgIFwic25hcHNob3Rfc2hhMjU2XCI6IFwiODc1NmNmODI1ZGY5ZTdiNWI3NGJiNGEwMTA2YTUwMjdmNWNmZjJjNTlmZjQ1ZDdiNDhlZWQ4NTIyYTdkMzNmM1wiLFxuICAgICAgXCJzbmFwc2hvdF9ieXRlc1wiOiAxOTUzNzkyMCxcbiAgICAgIFwib2ZmX2NsdXN0ZXJfZmlsZV9leGlzdHNcIjogZmFsc2UsXG4gICAgICBcIm9sZF91bmNlcnRhaW5fcmV0cnlfYXV0aG9yaXplZFwiOiBmYWxzZVxuICAgIH0sXG4gICAgXCJvcmlnaW5hbF9pZGVudGl0eVwiOiB7XG4gICAgICBcInByb3Bvc2FsXCI6IFwiSU5GRC1XUC0wMDA5LVQwNC9wdXJwb3NlLW92ZXJsYXktdjFcIixcbiAgICAgIFwic291cmNlX3JldmlzaW9uXCI6IFwiYmM2NDk0Y2QxYjI5MDc4M2VmM2FlZjA3NjNiZjI4ZDFkZWFiZjRiMFwiLFxuICAgICAgXCJtZW1vX3NoYTI1NlwiOiBcIjUwNmQzOTU2YmViN2M2MmFiMmJiZGZkYTc4M2MwNTkwNWQxODM0NTJhMWY2N2ExODE3ZjNmYjhjMmU1MjI5MzdcIixcbiAgICAgIFwicGxhbl9zaGEyNTZcIjogXCJmNWU1ZmE5MDZmZjE5ZDNhNDVkMTBkY2RiMjgxMDM3M2FlMjFmOWNmNDRjMDQ3MmZmMmJkNDdkM2JjMzMyOGQ2XCJcbiAgICB9LFxuICAgIFwibmV3X2pvdXJuYWxcIjogXCJyZXNjdWUtZXhlY3V0aW9uLWpvdXJuYWwtcjEuanNvblwiLFxuICAgIFwibmV3X3BoYXNlXCI6IFwiZHJpbGwtY29weS1yZXNjdWUtcjFcIixcbiAgICBcIm9sZF91bmNlcnRhaW5fcGhhc2Vfb3ZlcndyaXRlX29yX3JldHJ5XCI6IGZhbHNlLFxuICAgIFwibmV3X3NuYXBzaG90X2JhY2t1cFwiOiBmYWxzZSxcbiAgICBcInNuYXBzaG90X29yX3NpZGVjYXJfbXV0YXRpb25cIjogZmFsc2UsXG4gICAgXCJtYXBwaW5nXCI6IFwib2ZmbGluZS12ZXJpZnkgY29uc3VtZXMgQ09NUExFVEUgZHJpbGwtY29weS1yZXNjdWUtcjEgcmVzdWx0OyBhbGwgbGF0ZXIgcGhhc2VzIG9yZGVyZWQgb25seSBpbiBuZXcgaGFzaC1saW5rZWQgcmVjb3Zlcnkgam91cm5hbFwiXG4gIH0sXG4gIFwic291cmNlX21lbW9fdmVyc2lvblwiOiAyLFxuICBcIm5hdGl2ZV9yZXZpZXdfbWVtb192ZXJzaW9uXCI6IDFcbn1cbiIKICAgIH0sCiAgICAibmF0aXZlX3Byb2dyYW0ucHkiOiB7CiAgICAgICJzaGEyNTYiOiAiNzg4ZGM5OWY3ZWRmYmZkNTQyYTNiYjA4ZmMzMWY2MGNhZjRmOGZkNWQ2NTRhNmE5MWI0NWUxOTdlY2ZmOWY5MSIsCiAgICAgICJjb250ZW50IjogIlwiXCJcIkZpeGVkIHZlcnNpb24yIHJlY292ZXJ5IHJlbW90ZSBzb3VyY2U7IHJlcXVpcmVzIGZyZXNoIGV4YWN0IGFjY2VwdGFuY2UuXCJcIlwiXG5QUk9HUkFNID0gJ1xcbmltcG9ydCBjb3B5LGRhdGV0aW1lLGhhc2hsaWIsanNvbixvcyxyZSxzdWJwcm9jZXNzLHN5c1xcbmlmIHN5cy5mbGFncy5vcHRpbWl6ZTpyYWlzZSBSdW50aW1lRXJyb3IoXFwnb3B0aW1pemVkIGludGVycHJldGVyIHJlZnVzZWRcXCcpXFxucGF5bG9hZD1qc29uLmxvYWRzKF9fUEFZTE9BRF9fKVxcbmV4ZWMoX19HVUFSRF9fKVxcbnBoYXNlPXBheWxvYWRbXFwncGhhc2VcXCddXFxuaWYgcGhhc2Ugbm90IGluIChcXCdjdXRvdmVyLWJhY2t1cFxcJyxcXCdkcmlsbC1jb3B5LXJlc2N1ZS1yMVxcJyxcXCdjdXRvdmVyLWNvcHlcXCcsXFwncmVsZWFzZVxcJyxcXCd2ZXJpZnlcXCcsXFwncm9sbGJhY2tcXCcsXFwncm9sbGJhY2stdmVyaWZ5XFwnKTpyYWlzZSBWYWx1ZUVycm9yKFxcJ2ZpeGVkIG5hdGl2ZSBwaGFzZSByZXF1aXJlZFxcJylcXG5kZWFkbGluZT1kYXRldGltZS5kYXRldGltZS5mcm9taXNvZm9ybWF0KFxcJzIwMjYtMTAtMTJUMjM6NTk6NTkrMDA6MDBcXCcpXFxuZGVmIHJlcXVpcmUodmFsdWUscmVhc29uKTpcXG4gaWYgbm90IHZhbHVlOnJhaXNlIFZhbHVlRXJyb3IocmVhc29uKVxcbnJlcXVpcmUoZGF0ZXRpbWUuZGF0ZXRpbWUubm93KGRhdGV0aW1lLnRpbWV6b25lLnV0Yyk8ZGVhZGxpbmUsXFwnZXhlY3V0aW9uIHdpbmRvdyBleHBpcmVkXFwnKVxcbmVudj17Kipvcy5lbnZpcm9uLFxcJ0tVQkVDT05GSUdcXCc6XFwnL2V0Yy9yYW5jaGVyL2szcy9rM3MueWFtbFxcJ31cXG5kZWYgcnVuKGFyZ3YsYm9keT1Ob25lLHRpbWVvdXQ9OTApOlxcbiByZXR1cm4gc3VicHJvY2Vzcy5ydW4oYXJndixpbnB1dD1ib2R5LHRleHQ9VHJ1ZSxjYXB0dXJlX291dHB1dD1UcnVlLHRpbWVvdXQ9dGltZW91dCxlbnY9ZW52KVxcbmRlZiByZWFkKGtpbmQsbmFtZSxuYW1lc3BhY2UpOlxcbiByZXN1bHQ9cnVuKFtcXCdrdWJlY3RsXFwnLFxcJ2dldFxcJyxraW5kLG5hbWUsXFwnLW5cXCcsbmFtZXNwYWNlLFxcJy1vXFwnLFxcJ2pzb25cXCddKVxcbiByZXF1aXJlKHJlc3VsdC5yZXR1cm5jb2RlPT0wLFxcJ2ZpeGVkIG1ldGFkYXRhIHJlYWQgcmVmdXNlZFxcJylcXG4gcmV0dXJuIGpzb24ubG9hZHMocmVzdWx0LnN0ZG91dClcXG5zZWFsZWQ9cGF5bG9hZFtcXCdzZWFsZWRcXCddOyBkZXBlbmRlbmNpZXM9cGF5bG9hZFtcXCdkZXBlbmRlbmNpZXNcXCddXFxubGl2ZT1yZWFkKFxcJ2RlcGxveW1lbnRcXCcsXFwnaW5mb3JtZWQtZGVjaXNpb25cXCcsXFwnaW5mb3JtZWQtZGVjaXNpb25cXCcpXFxuY209cmVhZChcXCdjb25maWdtYXBcXCcsXFwnaW5mb3JtZWQtZGVjaXNpb24tcnVudGltZS02YzIyMTg3OGQwNTFcXCcsXFwnaW5mb3JtZWQtZGVjaXNpb25cXCcpXFxucHZjPXJlYWQoXFwncHZjXFwnLFxcJ2luZm9ybWVkLWRlY2lzaW9uLWRhdGFcXCcsXFwnaW5mb3JtZWQtZGVjaXNpb25cXCcpXFxuY2hlY2tfZGVwZW5kZW5jaWVzKGNtLHB2YyxkZXBlbmRlbmNpZXMpXFxuYXBwPXJlYWQoXFwnYXBwbGljYXRpb25cXCcsXFwnaW5mb3JtZWQtZGVjaXNpb25cXCcsXFwnYXJnb2NkXFwnKVxcbnJlcXVpcmUoYXBwW1xcJ21ldGFkYXRhXFwnXVtcXCd1aWRcXCddPT1cXCc0OTk4NjhmMi1lYWJjLTRkZjQtYWUzMS1iODljZTU4ZDc1MGRcXCcsXFwnQXBwbGljYXRpb24gVUlEIGNoYW5nZWRcXCcpXFxucmVxdWlyZShhcHBbXFwnc3BlY1xcJ11bXFwnc291cmNlXFwnXVtcXCdyZXBvVVJMXFwnXT09XFwnaHR0cHM6Ly9mb3JnZWpvLmNvdWxvbWIuc29jaWFsL2NvdWxvbWIvaW5mb3JtZWQtZGVjaXNpb24uZ2l0XFwnXFxuIGFuZCBhcHBbXFwnc3BlY1xcJ11bXFwnc291cmNlXFwnXVtcXCdwYXRoXFwnXT09XFwnZGVwbG95L2xpZmVjeWNsZVxcJ1xcbiBhbmQgYXBwW1xcJ3NwZWNcXCddW1xcJ2Rlc3RpbmF0aW9uXFwnXT09e1xcJ25hbWVzcGFjZVxcJzpcXCdpbmZvcm1lZC1kZWNpc2lvblxcJyxcXCdzZXJ2ZXJcXCc6XFwnaHR0cHM6Ly9rdWJlcm5ldGVzLmRlZmF1bHQuc3ZjXFwnfVxcbiBhbmQgYXBwW1xcJ3NwZWNcXCddLmdldChcXCdzeW5jUG9saWN5XFwnLHt9KS5nZXQoXFwnYXV0b21hdGVkXFwnKSBpcyBOb25lXFxuIGFuZCBzZXQoYXBwW1xcJ3NwZWNcXCddW1xcJ3NvdXJjZVxcJ10pPT17XFwncmVwb1VSTFxcJyxcXCdwYXRoXFwnLFxcJ3RhcmdldFJldmlzaW9uXFwnfSBhbmQgbm90IGFwcFtcXCdzcGVjXFwnXS5nZXQoXFwnc291cmNlc1xcJyksXFwnQXBwbGljYXRpb24gb3duZXIvc2NvcGUgY2hhbmdlZFxcJylcXG5leHBlY3RlZD1jb3B5LmRlZXBjb3B5KHNlYWxlZClcXG5pZiBwaGFzZT09XFwndmVyaWZ5XFwnOmV4cGVjdGVkW1xcJ3NwZWNcXCddW1xcJ3RlbXBsYXRlXFwnXVtcXCdzcGVjXFwnXVtcXCdjb250YWluZXJzXFwnXVswXVtcXCdpbWFnZVxcJ109Q0FORElEQVRFXFxuaWYgcGhhc2U9PVxcJ3JvbGxiYWNrXFwnOlxcbiBpbWFnZT1saXZlW1xcJ3NwZWNcXCddW1xcJ3RlbXBsYXRlXFwnXVtcXCdzcGVjXFwnXVtcXCdjb250YWluZXJzXFwnXVswXVtcXCdpbWFnZVxcJ11cXG4gcmVxdWlyZShpbWFnZSBpbiAoQkFTRSxDQU5ESURBVEUpLFxcJ3JvbGxiYWNrIGltYWdlIGlzIG91dHNpZGUgc2FtZS1zY2hlbWEgcGFpclxcJylcXG4gZXhwZWN0ZWRbXFwnc3BlY1xcJ11bXFwndGVtcGxhdGVcXCddW1xcJ3NwZWNcXCddW1xcJ2NvbnRhaW5lcnNcXCddWzBdW1xcJ2ltYWdlXFwnXT1pbWFnZVxcbmNoZWNrX2N1cnJlbnQobGl2ZSxleHBlY3RlZClcXG5pZiBwaGFzZSE9XFwncm9sbGJhY2tcXCc6XFxuIHJlcXVpcmUobGl2ZS5nZXQoXFwnc3RhdHVzXFwnLHt9KS5nZXQoXFwncmVhZHlSZXBsaWNhc1xcJyk9PTFcXG4gIGFuZCBsaXZlW1xcJ3N0YXR1c1xcJ10uZ2V0KFxcJ3VwZGF0ZWRSZXBsaWNhc1xcJyk9PTFcXG4gIGFuZCBsaXZlW1xcJ3N0YXR1c1xcJ10uZ2V0KFxcJ29ic2VydmVkR2VuZXJhdGlvblxcJyk9PWxpdmVbXFwnbWV0YWRhdGFcXCddW1xcJ2dlbmVyYXRpb25cXCddLFxcJ3NlcnZpY2Ugbm90IFJlYWR5MVxcJylcXG50YXJnZXQ9cGF5bG9hZFtcXCdzb3VyY2VfcmV2aXNpb25cXCddIGlmIHBoYXNlPT1cXCd2ZXJpZnlcXCcgZWxzZSBcXCc3ZGI4NDg1ZmZlY2RlYmZhYmQ3N2E5ZGFlYzA4NTU1M2M3NGJmMGJmXFwnXFxuaWYgcGhhc2U9PVxcJ3JvbGxiYWNrXFwnOnJlcXVpcmUoYXBwW1xcJ3NwZWNcXCddW1xcJ3NvdXJjZVxcJ11bXFwndGFyZ2V0UmV2aXNpb25cXCddIGluICh0YXJnZXQscGF5bG9hZFtcXCdzb3VyY2VfcmV2aXNpb25cXCddKSxcXCdyb2xsYmFjayBzb3VyY2UgaXMgb3V0c2lkZSBwYWlyXFwnKVxcbmVsc2U6cmVxdWlyZShhcHBbXFwnc3BlY1xcJ11bXFwnc291cmNlXFwnXVtcXCd0YXJnZXRSZXZpc2lvblxcJ109PXRhcmdldCxcXCd1bmV4cGVjdGVkIHNvdXJjZSBwaW5cXCcpXFxucmVzdWx0PXtcXCdwaGFzZVxcJzpwaGFzZSxcXCdhbGxfY2hlY2tzX3Bhc3NcXCc6RmFsc2UsXFwncmF3X291dHB1dF93aXRoaGVsZFxcJzpUcnVlLFxcbiBcXCduYXRpdmVfYXBwcm92YWxfdmVyaWZpZWRfYnlfcm9vdFxcJzpwYXlsb2FkW1xcJ2FwcHJvdmFsXFwnXSxcXCduYXRpdmVfYXV0aGVudGljYXRlZF9ncmFudFxcJzpGYWxzZX1cXG50cnk6XFxuIGlmIHBoYXNlIGluIChcXCdjdXRvdmVyLWJhY2t1cFxcJyxcXCdkcmlsbC1jb3B5LXJlc2N1ZS1yMVxcJyxcXCdjdXRvdmVyLWNvcHlcXCcsXFwncmVsZWFzZVxcJyxcXCd2ZXJpZnlcXCcsXFwncm9sbGJhY2stdmVyaWZ5XFwnKTpcXG4gIHBvZGxpc3Q9cnVuKFtcXCdrdWJlY3RsXFwnLFxcJ2dldFxcJyxcXCdwb2RzXFwnLFxcJy1uXFwnLFxcJ2luZm9ybWVkLWRlY2lzaW9uXFwnLFxcJy1sXFwnLFxcJ2FwcC5rdWJlcm5ldGVzLmlvL25hbWU9aW5mb3JtZWQtZGVjaXNpb25cXCcsXFwnLW9cXCcsXFwnanNvblxcJ10pXFxuICByZXF1aXJlKHBvZGxpc3QucmV0dXJuY29kZT09MCxcXCdwb2QgbWV0YWRhdGEgcXVlcnkgcmVmdXNlZFxcJylcXG4gIHBvZHM9W3AgZm9yIHAgaW4ganNvbi5sb2Fkcyhwb2RsaXN0LnN0ZG91dClbXFwnaXRlbXNcXCddIGlmIG5vdCBwW1xcJ21ldGFkYXRhXFwnXS5nZXQoXFwnZGVsZXRpb25UaW1lc3RhbXBcXCcpXVxcbiAgcmVxdWlyZShsZW4ocG9kcyk9PTEsXFwnZXhhY3Qgc2luZ2xlIGxpdmUgb3duZXIgcG9kIHJlcXVpcmVkXFwnKTtwb2Q9cG9kc1swXVxcbiAgcmVxdWlyZShwb2RbXFwnc3RhdHVzXFwnXS5nZXQoXFwncGhhc2VcXCcpPT1cXCdSdW5uaW5nXFwnIGFuZCBsZW4ocG9kW1xcJ3NwZWNcXCddW1xcJ2NvbnRhaW5lcnNcXCddKT09MVxcbiAgIGFuZCBwb2RbXFwnc3BlY1xcJ11bXFwnY29udGFpbmVyc1xcJ11bMF1bXFwnaW1hZ2VcXCddPT1leHBlY3RlZFtcXCdzcGVjXFwnXVtcXCd0ZW1wbGF0ZVxcJ11bXFwnc3BlY1xcJ11bXFwnY29udGFpbmVyc1xcJ11bMF1bXFwnaW1hZ2VcXCddXFxuICAgYW5kIGxlbihwb2RbXFwnc3RhdHVzXFwnXS5nZXQoXFwnY29udGFpbmVyU3RhdHVzZXNcXCcsW10pKT09MVxcbiAgIGFuZCBwb2RbXFwnc3RhdHVzXFwnXVtcXCdjb250YWluZXJTdGF0dXNlc1xcJ11bMF0uZ2V0KFxcJ25hbWVcXCcpPT1cXCdpbmZvcm1lZC1kZWNpc2lvblxcJ1xcbiAgIGFuZCBwb2RbXFwnc3RhdHVzXFwnXVtcXCdjb250YWluZXJTdGF0dXNlc1xcJ11bMF0uZ2V0KFxcJ3JlYWR5XFwnKSBpcyBUcnVlLFxcJ293bmVyIHBvZCByZWFkaW5lc3MvaW1hZ2UgY2hhbmdlZFxcJylcXG4gIGlmIHBoYXNlPT1cXCdkcmlsbC1jb3B5LXJlc2N1ZS1yMVxcJzpyZXF1aXJlKHBvZFtcXCdtZXRhZGF0YVxcJ11bXFwndWlkXFwnXT09XFwnZTg1NjFhZTAtNGIwOS00NDU1LTkyNGQtNjRjMjdiNjI1ZmM3XFwnLFxcJ29yaWdpbmFsIGJhY2t1cCBQb2QgaWRlbnRpdHkgY2hhbmdlZFxcJylcXG4gIHRlbXBsYXRlPWV4cGVjdGVkW1xcJ3NwZWNcXCddW1xcJ3RlbXBsYXRlXFwnXVtcXCdzcGVjXFwnXVxcbiAgY29udHJvbGxlZD1zZXQodGVtcGxhdGUpfHtcXCdpbml0Q29udGFpbmVyc1xcJyxcXCdob3N0TmV0d29ya1xcJyxcXCdob3N0UElEXFwnLFxcJ2hvc3RJUENcXCcsXFwncnVudGltZUNsYXNzTmFtZVxcJyxcXCdzaGFyZVByb2Nlc3NOYW1lc3BhY2VcXCd9XFxuICByZXF1aXJlKGFsbChwb2RbXFwnc3BlY1xcJ10uZ2V0KGtleSk9PXRlbXBsYXRlLmdldChrZXkpIGZvciBrZXkgaW4gY29udHJvbGxlZCksXFwnYWN0dWFsIG93bmVyIFBvZCBjb25maWd1cmF0aW9uIGRyaWZ0ZWRcXCcpXFxuICBvd25lcnM9cG9kW1xcJ21ldGFkYXRhXFwnXS5nZXQoXFwnb3duZXJSZWZlcmVuY2VzXFwnLFtdKTtyZXF1aXJlKGxlbihvd25lcnMpPT0xIGFuZCBvd25lcnNbMF1bXFwna2luZFxcJ109PVxcJ1JlcGxpY2FTZXRcXCcsXFwncG9kIG93bmVyIGNoYWluIGNoYW5nZWRcXCcpXFxuICBycz1yZWFkKFxcJ3JlcGxpY2FzZXRcXCcsb3duZXJzWzBdW1xcJ25hbWVcXCddLFxcJ2luZm9ybWVkLWRlY2lzaW9uXFwnKVxcbiAgcmVxdWlyZShyc1tcXCdtZXRhZGF0YVxcJ11bXFwndWlkXFwnXT09b3duZXJzWzBdW1xcJ3VpZFxcJ10gYW5kIGFueShvLmdldChcXCd1aWRcXCcpPT1zZWFsZWRbXFwnbWV0YWRhdGFcXCddW1xcJ3VpZFxcJ11cXG4gICBhbmQgby5nZXQoXFwna2luZFxcJyk9PVxcJ0RlcGxveW1lbnRcXCcgZm9yIG8gaW4gcnNbXFwnbWV0YWRhdGFcXCddLmdldChcXCdvd25lclJlZmVyZW5jZXNcXCcsW10pKSxcXCdSZXBsaWNhU2V0IG93bmVyc2hpcCBjaGFuZ2VkXFwnKVxcbiAgaW5uZXI9clwiXCJcIlxcbmltcG9ydCBoYXNobGliLGpzb24sb3Msc3RhdCxzdWJwcm9jZXNzLHN5c1xcbmlmIHN5cy5mbGFncy5vcHRpbWl6ZTpyYWlzZSBSdW50aW1lRXJyb3IoXFwnb3B0aW1pemVkIGludGVycHJldGVyIHJlZnVzZWRcXCcpXFxuZXhlYyhfX1JFQURPTkxZX18pXFxuZXhlYyhfX1NBRkVUWV9fKVxcbmFjdGlvbj1fX0FDVElPTl9fO2RiPVxcJy9kYXRhL3ByaXZhdGUvcmV2aWV3LnNxbGl0ZVxcJztmb2xkZXI9XFwnL2RhdGEvcHJpdmF0ZS9wdXJwb3NlLW92ZXJsYXktcjFcXCdcXG5kZWYgcmVxdWlyZSh2LHIpOlxcbiBpZiBub3QgdjpyYWlzZSBWYWx1ZUVycm9yKHIpXFxucmVxdWlyZShvcy5nZXR1aWQoKT09MTAwMDEgYW5kIG9zLmdldGdpZCgpPT0xMDAwMSxcXCduYXRpdmUgb3duZXIgVUlEL0dJRCByZXF1aXJlZFxcJylcXG5kZWYgcHJpdmF0ZShwLGRpcmVjdG9yeT1GYWxzZSk6XFxuIHM9b3MubHN0YXQocCk7cmVxdWlyZSgoc3RhdC5TX0lTRElSKHMuc3RfbW9kZSkgaWYgZGlyZWN0b3J5IGVsc2Ugc3RhdC5TX0lTUkVHKHMuc3RfbW9kZSkpXFxuICBhbmQgcy5zdF91aWQ9PTEwMDAxIGFuZCBzdGF0LlNfSU1PREUocy5zdF9tb2RlKT09KDBvNzAwIGlmIGRpcmVjdG9yeSBlbHNlIDBvNjAwKVxcbiAgYW5kIChkaXJlY3Rvcnkgb3Igcy5zdF9ubGluaz09MSksXFwncHJpdmF0ZSBuYXRpdmUgY3VzdG9keSByZXF1aXJlZFxcJylcXG5wcml2YXRlKFxcJy9kYXRhL3ByaXZhdGVcXCcsVHJ1ZSk7cHJpdmF0ZShkYilcXG5iYXNlbGluZT1jb3VudHMoaW5zcGVjdF9yZWFkb25seShkYikpICMgTVVTVCBwcmVjZWRlIGFueSBTdG9yZS9hZG1pbiBvcGVuLlxcbmlmIGFjdGlvbiBpbiAoXFwnY3V0b3Zlci1iYWNrdXBcXCcpOlxcbiBzaXplPW9zLnN0YXQoZGIpLnN0X3NpemVcXG4gaWYgb3MucGF0aC5leGlzdHMoZGIrXFwnLXdhbFxcJyk6c2l6ZSs9b3Muc3RhdChkYitcXCctd2FsXFwnKS5zdF9zaXplXFxuIHY9b3Muc3RhdHZmcyhcXCcvZGF0YS9wcml2YXRlXFwnKTtmcmVlPXYuZl9iYXZhaWwqdi5mX2Zyc2l6ZVxcbiByZXF1aXJlKHNpemU+MCBhbmQgc2l6ZTw9NTEyKjEwMjQqKjIgYW5kIGZyZWU+PXNpemUqKDIgaWYgYWN0aW9uPT1cXCdkcmlsbC1iYWNrdXBcXCcgZWxzZSAxKSsxNioxMDI0KioyLFxcJ2JvdW5kZWQgbmF0aXZlIHNuYXBzaG90IGNhcGFjaXR5IHJlcXVpcmVkXFwnKVxcbiBpZiBhY3Rpb249PVxcJ2RyaWxsLWJhY2t1cFxcJzpcXG4gIHJlcXVpcmUobm90IG9zLnBhdGgubGV4aXN0cyhmb2xkZXIpLFxcJ25hdGl2ZSBjYXNlIGRpcmVjdG9yeSBtdXN0IGJlIHVuaXF1ZVxcJylcXG4gIG9zLm1rZGlyKGZvbGRlciwwbzcwMCk7b3MuY2htb2QoZm9sZGVyLDBvNzAwKVxcbiBwcml2YXRlKGZvbGRlcixUcnVlKVxcbiBmaWxlbmFtZT1cXCdkcmlsbC5zcWxpdGVcXCcgaWYgYWN0aW9uPT1cXCdkcmlsbC1iYWNrdXBcXCcgZWxzZSBcXCdjdXRvdmVyLnNxbGl0ZVxcJztvdXRwdXQ9Zm9sZGVyK1xcJy9cXCcrZmlsZW5hbWVcXG4gcmVxdWlyZShub3Qgb3MucGF0aC5sZXhpc3RzKG91dHB1dCksXFwnc25hcHNob3Qgb3V0cHV0IG11c3QgYmUgdW5pcXVlXFwnKVxcbiBhZG1pbj1zdWJwcm9jZXNzLnJ1bihbXFwnaW5mb3JtZWQtZGVjaXNpb24tYWRtaW5cXCcsXFwnYmFja3VwXFwnLFxcJy0tZGJcXCcsZGIsXFwnLS1vdXRwdXRcXCcsb3V0cHV0XSxjYXB0dXJlX291dHB1dD1UcnVlLHRleHQ9VHJ1ZSx0aW1lb3V0PTEyMClcXG4gcmVxdWlyZShhZG1pbi5yZXR1cm5jb2RlPT0wIGFuZCBqc29uLmxvYWRzKGFkbWluLnN0ZG91dCk9PXtcXCdzdGF0dXNcXCc6XFwnYmFja2VkX3VwXFwnLFxcJ2NvbnNpc3RlbnRfc25hcHNob3RcXCc6VHJ1ZX0sXFwnYmFja3VwIGNvbXBsZXRpb24gbm90IHZlcmlmaWVkOyBkbyBub3QgcmV0cnlcXCcpXFxuIHByaXZhdGUob3V0cHV0KVxcbiBmb3Igc3VmZml4IGluIChcXCctd2FsXFwnLCk6XFxuICByZXF1aXJlKG5vdCBvcy5wYXRoLmV4aXN0cyhvdXRwdXQrc3VmZml4KSBvciBvcy5zdGF0KG91dHB1dCtzdWZmaXgpLnN0X3NpemU9PTAsXFwnc25hcHNob3QgaGFzIFdBTCBmcmFtZXM7IGltbXV0YWJsZSByZWFkIHJlZnVzZWRcXCcpXFxuIGRpZ2VzdD1oYXNobGliLnNoYTI1NigpXFxuIHdpdGggb3BlbihvdXRwdXQsXFwncmJcXCcpIGFzIHN0cmVhbTpcXG4gIGZvciBibG9jayBpbiBpdGVyKGxhbWJkYTpzdHJlYW0ucmVhZCgxMDI0KioyKSxiXFwnXFwnKTpkaWdlc3QudXBkYXRlKGJsb2NrKVxcbiBmcm96ZW5fZGlnZXN0PWRpZ2VzdC5oZXhkaWdlc3QoKVxcbiBzbmFwc2hvdD1jb3VudHMoaW5zcGVjdF9jbG9zZWRfc25hcHNob3Qob3V0cHV0LGZyb3plbl9kaWdlc3QpKVxcbiBzaXplPW9zLnN0YXQob3V0cHV0KS5zdF9zaXplO3JlcXVpcmUoMDxzaXplPD01MTIqMTAyNCoqMixcXCdzbmFwc2hvdCBvdXRzaWRlIGJvdW5kZWQgY29weSBzaXplXFwnKVxcbiBkaWdlc3Q9aGFzaGxpYi5zaGEyNTYoKVxcbiB3aXRoIG9wZW4ob3V0cHV0LFxcJ3JiXFwnKSBhcyBzdHJlYW06XFxuICBmb3IgYmxvY2sgaW4gaXRlcihsYW1iZGE6c3RyZWFtLnJlYWQoMTAyNCoqMiksYlxcJ1xcJyk6ZGlnZXN0LnVwZGF0ZShibG9jaylcXG4gcHJpbnQoanNvbi5kdW1wcyh7XFwnYWxsX2NoZWNrc19wYXNzXFwnOlRydWUsXFwnc291cmNlX3JlYWRvbmx5X2Jhc2VsaW5lXFwnOmJhc2VsaW5lLFxcJ3NuYXBzaG90X3JlYWRvbmx5XFwnOnNuYXBzaG90LFxcJ3NuYXBzaG90X3NoYTI1NlxcJzpkaWdlc3QuaGV4ZGlnZXN0KCksXFwnc25hcHNob3RfYnl0ZXNcXCc6c2l6ZSxcXCdzbmFwc2hvdF9maWxlXFwnOmZpbGVuYW1lLFxcJ25hdGl2ZV9wYXJlbnRfcHJpdmF0ZVxcJzpUcnVlLFxcJ25hdGl2ZV91aWRcXCc6b3MuZ2V0dWlkKCl9KSlcXG5lbGlmIGFjdGlvbiBpbiAoXFwndmVyaWZ5XFwnLFxcJ3JlbGVhc2VcXCcsXFwncm9sbGJhY2stdmVyaWZ5XFwnKTpcXG4gcHJvb2Y9e1xcJ2FsbF9jaGVja3NfcGFzc1xcJzpUcnVlLFxcJ2xpdmVfcmVhZG9ubHlfc2NoZW1hX2ludGVncml0eV9jb3VudHNcXCc6YmFzZWxpbmUsXFwnbGl2ZV9jb3VudHNfbWF5X2luY2x1ZGVfY29uY3VycmVudF9jb21taXRzXFwnOlRydWV9XFxuIGlmIGFjdGlvbj09XFwndmVyaWZ5XFwnOlxcbiAgaW1wb3J0IHVybGxpYi5yZXF1ZXN0XFxuICBtb2R1bGU9XFwnL29wdC92ZW52L2xpYi9weXRob24zLjEyL3NpdGUtcGFja2FnZXMvaW5mb3JtZWRfZGVjaXNpb24vcG9saWN5LnB5XFwnO2luZm89b3MubHN0YXQobW9kdWxlKVxcbiAgcmVxdWlyZShzdGF0LlNfSVNSRUcoaW5mby5zdF9tb2RlKSBhbmQgaW5mby5zdF91aWQ9PTAgYW5kIHN0YXQuU19JTU9ERShpbmZvLnN0X21vZGUpPT0wbzY0NCxcXCdpbnN0YWxsZWQgcG9saWN5IG1ldGFkYXRhIGRpZmZlcnNcXCcpXFxuICB3aXRoIG9wZW4obW9kdWxlLFxcJ3JiXFwnKSBhcyBzb3VyY2U6bW9kdWxlX2RpZ2VzdD1oYXNobGliLnNoYTI1Nihzb3VyY2UucmVhZCgpKS5oZXhkaWdlc3QoKVxcbiAgcmVxdWlyZShtb2R1bGVfZGlnZXN0PT1cXCc5ZDdjMWJlNGNiNjE5OWQxNGVmMGFhZWFkNWY4NTk1MWY0NWIwY2NiZDdjODAwYTdmZGU5MjJhMjUzNTY2YjYyXFwnLFxcJ2luc3RhbGxlZCBzb3VyY2UgbW9kdWxlIGRpZmZlcnNcXCcpXFxuICBwdXJwb3NlPXN1YnByb2Nlc3MucnVuKFtzeXMuZXhlY3V0YWJsZSxcXCctXFwnXSxpbnB1dD1fX1BVUlBPU0VfXyx0ZXh0PVRydWUsY2FwdHVyZV9vdXRwdXQ9VHJ1ZSx0aW1lb3V0PTMwKVxcbiAgcmVxdWlyZShwdXJwb3NlLnJldHVybmNvZGU9PTAsXFwnaW5zdGFsbGVkIG5hdGl2ZS1wbGFjZW1lbnQgcHVycG9zZSBjaGVja3MgZmFpbGVkXFwnKVxcbiAgdGVzdGVkPWpzb24ubG9hZHMocHVycG9zZS5zdGRvdXQpXFxuICByZXF1aXJlKHRlc3RlZD09e1xcJ2luc3RhbGxlZF9pbWFnZV9wdXJwb3NlX3ZhcmlhbnRzXFwnOjEwLFxcJ2JpbmRpbmdfZm9ybXNfYWxsb3dlZFxcJzoyLFxcJ2Fkdmlzb3J5X29yX21hbGZvcm1lZF9yZWZ1c2VkXFwnOjgsXFwnc3ludGhldGljX29ubHlcXCc6VHJ1ZSxcXCduYXRpdmVfcHJvdmlkZXJcXCc6RmFsc2V9LFxcJ3B1cnBvc2UgcmVzdWx0IGRpZmZlcnNcXCcpXFxuICBjbGFzcyBOb1JlZGlyZWN0KHVybGxpYi5yZXF1ZXN0LkhUVFBSZWRpcmVjdEhhbmRsZXIpOlxcbiAgIGRlZiByZWRpcmVjdF9yZXF1ZXN0KHNlbGYsKmFyZ3MsKiprd2FyZ3MpOnJhaXNlIFZhbHVlRXJyb3IoXFwnaGVhbHRoIHJlZGlyZWN0IHJlZnVzZWRcXCcpXFxuICBvcGVuZXI9dXJsbGliLnJlcXVlc3QuYnVpbGRfb3BlbmVyKE5vUmVkaXJlY3QoKSk7c3RhdHVzZXM9e31cXG4gIGZvciByb3V0ZSBpbiAoXFwnL2hlYWx0aHpcXCcsXFwnL3JlYWR5elxcJyk6XFxuICAgd2l0aCBvcGVuZXIub3BlbihcXCdodHRwOi8vMTI3LjAuMC4xOjgwODBcXCcrcm91dGUsdGltZW91dD0xMCkgYXMgcmVzcG9uc2U6XFxuICAgIHJlcXVpcmUocmVzcG9uc2Uuc3RhdHVzPT0yMDAgYW5kIGxlbihyZXNwb25zZS5yZWFkKDgxOTMpKTw9ODE5MixcXCdib3VuZGVkIGhlYWx0aCBjaGVjayByZWZ1c2VkXFwnKTtzdGF0dXNlc1tyb3V0ZV09MjAwXFxuICBwcm9vZi51cGRhdGUoaW5zdGFsbGVkX3B1cnBvc2VfY2hlY2tzPXRlc3RlZCxwb2xpY3lfc2hhMjU2PW1vZHVsZV9kaWdlc3QscG9saWN5X21vZGU9XFwnMDY0NFxcJyxwb2xpY3lfdWlkPTAsaGVhbHRoX3N0YXR1c2VzPXN0YXR1c2VzLG5hdGl2ZV9wcm92aWRlcl9wcm9iZT1GYWxzZSlcXG4gcHJpbnQoanNvbi5kdW1wcyhwcm9vZikpXFxuZWxpZiBhY3Rpb24gaW4gKFxcJ2RyaWxsLWNvcHlcXCcsXFwnY3V0b3Zlci1jb3B5XFwnKTpcXG4gcHJpdmF0ZShmb2xkZXIsVHJ1ZSk7ZmlsZW5hbWU9XFwnZHJpbGwuc3FsaXRlXFwnIGlmIGFjdGlvbj09XFwnZHJpbGwtY29weVxcJyBlbHNlIFxcJ2N1dG92ZXIuc3FsaXRlXFwnO291dHB1dD1mb2xkZXIrXFwnL1xcJytmaWxlbmFtZTtwcml2YXRlKG91dHB1dClcXG4gaWRlbnRpdHk9X19TTkFQU0hPVF9fO3JlcXVpcmUoaXNpbnN0YW5jZShpZGVudGl0eSxkaWN0KSBhbmQgaWRlbnRpdHkuZ2V0KFxcJ3NuYXBzaG90X2ZpbGVcXCcpPT1maWxlbmFtZSxcXCdyZWNvcmRlZCBvcmlnaW5hbCBmcm96ZW4gc25hcHNob3QgaWRlbnRpdHkgcmVxdWlyZWRcXCcpXFxuIHNuYXBzaG90PWNvdW50cyhpbnNwZWN0X2Nsb3NlZF9zbmFwc2hvdChvdXRwdXQsaWRlbnRpdHlbXFwnc25hcHNob3Rfc2hhMjU2XFwnXSkpO3NpemU9b3Muc3RhdChvdXRwdXQpLnN0X3NpemU7cmVxdWlyZShzaXplPT1pZGVudGl0eVtcXCdzbmFwc2hvdF9ieXRlc1xcJ10gYW5kIDA8c2l6ZTw9NTEyKjEwMjQqKjIsXFwnc25hcHNob3Qgc2l6ZSBvdXRzaWRlIGZyb3plbiBib3VuZFxcJylcXG4gcmVxdWlyZShzbmFwc2hvdD09aWRlbnRpdHlbXFwnc25hcHNob3RfcmVhZG9ubHlcXCddLFxcJ2Zyb3plbiBzbmFwc2hvdCBwcm9vZiBkaWZmZXJzXFwnKVxcbiBkaWdlc3Q9aGFzaGxpYi5zaGEyNTYoKVxcbiB3aXRoIG9wZW4ob3V0cHV0LFxcJ3JiXFwnKSBhcyBzdHJlYW06XFxuICBmb3IgYmxvY2sgaW4gaXRlcihsYW1iZGE6c3RyZWFtLnJlYWQoMTAyNCoqMiksYlxcJ1xcJyk6ZGlnZXN0LnVwZGF0ZShibG9jaylcXG4gcHJpbnQoanNvbi5kdW1wcyh7XFwnYWxsX2NoZWNrc19wYXNzXFwnOlRydWUsXFwnc25hcHNob3RfZmlsZVxcJzpmaWxlbmFtZSxcXCdzbmFwc2hvdF9ieXRlc1xcJzpzaXplLFxcJ3NuYXBzaG90X3NoYTI1NlxcJzpkaWdlc3QuaGV4ZGlnZXN0KCksXFwnc25hcHNob3RfcmVhZG9ubHlcXCc6c25hcHNob3R9KSlcXG5lbHNlOnJhaXNlIFZhbHVlRXJyb3IoXFwnZml4ZWQgbmF0aXZlIGJhY2t1cC92ZXJpZnkgcGhhc2UgcmVxdWlyZWRcXCcpXFxuXCJcIlwiXFxuICAjIFN0cmlwIHRoZSBDTEkgYnJhbmNoOiBleGVjIG9ubHkgdGhlIHZlcmlmaWVkIHN0ZGxpYiBmdW5jdGlvbiwgbmV2ZXIgU3RvcmUuXFxuICByZWFkb25seT1wYXlsb2FkW1xcJ3JlYWRvbmx5XFwnXS5zcGxpdChcImlmIF9fbmFtZV9fID09IFxcJ19fbWFpbl9fXFwnOlwiLDEpWzBdXFxuICBpbm5lcj1pbm5lci5yZXBsYWNlKFxcJ19fUkVBRE9OTFlfX1xcJyxyZXByKHJlYWRvbmx5KSkucmVwbGFjZShcXCdfX1NBRkVUWV9fXFwnLHJlcHIocGF5bG9hZFtcXCdyZWNlaXB0X3NhZmV0eVxcJ10pKS5yZXBsYWNlKFxcJ19fQUNUSU9OX19cXCcscmVwcihcXCdkcmlsbC1jb3B5XFwnIGlmIHBoYXNlPT1cXCdkcmlsbC1jb3B5LXJlc2N1ZS1yMVxcJyBlbHNlIHBoYXNlKSkucmVwbGFjZShcXCdfX1BVUlBPU0VfX1xcJyxyZXByKHBheWxvYWRbXFwncHVycG9zZV9jaGVja3NcXCddKSkucmVwbGFjZShcXCdfX1NOQVBTSE9UX19cXCcscmVwcihwYXlsb2FkLmdldChcXCdzbmFwc2hvdF9pZGVudGl0eVxcJykpKVxcbiAgcD1ydW4oW1xcJ2t1YmVjdGxcXCcsXFwnZXhlY1xcJyxcXCctaVxcJyxcXCctblxcJyxcXCdpbmZvcm1lZC1kZWNpc2lvblxcJyxwb2RbXFwnbWV0YWRhdGFcXCddW1xcJ25hbWVcXCddLFxcJy1jXFwnLFxcJ2luZm9ybWVkLWRlY2lzaW9uXFwnLFxcJy0tXFwnLFxcJ3B5dGhvblxcJyxcXCctXFwnXSxpbm5lciwxNTApXFxuICByZXF1aXJlKHAucmV0dXJuY29kZT09MCxcXCduYXRpdmUgcGhhc2Ugb3V0Y29tZSB1bnZlcmlmaWVkOyByYXcgb3V0cHV0IHdpdGhoZWxkLCBkbyBub3QgcmV0cnlcXCcpXFxuICBvdXRjb21lPWpzb24ubG9hZHMocC5zdGRvdXQpO3JlcXVpcmUob3V0Y29tZS5nZXQoXFwnYWxsX2NoZWNrc19wYXNzXFwnKSBpcyBUcnVlLFxcJ25hdGl2ZSBwaGFzZSBnYXRlIHJlZnVzZWRcXCcpXFxuICByZXN1bHQudXBkYXRlKG91dGNvbWUscG9kX25hbWU9cG9kW1xcJ21ldGFkYXRhXFwnXVtcXCduYW1lXFwnXSxwb2RfdWlkPXBvZFtcXCdtZXRhZGF0YVxcJ11bXFwndWlkXFwnXSlcXG4gaWYgcGhhc2UgaW4gKFxcJ3JlbGVhc2VcXCcsXFwncm9sbGJhY2tcXCcpOlxcbiAgbm9kZV9yZWFkPXJ1bihbXFwna3ViZWN0bFxcJyxcXCdnZXRcXCcsXFwnbm9kZXNcXCcsXFwnLW9cXCcsXFwnanNvblxcJ10pO3JlcXVpcmUobm9kZV9yZWFkLnJldHVybmNvZGU9PTAsXFwnbm9kZSBtZXRhZGF0YSB1bmF2YWlsYWJsZVxcJylcXG4gIG5vZGVzPWpzb24ubG9hZHMobm9kZV9yZWFkLnN0ZG91dClbXFwnaXRlbXNcXCddO3JlcXVpcmUobGVuKG5vZGVzKT09MSxcXCdvbmUgdGFyZ2V0IG5vZGUgcmVxdWlyZWRcXCcpO25vZGU9bm9kZXNbMF1cXG4gIHJlcXVpcmUoYW55KGEuZ2V0KFxcJ2FkZHJlc3NcXCcpPT1cXCc5Mi4yMDUuNjIuMjM5XFwnIGZvciBhIGluIG5vZGVbXFwnc3RhdHVzXFwnXVtcXCdhZGRyZXNzZXNcXCddKSxcXCd0YXJnZXQgbm9kZSBhZGRyZXNzIGNoYW5nZWRcXCcpXFxuICBjb25kaXRpb25zPXtjW1xcJ3R5cGVcXCddOmNbXFwnc3RhdHVzXFwnXSBmb3IgYyBpbiBub2RlW1xcJ3N0YXR1c1xcJ11bXFwnY29uZGl0aW9uc1xcJ119XFxuICByZXF1aXJlKGNvbmRpdGlvbnMuZ2V0KFxcJ1JlYWR5XFwnKT09XFwnVHJ1ZVxcJyBhbmQgYWxsKGNvbmRpdGlvbnMuZ2V0KGspPT1cXCdGYWxzZVxcJyBmb3IgayBpbiAoXFwnTWVtb3J5UHJlc3N1cmVcXCcsXFwnRGlza1ByZXNzdXJlXFwnLFxcJ1BJRFByZXNzdXJlXFwnKSksXFwnbm9kZSB1bmhlYWx0aHkgb3IgcHJlc3N1cmVkXFwnKVxcbiAgZGVzY3JpcHRpb249cnVuKFtcXCdrdWJlY3RsXFwnLFxcJ2Rlc2NyaWJlXFwnLFxcJ25vZGVcXCcsbm9kZVtcXCdtZXRhZGF0YVxcJ11bXFwnbmFtZVxcJ11dKTtyZXF1aXJlKGRlc2NyaXB0aW9uLnJldHVybmNvZGU9PTAsXFwnaGVhZHJvb20gY2FwdHVyZSB1bmF2YWlsYWJsZVxcJylcXG4gIHRhYmxlPWRlc2NyaXB0aW9uLnN0ZG91dC5zcGxpdChcXCdBbGxvY2F0ZWQgcmVzb3VyY2VzOlxcJywxKVsxXTtyZXF1ZXN0ZWQ9aW50KHJlLnNlYXJjaChyXFwnY3B1XFxcXHMrKFxcXFxkKyltXFwnLHRhYmxlKS5ncm91cCgxKSk7YWxsb2M9bm9kZVtcXCdzdGF0dXNcXCddW1xcJ2FsbG9jYXRhYmxlXFwnXVtcXCdjcHVcXCddO2NhcGFjaXR5PWludChhbGxvY1s6LTFdKSBpZiBhbGxvYy5lbmRzd2l0aChcXCdtXFwnKSBlbHNlIGludChhbGxvYykqMTAwMFxcbiAgcmVxdWlyZShyZXF1ZXN0ZWQ8PWNhcGFjaXR5LFxcJ1JlY3JlYXRlIHJlcXVlc3RlZCBDUFUgZXhjZWVkcyBjYXBhY2l0eVxcJylcXG4gIHJlcXVpcmUobm90IGFwcC5nZXQoXFwnb3BlcmF0aW9uXFwnKSBhbmQgYXBwLmdldChcXCdzdGF0dXNcXCcse30pLmdldChcXCdvcGVyYXRpb25TdGF0ZVxcJyx7fSkuZ2V0KFxcJ3BoYXNlXFwnKSBub3QgaW4gKFxcJ1J1bm5pbmdcXCcsXFwnVGVybWluYXRpbmdcXCcpLFxcJ2V4aXN0aW5nIEFyZ28gb3BlcmF0aW9uIG11c3QgYmUgc2V0dGxlZFxcJylcXG4gIGRlc3RpbmF0aW9uPXBheWxvYWRbXFwnc291cmNlX3JldmlzaW9uXFwnXSBpZiBwaGFzZT09XFwncmVsZWFzZVxcJyBlbHNlIFxcJzdkYjg0ODVmZmVjZGViZmFiZDc3YTlkYWVjMDg1NTUzYzc0YmYwYmZcXCdcXG4gIGJvZHk9Y29weS5kZWVwY29weShwYXlsb2FkW1xcJ2NhbmRpZGF0ZVxcJ10gaWYgcGhhc2U9PVxcJ3JlbGVhc2VcXCcgZWxzZSBwYXlsb2FkW1xcJ3JvbGxiYWNrXFwnXSlcXG4gIGRyeT1ydW4oW1xcJ2t1YmVjdGxcXCcsXFwnYXBwbHlcXCcsXFwnLS1kcnktcnVuPXNlcnZlclxcJyxcXCctZlxcJyxcXCctXFwnLFxcJy1vXFwnLFxcJ2pzb25cXCddLGpzb24uZHVtcHMoYm9keSkpXFxuICByZXF1aXJlKGRyeS5yZXR1cm5jb2RlPT0wLFxcJ2ZyZXNoIG93bmVyIHNlcnZlciBhZG1pc3Npb24gcmVmdXNlZFxcJylcXG4gIGFkbWl0dGVkPWpzb24ubG9hZHMoZHJ5LnN0ZG91dCk7d2FudGVkPWNvcHkuZGVlcGNvcHkoc2VhbGVkKVxcbiAgd2FudGVkW1xcJ3NwZWNcXCddW1xcJ3RlbXBsYXRlXFwnXVtcXCdzcGVjXFwnXVtcXCdjb250YWluZXJzXFwnXVswXVtcXCdpbWFnZVxcJ109Q0FORElEQVRFIGlmIHBoYXNlPT1cXCdyZWxlYXNlXFwnIGVsc2UgQkFTRVxcbiAgcmVxdWlyZShwcm9qZWN0aW9uKGFkbWl0dGVkKT09d2FudGVkLFxcJ2RyeS1ydW4gY2hhbmdlZCBhbnl0aGluZyBiZXlvbmQgZXhhY3QgaW1hZ2VcXCcpXFxuICBkaWZmPXJ1bihbXFwna3ViZWN0bFxcJyxcXCdkaWZmXFwnLFxcJy1mXFwnLFxcJy1cXCddLGpzb24uZHVtcHMoYm9keSkpO3JlcXVpcmUoZGlmZi5yZXR1cm5jb2RlIGluICgwLDEpLFxcJ2NsaWVudCBkaWZmIHVuYXZhaWxhYmxlXFwnKVxcbiAgb3BlcmF0aW9uPXtcXCdpbml0aWF0ZWRCeVxcJzp7XFwndXNlcm5hbWVcXCc6XFwnY3VzdG9kaWFuLWNvZGV4XFwnfSxcXCdzeW5jXFwnOntcXCdyZXZpc2lvblxcJzpkZXN0aW5hdGlvbixcXCdwcnVuZVxcJzpGYWxzZSxcXG4gICBcXCdyZXNvdXJjZXNcXCc6W3tcXCdncm91cFxcJzpcXCdhcHBzXFwnLFxcJ2tpbmRcXCc6XFwnRGVwbG95bWVudFxcJyxcXCduYW1lXFwnOlxcJ2luZm9ybWVkLWRlY2lzaW9uXFwnLFxcJ25hbWVzcGFjZVxcJzpcXCdpbmZvcm1lZC1kZWNpc2lvblxcJ31dfX1cXG4gIHBhdGNoPVt7XFwnb3BcXCc6XFwndGVzdFxcJyxcXCdwYXRoXFwnOlxcJy9tZXRhZGF0YS91aWRcXCcsXFwndmFsdWVcXCc6YXBwW1xcJ21ldGFkYXRhXFwnXVtcXCd1aWRcXCddfSxcXG4gICB7XFwnb3BcXCc6XFwndGVzdFxcJyxcXCdwYXRoXFwnOlxcJy9tZXRhZGF0YS9yZXNvdXJjZVZlcnNpb25cXCcsXFwndmFsdWVcXCc6YXBwW1xcJ21ldGFkYXRhXFwnXVtcXCdyZXNvdXJjZVZlcnNpb25cXCddfSxcXG4gICB7XFwnb3BcXCc6XFwndGVzdFxcJyxcXCdwYXRoXFwnOlxcJy9zcGVjL3NvdXJjZS90YXJnZXRSZXZpc2lvblxcJyxcXCd2YWx1ZVxcJzphcHBbXFwnc3BlY1xcJ11bXFwnc291cmNlXFwnXVtcXCd0YXJnZXRSZXZpc2lvblxcJ119LFxcbiAgIHtcXCdvcFxcJzpcXCdyZXBsYWNlXFwnLFxcJ3BhdGhcXCc6XFwnL3NwZWMvc291cmNlL3RhcmdldFJldmlzaW9uXFwnLFxcJ3ZhbHVlXFwnOmRlc3RpbmF0aW9ufSxcXG4gICB7XFwnb3BcXCc6XFwnYWRkXFwnLFxcJ3BhdGhcXCc6XFwnL29wZXJhdGlvblxcJyxcXCd2YWx1ZVxcJzpvcGVyYXRpb259XVxcbiAgYXJndj1bXFwna3ViZWN0bFxcJyxcXCdwYXRjaFxcJyxcXCdhcHBsaWNhdGlvblxcJyxcXCdpbmZvcm1lZC1kZWNpc2lvblxcJyxcXCctblxcJyxcXCdhcmdvY2RcXCcsXFwnLS10eXBlPWpzb25cXCcsXFwnLS1wYXRjaC1maWxlPS9kZXYvc3RkaW5cXCcsXFwnLW9cXCcsXFwnbmFtZVxcJ11cXG4gIHBhdGNoZHJ5PXJ1bihhcmd2K1tcXCctLWRyeS1ydW49c2VydmVyXFwnXSxqc29uLmR1bXBzKHBhdGNoKSk7cmVxdWlyZShwYXRjaGRyeS5yZXR1cm5jb2RlPT0wLFxcJ0FwcGxpY2F0aW9uIG9wZXJhdGlvbiBkcnktcnVuIHJlZnVzZWRcXCcpXFxuICBjaGFuZ2U9cnVuKGFyZ3YsanNvbi5kdW1wcyhwYXRjaCkpXFxuICByZXF1aXJlKGNoYW5nZS5yZXR1cm5jb2RlPT0wLFxcJ0FwcGxpY2F0aW9uIHBhdGNoIG91dGNvbWUgYW1iaWd1b3VzOyBkbyBub3QgcmV0cnlcXCcpXFxuICByZXN1bHQudXBkYXRlKGFsbF9jaGVja3NfcGFzcz1UcnVlLG9wZXJhdGlvbl9yZXF1ZXN0ZWQ9VHJ1ZSxzb3VyY2VfcmV2aXNpb249ZGVzdGluYXRpb24sXFxuICAgcmVzb3VyY2VzPW9wZXJhdGlvbltcXCdzeW5jXFwnXVtcXCdyZXNvdXJjZXNcXCddLHBydW5lPUZhbHNlLHJvbGxvdXRfdmVyaWZpZWQ9RmFsc2UsXFxuICAgbGF0ZXN0X2xpdmVfZGF0YWJhc2VfcmV0YWluZWQ9VHJ1ZSxjbGllbnRfZGlmZl9zaGEyNTY9aGFzaGxpYi5zaGEyNTYoZGlmZi5zdGRvdXQuZW5jb2RlKCkpLmhleGRpZ2VzdCgpKVxcbiBpZiBwaGFzZSBpbiAoXFwndmVyaWZ5XFwnLFxcJ3JvbGxiYWNrLXZlcmlmeVxcJyk6XFxuICBvcD1hcHAuZ2V0KFxcJ3N0YXR1c1xcJyx7fSkuZ2V0KFxcJ29wZXJhdGlvblN0YXRlXFwnLHt9KTtzeW5jPW9wLmdldChcXCdvcGVyYXRpb25cXCcse30pLmdldChcXCdzeW5jXFwnLHt9KVxcbiAgcmVxdWlyZShvcC5nZXQoXFwncGhhc2VcXCcpPT1cXCdTdWNjZWVkZWRcXCcgYW5kIHN5bmMuZ2V0KFxcJ3JldmlzaW9uXFwnKT09dGFyZ2V0IGFuZCBzeW5jLmdldChcXCdwcnVuZVxcJykgaXMgRmFsc2VcXG4gICBhbmQgc3luYy5nZXQoXFwncmVzb3VyY2VzXFwnKT09W3tcXCdncm91cFxcJzpcXCdhcHBzXFwnLFxcJ2tpbmRcXCc6XFwnRGVwbG95bWVudFxcJyxcXCduYW1lXFwnOlxcJ2luZm9ybWVkLWRlY2lzaW9uXFwnLFxcJ25hbWVzcGFjZVxcJzpcXCdpbmZvcm1lZC1kZWNpc2lvblxcJ31dLFxcJ2V4YWN0IG5hdGl2ZSBBcmdvIG9wZXJhdGlvbiBjb21wbGV0aW9uIHVudmVyaWZpZWRcXCcpXFxuICByZXF1aXJlKGxpdmVbXFwnc3RhdHVzXFwnXS5nZXQoXFwnb2JzZXJ2ZWRHZW5lcmF0aW9uXFwnKT09bGl2ZVtcXCdtZXRhZGF0YVxcJ11bXFwnZ2VuZXJhdGlvblxcJ10sXFwnY29udHJvbGxlciBnZW5lcmF0aW9uIG5vdCBzZXR0bGVkXFwnKVxcbiAgcmVzdWx0LnVwZGF0ZShuYXRpdmVfcm9sbG91dF92ZXJpZmllZD1UcnVlLGN1cnJlbnRfc2NoZW1hNV9kYXRhYmFzZV9yZXRhaW5lZD1UcnVlLHJlY292ZXJ5X3ZlcmlmaWNhdGlvbj1waGFzZT09XFwncm9sbGJhY2stdmVyaWZ5XFwnKVxcbmV4Y2VwdCBCYXNlRXhjZXB0aW9uIGFzIGVycm9yOlxcbiByZXN1bHQudXBkYXRlKGFsbF9jaGVja3NfcGFzcz1GYWxzZSxmYWlsdXJlX2NsYXNzPXR5cGUoZXJyb3IpLl9fbmFtZV9fLFxcbiAgZmFpbHVyZT1cXCdmaXhlZCBwaGFzZSBvdXRjb21lIHJlZnVzZWQgb3IgYW1iaWd1b3VzOyByYXcgb3V0cHV0IHdpdGhoZWxkOyBubyByZXRyeVxcJylcXG5wcmludChqc29uLmR1bXBzKHJlc3VsdCkpO3N5cy5leGl0KDAgaWYgcmVzdWx0LmdldChcXCdhbGxfY2hlY2tzX3Bhc3NcXCcpIGlzIFRydWUgZWxzZSAxKVxcbidcbiIKICAgIH0sCiAgICAicGFja2V0LXJlZmluZW1lbnQuanNvbiI6IHsKICAgICAgInNoYTI1NiI6ICIzMWI3MThhNDllZDQ3NTg2NWVkZWExYjJmNmQ3NDlhNTBhM2U2NmY1NmRiYzRmYTliNWZmMTE1OGFjYWVmNTYzIiwKICAgICAgImNvbnRlbnQiOiAie1xuICBcInByb3Bvc2FsX2lkXCI6IFwiSU5GRC1XUC0wMDA5LVQwNC9wdXJwb3NlLW92ZXJsYXktdjFcIixcbiAgXCJ0cmlhbF9pZFwiOiBcImluZmQtcHVycG9zZS0yMDI2MTAxMS1yMVwiLFxuICBcIm1lbW9fdmVyc2lvblwiOiAyLFxuICBcIm9yaWdpbmFsX2FwcHJvdmVkX3NvdXJjZVwiOiBcImJjNjQ5NGNkMWIyOTA3ODNlZjNhZWYwNzYzYmYyOGQxZGVhYmY0YjBcIixcbiAgXCJvcmlnaW5hbF9wYWNrZXRfYXJjaGl2ZVwiOiBcImluaXRpYWwtYXBwcm92ZWQtYmM2NDk0Y2RcIixcbiAgXCJvcmlnaW5hbF9hcHByb3ZlZF9zdWJtaXNzaW9uX2RpZ2VzdFwiOiBcInNoYTI1NjpmZDc4ZDQ4NjE3NDY3MGUxMmVmYjJmODEyYmFjMDJlNjhmMjk0ZTc3OTFiOTMwMmQwZDQ1OGMwNTMyNDBmNWE5XCIsXG4gIFwib3JpZ2luYWxfZmFpbGVkX2pvdXJuYWxfc2hhMjU2XCI6IFwiZDE4N2IwMmQ5OGQ2ZTk3NDI5ZmUyMGI0ZmJlMWQzMDlhNmM2YzRiNTUyMzJiNGFlMTNhYzM5ODczMDM5ZjFjMVwiLFxuICBcIm9yaWdpbmFsX29sZF91bmNlcnRhaW5fcmV0cnlcIjogZmFsc2UsXG4gIFwicmVzY3VlX3BoYXNlXCI6IFwiZHJpbGwtY29weS1yZXNjdWUtcjFcIixcbiAgXCJyZWZpbmVtZW50c1wiOiBbXG4gICAgXCJleHBsaWNpdGNsb3NlIGxpdmUgV0FMLWF3YXJlIGluc3BlY3RvclwiLFxuICAgIFwiaW1tdXRhYmxlIGZpeGVkIGhhc2gtYm91bmQgZnJvemVuIHNuYXBzaG90IGFsbG93aW5nIHJldGFpbmVkIHN0YWxlU0hNIG9ubHkgd2l0aCB6ZXJvV0FMXCIsXG4gICAgXCJuZXcgc2VwYXJhdGVseSBsaW5rZWQgam91cm5hbCBhbmQgZGlzdGluY3QgbmFtZWQgcmVzY3VlLWNvcHkgYXR0ZW1wdFwiLFxuICAgIFwicmVtYWluaW5nIHBoYXNlIGlucHV0IGV4cGxpY2l0bHkgcmVzY3VlZCByZXN1bHRcIlxuICBdLFxuICBcIm5ld19uYXRpdmVfYWN0aW9uc1wiOiBmYWxzZSxcbiAgXCJuZXdfZm91bmRlcl9hcHByb3ZhbFwiOiBmYWxzZVxufVxuIgogICAgfSwKICAgICJyZWNlaXB0X3NhZmV0eS5weSI6IHsKICAgICAgInNoYTI1NiI6ICI1YzU0MzczZjJkYzRiMDY0MDA4MjI1YzE4NmVmYjFkNWFmZGVlYzM2ZDE1MzUwYmRhMGExMmRlZDk3NjAyZDFiIiwKICAgICAgImNvbnRlbnQiOiAiXCJcIlwiT25seSBzdHJ1Y3R1cmFsIGNvdW50L2hhc2ggcmVjZWlwdHMgY2FuIGxlYXZlIHRoZSBwcml2YXRlIGV4ZWN1dGlvbiBwaGFzZS5cIlwiXCJcbmRlZiBjb3VudHModmFsdWUpOlxuICAgIGlmIChzZXQodmFsdWUpICE9IHsnc2NoZW1hX3ZlcnNpb24nLCAnbGlmZWN5Y2xlJywgJ291dGJveCcsICdzdWJtaXNzaW9ucycsICdpbnRlZ3JpdHknLFxuICAgICAgICAgICAgICAgICAgICAgICAncmVhZF9vbmx5X3ByZV9vcGVuJywgJ3N0b3JlX2NvbnN0cnVjdGVkJ31cbiAgICAgICAgICAgIG9yIHZhbHVlWydzY2hlbWFfdmVyc2lvbiddICE9IDUgb3IgdmFsdWVbJ2ludGVncml0eSddICE9ICdvaydcbiAgICAgICAgICAgIG9yIHZhbHVlWydyZWFkX29ubHlfcHJlX29wZW4nXSBpcyBub3QgVHJ1ZSBvciB2YWx1ZVsnc3RvcmVfY29uc3RydWN0ZWQnXSBpcyBub3QgRmFsc2VcbiAgICAgICAgICAgIG9yIHNldCh2YWx1ZVsnbGlmZWN5Y2xlJ10pICE9IHsncmVjb3JkcycsICdldmVudHMnLCAncGVuZGluZyd9XG4gICAgICAgICAgICBvciBub3Qgc2V0KHZhbHVlWydvdXRib3gnXSkgPD0geydwZW5kaW5nJywgJ2RlbGl2ZXJlZCcsICdibG9ja2VkJ31cbiAgICAgICAgICAgIG9yIG5vdCBzZXQodmFsdWVbJ3N1Ym1pc3Npb25zJ10pIDw9IHsncHJlcGFyZWQnLCAnaW5fZmxpZ2h0JywgJ2NvbmZpcm1lZCcsICd1bnJlc29sdmVkJ30pOlxuICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCdjb3VudC1vbmx5IHJlY2VpcHQgc2hhcGUvc3RhdGUgcmVmdXNlZDsgdmFsdWVzIHdpdGhoZWxkJylcbiAgICBmb3IgZ3JvdXAgaW4gKCdsaWZlY3ljbGUnLCAnb3V0Ym94JywgJ3N1Ym1pc3Npb25zJyk6XG4gICAgICAgIGlmIGFueSh0eXBlKG51bWJlcikgaXMgbm90IGludCBvciBudW1iZXIgPCAwIG9yIG51bWJlciA+IDEwKioxMlxuICAgICAgICAgICAgICAgZm9yIG51bWJlciBpbiB2YWx1ZVtncm91cF0udmFsdWVzKCkpOlxuICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcignY291bnQtb25seSByZWNlaXB0IHZhbHVlcyByZWZ1c2VkJylcbiAgICByZXR1cm4gdmFsdWVcbiIKICAgIH0sCiAgICAicm9vdC1hdXRob3JpdHktcmVjZWlwdC10ZW1wbGF0ZS5qc29uIjogewogICAgICAic2hhMjU2IjogImRiMjhkMDNlM2M0NmI0ZGU1MmRjNDA0YzkxMjA1NDQ4M2Y0YTJhYWE2YzRmNDc2Yjc4OTJjYWIyYTVmNDA4ZDQiLAogICAgICAiY29udGVudCI6ICJ7XG4gIFwicHJvcG9zYWxfaWRcIjogXCJJTkZELVdQLTAwMDktVDA0L3B1cnBvc2Utb3ZlcmxheS12MVwiLFxuICBcIm1lbW9faWRcIjogXCJpbmZkLTIwMjYxMDExLXB1cnBvc2Utb3ZlcmxheS1yMVwiLFxuICBcIm1lbW9fdmVyc2lvblwiOiAyLFxuICBcIm1lbW9fc2hhMjU2XCI6IG51bGwsXG4gIFwic291cmNlX3JldmlzaW9uXCI6IG51bGwsXG4gIFwiYWN0aXZhdGlvblwiOiBcIlBFTkRJTkdcIixcbiAgXCJhdXRob3JpdHlfbW9kZVwiOiBcIkFETUlOSVNURVJcIixcbiAgXCJ0YXJnZXRcIjogXCJyZWFsbTprdWJlcm5ldGVzL3JhaWxpYW5jZTAxL2luZm9ybWVkLWRlY2lzaW9uXCIsXG4gIFwidmVyaWZpY2F0aW9uX21ldGhvZFwiOiBcInJvb3QtZml4ZWQtb3JpZ2luLW5hdGl2ZS1yZWFkYmFja1wiLFxuICBcInJ1bnRpbWVfYXV0aGVudGljYXRlZF9ncmFudFwiOiBmYWxzZSxcbiAgXCJ2ZXJpZmllZF9hdFwiOiBudWxsLFxuICBcImFjY2VwdGVkX2F0XCI6IG51bGwsXG4gIFwicmV2aWV3X21lbW9faWRcIjogbnVsbCxcbiAgXCJhcHByb3ZhbF9pZFwiOiBudWxsLFxuICBcImRpc3Bvc2l0aW9uX2lkXCI6IG51bGwsXG4gIFwibmF0aXZlX291dGNvbWVfc2hhMjU2XCI6IG51bGwsXG4gIFwiZXhlY3V0b3JfcGxhbl9zaGEyNTZcIjogXCI0ZDU1MzBlNzQxOGY2MzhiMTBjY2ZmMGUwZDlhMDcyN2FkYzY0YTdmM2E0NTkwN2Y2ZGViNTczOWFkMmFkYzg1XCIsXG4gIFwib3V0Y29tZV9xdWVyeVwiOiBcIi9saWZlY3ljbGUvbWVtb3MvaW5mZC0yMDI2MTAxMS1wdXJwb3NlLW92ZXJsYXktcjEvb3V0Y29tZXM/dmVyc2lvbj0yXCIsXG4gIFwicmV2aWV3X21lbW9fdmVyc2lvblwiOiAxXG59XG4iCiAgICB9LAogICAgInRlc3RfZXhlY3V0aW9uLnB5IjogewogICAgICAic2hhMjU2IjogImIyNTA0NDEyODI1MTM4NjJlZWI5OTBiMThkMDFiYjFlYWZlNzg3YjkzNGQ2NzBhNzVhMmJmYWE5ZjVjZmI4OWMiLAogICAgICAiY29udGVudCI6ICJcIlwiXCJTeW50aGV0aWMgY3VzdG9keS90cmFuc3BvcnQgdGVzdHMuIE5vIG5hdGl2ZSBkYXRhLCBEb2NrZXIgb3IgY2x1c3RlciBhY3Rpb24uXCJcIlwiXG5pbXBvcnQgY29weVxuaW1wb3J0IGRhdGV0aW1lXG5pbXBvcnQgaW9cbmltcG9ydCBqc29uXG5pbXBvcnQgb3NcbmZyb20gcGF0aGxpYiBpbXBvcnQgUGF0aFxuaW1wb3J0IHN1YnByb2Nlc3NcbmltcG9ydCBzeXNcbmltcG9ydCB0ZW1wZmlsZVxuaW1wb3J0IHVuaXR0ZXN0XG5mcm9tIHVuaXR0ZXN0Lm1vY2sgaW1wb3J0IHBhdGNoXG5mcm9tIGNvbnRleHRsaWIgaW1wb3J0IHJlZGlyZWN0X3N0ZG91dFxuXG5pbXBvcnQgYWN0dWF0b3JcbmZyb20gYXV0aG9yaXR5X2pvdXJuYWwgaW1wb3J0IEpvdXJuYWwsIGF1dGhvcml0eVxuZnJvbSBuYXRpdmVfcHJvZ3JhbSBpbXBvcnQgUFJPR1JBTVxuZnJvbSByZWNlaXB0X3NhZmV0eSBpbXBvcnQgY291bnRzXG5cbkNBU0UgPSBQYXRoKCcvaG9tZS93b3JzY2gvaW5mb3JtZWQtZGVjaXNpb24vZG9jcy9ldmlkZW5jZS8yMDI2LTEwLTExLXB1cnBvc2UtaW1hZ2UtcmVsZWFzZScpXG5OT1cgPSBkYXRldGltZS5kYXRldGltZSgyMDI2LCAxMCwgMTEsIDIsIDAsIHR6aW5mbz1kYXRldGltZS50aW1lem9uZS51dGMpXG5SRVZJU0lPTiA9ICdlJyAqIDQwXG5DT1VOVCA9IHsnc2NoZW1hX3ZlcnNpb24nOiA1LCAnaW50ZWdyaXR5JzogJ29rJywgJ3JlYWRfb25seV9wcmVfb3Blbic6IFRydWUsICdzdG9yZV9jb25zdHJ1Y3RlZCc6IEZhbHNlLFxuICAgICAgICAgJ2xpZmVjeWNsZSc6IHsncmVjb3Jkcyc6IDMsICdldmVudHMnOiA4LCAncGVuZGluZyc6IDF9LFxuICAgICAgICAgJ291dGJveCc6IHsncGVuZGluZyc6IDIsICdkZWxpdmVyZWQnOiAxMH0sICdzdWJtaXNzaW9ucyc6IHsnY29uZmlybWVkJzogMSwgJ3VucmVzb2x2ZWQnOiAxfX1cblxuXG5kZWYgYWNjZXB0ZWQoKTpcbiAgICBhcHByb3ZhbCA9ICcxMTExMTExMS0xMTExLTQxMTEtODExMS0xMTExMTExMTExMTEnXG4gICAgcmV2aWV3ID0gJ3Jldmlldy0yMjIyMjIyMi0yMjIyLTQyMjItODIyMi0yMjIyMjIyMjIyMjInXG4gICAgZGlzcG9zaXRpb24gPSAnZGlzcC0zMzMzMzMzMy0zMzMzLTQzMzMtODMzMy0zMzMzMzMzMzMzMzMnXG4gICAgcmVjZWlwdCA9IHsncHJvcG9zYWxfaWQnOiAnSU5GRC1XUC0wMDA5LVQwNC9wdXJwb3NlLW92ZXJsYXktdjEnLFxuICAgICAgICAgICAgICAgJ21lbW9faWQnOiAnaW5mZC0yMDI2MTAxMS1wdXJwb3NlLW92ZXJsYXktcjEnLCAnbWVtb192ZXJzaW9uJzogMixcbiAgICAgICAgICAgICAgICdtZW1vX3NoYTI1Nic6ICdhJyAqIDY0LCAnc291cmNlX3JldmlzaW9uJzogUkVWSVNJT04sICdhY3RpdmF0aW9uJzogJ0FQUFJPVkVEJyxcbiAgICAgICAgICAgICAgICdhdXRob3JpdHlfbW9kZSc6ICdBRE1JTklTVEVSJywgJ3RhcmdldCc6ICdyZWFsbTprdWJlcm5ldGVzL3JhaWxpYW5jZTAxL2luZm9ybWVkLWRlY2lzaW9uJyxcbiAgICAgICAgICAgICAgICd2ZXJpZmljYXRpb25fbWV0aG9kJzogJ3Jvb3QtZml4ZWQtb3JpZ2luLW5hdGl2ZS1yZWFkYmFjaycsICdydW50aW1lX2F1dGhlbnRpY2F0ZWRfZ3JhbnQnOiBGYWxzZSwgJ291dGNvbWVfcXVlcnknOiAnL2xpZmVjeWNsZS9tZW1vcy9pbmZkLTIwMjYxMDExLXB1cnBvc2Utb3ZlcmxheS1yMS9vdXRjb21lcz92ZXJzaW9uPTInLFxuICAgICAgICAgICAgICAgJ3ZlcmlmaWVkX2F0JzogJzIwMjYtMTAtMTFUMDI6MDA6MDBaJywgJ2FjY2VwdGVkX2F0JzogJzIwMjYtMTAtMTFUMDE6NTk6MDBaJyxcbiAgICAgICAgICAgICAgICdyZXZpZXdfbWVtb19pZCc6IHJldmlldywgJ2FwcHJvdmFsX2lkJzogYXBwcm92YWwsICdkaXNwb3NpdGlvbl9pZCc6IGRpc3Bvc2l0aW9ufVxuICAgIG91dGNvbWUgPSB7J21lbW9faWQnOiByZWNlaXB0WydtZW1vX2lkJ10sICdyZXZpZXcnOiB7J21lbW9faWQnOiByZXZpZXcsICdzdGFsZSc6IEZhbHNlLCAnaW50YWtlX3N0YXRlJzogJ3JlYWR5J30sXG4gICAgICAgICAgICAgICAnZGlzcG9zaXRpb25zJzogW3snYXBwcm92YWxfaWQnOiBOb25lLCAnc3VibWlzc2lvbl9zdGF0ZSc6ICdjb25maXJtZWQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2Rpc3Bvc2l0aW9uJzogeyd2ZXJiJzogJ2FjY2VwdCcsICdtZW1vX3ZlcnNpb24nOiAxLCAnbWVtb19pZCc6IHJldmlldyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnYXBwcm92YWxfaWQnOiBhcHByb3ZhbCwgJ2lkJzogZGlzcG9zaXRpb24sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2FjdG9yJzogeydraW5kJzogJ3BlcnNvbicsICdzdWInOiAndWlkPXBsYXRmb3JtLXJvb3Qsb3U9cGVvcGxlLGRjPW5ldGtpbmdkb20sZGM9bG9jYWwnfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnYXQnOiByZWNlaXB0WydhY2NlcHRlZF9hdCddfX1dfVxuICAgIHJldHVybiByZWNlaXB0LCBvdXRjb21lXG5cblxuY2xhc3MgQXV0aG9yaXR5QW5kQ3VzdG9keSh1bml0dGVzdC5UZXN0Q2FzZSk6XG4gICAgZGVmIHRlc3RfZXhhY3RfbmVzdGVkX2ZvdW5kZXJfcmVjZWlwdF9ub3RfdG9wX2xldmVsX2FwcHJvdmFsKHNlbGYpOlxuICAgICAgICByZWNlaXB0LCBvdXRjb21lID0gYWNjZXB0ZWQoKVxuICAgICAgICByZXN1bHQgPSBhdXRob3JpdHkocmVjZWlwdCwgb3V0Y29tZSwgJ2EnICogNjQsIFJFVklTSU9OLCAnZHJpbGwtY29weS1yZXNjdWUtcjEnLCBOT1cpXG4gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmVzdWx0WydhcHByb3ZhbF9pZCddLCByZWNlaXB0WydhcHByb3ZhbF9pZCddKVxuXG4gICAgZGVmIHRlc3RfcGVuZGluZ19zdGFsZV93cm9uZ19hY3Rvcl92ZXJzaW9uX2FuZF9iaW5kaW5nX3JlZnVzZShzZWxmKTpcbiAgICAgICAgbXV0YXRpb25zID0gW2xhbWJkYSByLCBvOiByLnVwZGF0ZShhY3RpdmF0aW9uPSdQRU5ESU5HJyksXG4gICAgICAgICAgICAgICAgICAgICBsYW1iZGEgciwgbzogci51cGRhdGUobWVtb19zaGEyNTY9J2NoYW5nZWQnKSxcbiAgICAgICAgICAgICAgICAgICAgIGxhbWJkYSByLCBvOiByLnVwZGF0ZShzb3VyY2VfcmV2aXNpb249J2NoYW5nZWQnKSxcbiAgICAgICAgICAgICAgICAgICAgIGxhbWJkYSByLCBvOiByLnVwZGF0ZSh0YXJnZXQ9J290aGVyJyksXG4gICAgICAgICAgICAgICAgICAgICBsYW1iZGEgciwgbzogci51cGRhdGUodmVyaWZpZWRfYXQ9JzIwMjYtMTAtMTFUMDE6MDA6MDBaJyksXG4gICAgICAgICAgICAgICAgICAgICBsYW1iZGEgciwgbzogci51cGRhdGUodmVyaWZpY2F0aW9uX21ldGhvZD0nY2FsbGVyLWFzc2VydGVkJyksXG4gICAgICAgICAgICAgICAgICAgICBsYW1iZGEgciwgbzogci51cGRhdGUocnVudGltZV9hdXRoZW50aWNhdGVkX2dyYW50PVRydWUpLFxuICAgICAgICAgICAgICAgICAgICAgbGFtYmRhIHIsIG86IG9bJ3JldmlldyddLnVwZGF0ZShzdGFsZT1UcnVlKSxcbiAgICAgICAgICAgICAgICAgICAgIGxhbWJkYSByLCBvOiBvWydyZXZpZXcnXS51cGRhdGUoaW50YWtlX3N0YXRlPSdwZW5kaW5nJyksXG4gICAgICAgICAgICAgICAgICAgICBsYW1iZGEgciwgbzogb1snZGlzcG9zaXRpb25zJ11bMF0udXBkYXRlKHN1Ym1pc3Npb25fc3RhdGU9J3VucmVzb2x2ZWQnKSxcbiAgICAgICAgICAgICAgICAgICAgIGxhbWJkYSByLCBvOiBvWydkaXNwb3NpdGlvbnMnXVswXVsnZGlzcG9zaXRpb24nXS51cGRhdGUobWVtb192ZXJzaW9uPTMpLFxuICAgICAgICAgICAgICAgICAgICAgbGFtYmRhIHIsIG86IG9bJ2Rpc3Bvc2l0aW9ucyddWzBdWydkaXNwb3NpdGlvbiddLnVwZGF0ZShhY3Rvcj17J2tpbmQnOiAnYWdlbnQnLCAnc3ViJzogJ3BsYXRmb3JtLXJvb3QnfSksXG4gICAgICAgICAgICAgICAgICAgICBsYW1iZGEgciwgbzogb1snZGlzcG9zaXRpb25zJ10uYXBwZW5kKGNvcHkuZGVlcGNvcHkob1snZGlzcG9zaXRpb25zJ11bMF0pKV1cbiAgICAgICAgZm9yIG11dGF0ZSBpbiBtdXRhdGlvbnM6XG4gICAgICAgICAgICB3aXRoIHNlbGYuc3ViVGVzdChtdXRhdGU9bXV0YXRlKTpcbiAgICAgICAgICAgICAgICByLCBvID0gYWNjZXB0ZWQoKVxuICAgICAgICAgICAgICAgIG11dGF0ZShyLCBvKVxuICAgICAgICAgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvcik6XG4gICAgICAgICAgICAgICAgICAgIGF1dGhvcml0eShyLCBvLCAnYScgKiA2NCwgUkVWSVNJT04sICdyZWxlYXNlJywgTk9XKVxuXG4gICAgZGVmIHRlc3RfZXhwaXJlZF93aW5kb3dfYW5kX3Vua25vd25fcGhhc2VfcmVmdXNlKHNlbGYpOlxuICAgICAgICByLCBvID0gYWNjZXB0ZWQoKVxuICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IpOlxuICAgICAgICAgICAgYXV0aG9yaXR5KHIsIG8sICdhJyAqIDY0LCBSRVZJU0lPTiwgJ2FyYml0cmFyeScsIE5PVylcbiAgICAgICAgbGF0ZSA9IGRhdGV0aW1lLmRhdGV0aW1lKDIwMjYsIDEwLCAxMywgdHppbmZvPWRhdGV0aW1lLnRpbWV6b25lLnV0YylcbiAgICAgICAgclsndmVyaWZpZWRfYXQnXSA9IGxhdGUuaXNvZm9ybWF0KClcbiAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yKTpcbiAgICAgICAgICAgIGF1dGhvcml0eShyLCBvLCAnYScgKiA2NCwgUkVWSVNJT04sICdyb2xsYmFjaycsIGxhdGUpXG5cbiAgICBkZWYgdGVzdF9kdXJhYmxlX2ludGVudF9wcmVjZWRlc19kaXNwYXRjaF9hbmRfbmV2ZXJfcmV0cmllcyhzZWxmKTpcbiAgICAgICAgd2l0aCB0ZW1wZmlsZS5UZW1wb3JhcnlEaXJlY3RvcnkoKSBhcyBkaXJlY3Rvcnk6XG4gICAgICAgICAgICBwYXJlbnQgPSBQYXRoKGRpcmVjdG9yeSlcbiAgICAgICAgICAgIG9zLmNobW9kKHBhcmVudCwgMG83MDApXG4gICAgICAgICAgICBqb3VybmFsID0gSm91cm5hbChwYXJlbnQsIHsnY2FzZSc6ICdmaXh0dXJlJ30pXG4gICAgICAgICAgICBqb3VybmFsLnN0YXJ0KCdkcmlsbC1jb3B5LXJlc2N1ZS1yMScsIHsnYXBwcm92YWxfaWQnOiAnZml4dHVyZSd9KVxuICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChqc29uLmxvYWRzKGpvdXJuYWwucGF0aC5yZWFkX3RleHQoKSlbJ3BoYXNlcyddWydkcmlsbC1jb3B5LXJlc2N1ZS1yMSddWydzdGF0ZSddLCAnUlVOTklORycpXG4gICAgICAgICAgICBqb3VybmFsLmNsb3NlKCkgICMgc2ltdWxhdGVkIGNyYXNoIGJlZm9yZSByZXN1bHRcbiAgICAgICAgICAgIHJlY292ZXJlZCA9IEpvdXJuYWwocGFyZW50LCB7J2Nhc2UnOiAnZml4dHVyZSd9KVxuICAgICAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yKTpcbiAgICAgICAgICAgICAgICByZWNvdmVyZWQuc3RhcnQoJ2RyaWxsLWNvcHktcmVzY3VlLXIxJywge30pXG4gICAgICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IpOlxuICAgICAgICAgICAgICAgIHJlY292ZXJlZC5zdGFydCgnZHJpbGwtY29weS1yZXNjdWUtcjEnLCB7fSlcbiAgICAgICAgICAgIHJlY292ZXJlZC5jbG9zZSgpXG5cbiAgICBkZWYgdGVzdF9waGFzZV9vcmRlcl9hbmRfdW5jZXJ0YWluX3JlbGVhc2VfYWxsb3dzX29ubHlfZGlzdGluY3RfcmVjb3Zlcnkoc2VsZik6XG4gICAgICAgIHdpdGggdGVtcGZpbGUuVGVtcG9yYXJ5RGlyZWN0b3J5KCkgYXMgZGlyZWN0b3J5OlxuICAgICAgICAgICAgb3MuY2htb2QoZGlyZWN0b3J5LCAwbzcwMClcbiAgICAgICAgICAgIGogPSBKb3VybmFsKGRpcmVjdG9yeSwgeydjYXNlJzogJ2ZpeHR1cmUnfSlcbiAgICAgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvcik6XG4gICAgICAgICAgICAgICAgai5zdGFydCgncmVsZWFzZScsIHt9KVxuICAgICAgICAgICAgZm9yIHBoYXNlIGluIGFjdHVhdG9yLlBIQVNFU1s6NV06XG4gICAgICAgICAgICAgICAgai5zdGFydChwaGFzZSwge30pXG4gICAgICAgICAgICAgICAgai5maW5pc2gocGhhc2UsIHsnYWxsX2NoZWNrc19wYXNzJzogVHJ1ZX0pXG4gICAgICAgICAgICBqLnN0YXJ0KCdyZWxlYXNlJywge30pXG4gICAgICAgICAgICBqLmZpbmlzaCgncmVsZWFzZScsIHsnYWxsX2NoZWNrc19wYXNzJzogRmFsc2V9KVxuICAgICAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yKTpcbiAgICAgICAgICAgICAgICBqLnN0YXJ0KCdyZWxlYXNlJywge30pXG4gICAgICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IpOlxuICAgICAgICAgICAgICAgIGouc3RhcnQoJ3ZlcmlmeScsIHt9KVxuICAgICAgICAgICAgai5zdGFydCgncm9sbGJhY2snLCB7fSlcbiAgICAgICAgICAgIGouZmluaXNoKCdyb2xsYmFjaycsIHsnYWxsX2NoZWNrc19wYXNzJzogVHJ1ZX0pXG4gICAgICAgICAgICBqLmNsb3NlKClcblxuICAgIGRlZiB0ZXN0X3NlY3JldF9vcl91bmtub3duX2NoaWxkX291dHB1dF9pc193aXRoaGVsZChzZWxmKTpcbiAgICAgICAgZm9yIGJvZHkgaW4gKCdub3QtanNvbicsICd7XCJhbGxfY2hlY2tzX3Bhc3NcIjp0cnVlLFwidG9rZW5cIjpcInByaXZhdGUtdmFsdWVcIn0nLFxuICAgICAgICAgICAgICAgICAgICAgJ3tcImFsbF9jaGVja3NfcGFzc1wiOnRydWUsXCJzbmFwc2hvdF9yZWFkb25seVwiOntcInNjaGVtYV92ZXJzaW9uXCI6NX19Jyk6XG4gICAgICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IpOlxuICAgICAgICAgICAgICAgIGFjdHVhdG9yLmpzb25fcmVzdWx0KHN1YnByb2Nlc3MuQ29tcGxldGVkUHJvY2VzcyhbXSwgMCwgYm9keSwgJycpKVxuICAgICAgICB3cm9uZyA9IGNvcHkuZGVlcGNvcHkoQ09VTlQpXG4gICAgICAgIHdyb25nWydvdXRib3gnXSA9IHsncHJpdmF0ZS1yb3ctdmFsdWUnOiAxfVxuICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IpOlxuICAgICAgICAgICAgY291bnRzKHdyb25nKVxuICAgICAgICBjb3VudHMoQ09VTlQpICAjIGJsb2NrZWQvdW5yZXNvbHZlZCBjb3VudHMgYXJlIG5vdCByZXF1aXJlZCB0byBiZSB6ZXJvLlxuXG4gICAgZGVmIHRlc3RfYmluYXJ5X2NvcHlfaXNfYm91bmRlZF9wcml2YXRlX2FuZF9uZXZlcl9lY2hvZWQoc2VsZik6XG4gICAgICAgIGJsb2IgPSBiJ3N5bnRoZXRpYyBwcml2YXRlIGZpeHR1cmUgYnl0ZXMnXG4gICAgICAgIGRpZ2VzdCA9IF9faW1wb3J0X18oJ2hhc2hsaWInKS5zaGEyNTYoYmxvYikuaGV4ZGlnZXN0KClcbiAgICAgICAgbWV0YWRhdGEgPSB7J2FsbF9jaGVja3NfcGFzcyc6IFRydWUsICdzbmFwc2hvdF9maWxlJzogJ2RyaWxsLnNxbGl0ZScsICdzbmFwc2hvdF9ieXRlcyc6IGxlbihibG9iKSxcbiAgICAgICAgICAgICAgICAgICAgJ3NuYXBzaG90X3NoYTI1Nic6IGRpZ2VzdCwgJ3NuYXBzaG90X3JlYWRvbmx5JzogQ09VTlQsXG4gICAgICAgICAgICAgICAgICAgICdwb2RfbmFtZSc6ICdmaXh0dXJlLXBvZCcsICdwb2RfdWlkJzogJ2ZpeHR1cmUtdWlkJ31cbiAgICAgICAgam91cm5hbCA9IHR5cGUoJ0ZpeHR1cmVKb3VybmFsJywgKCksIHsnZGF0YSc6IHsnaWRlbnRpdHknOiB7J3JlY292ZXJ5X2FuY2hvcic6IHsnYmFja3VwX3Jlc3VsdCc6IG1ldGFkYXRhfX19fSkoKVxuICAgICAgICByZWFsX3BvcGVuID0gc3VicHJvY2Vzcy5Qb3BlblxuICAgICAgICBmb3IgZXh0cmEgaW4gKGInJywgYidvdmVyc2l6ZWQnKTpcbiAgICAgICAgICAgIHdpdGggc2VsZi5zdWJUZXN0KGV4dHJhPWV4dHJhKSwgdGVtcGZpbGUuVGVtcG9yYXJ5RGlyZWN0b3J5KCkgYXMgZm9sZGVyOlxuICAgICAgICAgICAgICAgIG9zLmNobW9kKGZvbGRlciwgMG83MDApXG4gICAgICAgICAgICAgICAgb3V0cHV0ID0gaW8uU3RyaW5nSU8oKVxuXG4gICAgICAgICAgICAgICAgZGVmIGNoaWxkKCphcmdzLCAqKmt3YXJncyk6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiByZWFsX3BvcGVuKFtzeXMuZXhlY3V0YWJsZSwgJy1jJywgJ2ltcG9ydCBzeXM7c3lzLnN0ZG91dC5idWZmZXIud3JpdGUoJyArIHJlcHIoYmxvYiArIGV4dHJhKSArICcpJ10sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUsIHN0ZGVycj1zdWJwcm9jZXNzLkRFVk5VTEwpXG5cbiAgICAgICAgICAgICAgICB3aXRoIHBhdGNoLm9iamVjdChhY3R1YXRvciwgJ0NVU1RPRFknLCBQYXRoKGZvbGRlcikpLCBwYXRjaC5vYmplY3QoYWN0dWF0b3IsICdyZW1vdGUnLCByZXR1cm5fdmFsdWU9bWV0YWRhdGEpLCBcXFxuICAgICAgICAgICAgICAgICAgICAgICAgcGF0Y2goJ3N1YnByb2Nlc3MuUG9wZW4nLCBzaWRlX2VmZmVjdD1jaGlsZCksIHJlZGlyZWN0X3N0ZG91dChvdXRwdXQpOlxuICAgICAgICAgICAgICAgICAgICBpZiBleHRyYTpcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvcik6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYWN0dWF0b3IuY29weV9zbmFwc2hvdCgnZHJpbGwtY29weS1yZXNjdWUtcjEnLCBSRVZJU0lPTiwge30sIGpvdXJuYWwpXG4gICAgICAgICAgICAgICAgICAgIGVsc2U6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSBhY3R1YXRvci5jb3B5X3NuYXBzaG90KCdkcmlsbC1jb3B5LXJlc2N1ZS1yMScsIFJFVklTSU9OLCB7fSwgam91cm5hbClcbiAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShyZXN1bHRbJ29mZl9jbHVzdGVyX3ByaXZhdGVfY29weV92ZXJpZmllZCddKVxuICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgoUGF0aChmb2xkZXIpIC8gJ2RyaWxsLnNxbGl0ZScpLnJlYWRfYnl0ZXMoKSwgYmxvYilcbiAgICAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG91dHB1dC5nZXR2YWx1ZSgpLCAnJylcbiAgICAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKChQYXRoKGZvbGRlcikgLyAnZHJpbGwuc3FsaXRlJykuc3RhdCgpLnN0X21vZGUgJiAwbzc3NywgMG82MDApXG5cbiAgICBkZWYgdGVzdF9yZWNyZWF0ZWRfb2ZmbGluZV92b2x1bWVfY2Fubm90X2JlX2RlbGV0ZWQoc2VsZik6XG4gICAgICAgIGlkZW50aXR5ID0geydOYW1lJzogYWN0dWF0b3IuVk9MVU1FLCAnTGFiZWxzJzogeydub25jZSc6ICdvbGQnfSwgJ0NyZWF0ZWRBdCc6ICdvbGQnfVxuICAgICAgICBqb3VybmFsID0gdHlwZSgnRml4dHVyZUpvdXJuYWwnLCAoKSwgeydkYXRhJzogeydwaGFzZXMnOiB7XG4gICAgICAgICAgICAnb2ZmbGluZS12ZXJpZnknOiB7J3Jlc3VsdCc6IHsnY3JlYXRlZF92b2x1bWVfaWRlbnRpdHknOiBpZGVudGl0eX19fX19KSgpXG4gICAgICAgIGluc3BlY3RlZCA9IFt7KippZGVudGl0eSwgJ0NyZWF0ZWRBdCc6ICdyZWNyZWF0ZWQnfV1cbiAgICAgICAgd2l0aCBwYXRjaC5vYmplY3QoYWN0dWF0b3IsICdkb2NrZXInLCByZXR1cm5fdmFsdWU9c3VicHJvY2Vzcy5Db21wbGV0ZWRQcm9jZXNzKFtdLCAwLCBqc29uLmR1bXBzKGluc3BlY3RlZCksICcnKSkgYXMgbW9ja2VkOlxuICAgICAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yKTpcbiAgICAgICAgICAgICAgICBhY3R1YXRvci5jbGVhbnVwX29mZmxpbmUoam91cm5hbClcbiAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobW9ja2VkLmNhbGxfY291bnQsIDEpXG5cbiAgICBkZWYgdGVzdF9vZmZsaW5lX3Bvc3RfYWRtaW5faW50ZWdyaXR5X2FuZF9vcmlnaW5hbF9oYXNoX2FyZV9yZWNoZWNrZWQoc2VsZik6XG4gICAgICAgIGZvciBkZWZlY3QgaW4gKCdub25lJywgJ3Bvc3QtaW50ZWdyaXR5JywgJ29yaWdpbmFsLWhhc2gnKTpcbiAgICAgICAgICAgIHdpdGggc2VsZi5zdWJUZXN0KGRlZmVjdD1kZWZlY3QpLCB0ZW1wZmlsZS5UZW1wb3JhcnlEaXJlY3RvcnkoKSBhcyBkaXJlY3Rvcnk6XG4gICAgICAgICAgICAgICAgZm9sZGVyPVBhdGgoZGlyZWN0b3J5KTtvcy5jaG1vZChmb2xkZXIsMG83MDApXG4gICAgICAgICAgICAgICAgc25hcHNob3Q9Zm9sZGVyLydkcmlsbC5zcWxpdGUnO3NuYXBzaG90LndyaXRlX2J5dGVzKGIncHJpdmF0ZSBzeW50aGV0aWMgc25hcHNob3QnKTtvcy5jaG1vZChzbmFwc2hvdCwwbzYwMClcbiAgICAgICAgICAgICAgICBkaWdlc3Q9YWN0dWF0b3Iuc2hhKHNuYXBzaG90KVxuICAgICAgICAgICAgICAgIHByaW9yPXsnc25hcHNob3Rfc2hhMjU2JzpkaWdlc3QsJ3NuYXBzaG90X3JlYWRvbmx5JzpDT1VOVH1cbiAgICAgICAgICAgICAgICBqb3VybmFsPXR5cGUoJ0ZpeHR1cmVKb3VybmFsJywoKSx7J2RhdGEnOnsncGhhc2VzJzp7J2RyaWxsLWNvcHktcmVzY3VlLXIxJzp7J3Jlc3VsdCc6cHJpb3J9LCdvZmZsaW5lLXZlcmlmeSc6eydhdHRlbXB0X2lkJzonbm9uY2UnfX19LCdub3RlJzpsYW1iZGEgKmFyZ3M6Tm9uZX0pKClcbiAgICAgICAgICAgICAgICByZWFkcz1bXVxuICAgICAgICAgICAgICAgIHZvbHVtZT17J05hbWUnOmFjdHVhdG9yLlZPTFVNRSwnTGFiZWxzJzp7J2luZm9ybWVkLWRlY2lzaW9uLmNhc2UnOidpbmZkLXB1cnBvc2UtMjAyNjEwMTEtcjEnLCdpbmZvcm1lZC1kZWNpc2lvbi51c2UnOidvZmZsaW5lLXJlc3RvcmUtb25seScsJ2luZm9ybWVkLWRlY2lzaW9uLmF0dGVtcHQnOidub25jZSd9LCdEcml2ZXInOidsb2NhbCcsJ1Njb3BlJzonbG9jYWwnLCdDcmVhdGVkQXQnOidmaXh0dXJlJywnT3B0aW9ucyc6Tm9uZX1cbiAgICAgICAgICAgICAgICBkZWYgZG9ja2VyKGFyZ3YsIGJvZHk9Tm9uZSwgKiprd2FyZ3MpOlxuICAgICAgICAgICAgICAgICAgICBpZiBhcmd2WzBdPT0naW5mbyc6Ym9keT1qc29uLmR1bXBzKCdibnQtbGFwMDAxJylcbiAgICAgICAgICAgICAgICAgICAgZWxpZiBhcmd2WzoyXT09Wyd2b2x1bWUnLCdscyddOmJvZHk9JydcbiAgICAgICAgICAgICAgICAgICAgZWxpZiBhcmd2WzoyXT09Wyd2b2x1bWUnLCdjcmVhdGUnXTpib2R5PWFjdHVhdG9yLlZPTFVNRVxuICAgICAgICAgICAgICAgICAgICBlbGlmIGFyZ3ZbOjJdPT1bJ3ZvbHVtZScsJ2luc3BlY3QnXTpib2R5PWpzb24uZHVtcHMoW3ZvbHVtZV0pXG4gICAgICAgICAgICAgICAgICAgIGVsaWYgJ2luZm9ybWVkLWRlY2lzaW9uLWFkbWluJyBpbiBhcmd2OlxuICAgICAgICAgICAgICAgICAgICAgICAgYm9keT1qc29uLmR1bXBzKHtrZXk6Q09VTlRba2V5XSBmb3Iga2V5IGluICgnc2NoZW1hX3ZlcnNpb24nLCdsaWZlY3ljbGUnLCdvdXRib3gnLCdzdWJtaXNzaW9ucycpfSlcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIGRlZmVjdD09J29yaWdpbmFsLWhhc2gnOnNuYXBzaG90LndyaXRlX2J5dGVzKGInY2hhbmdlZCBzeW50aGV0aWMgb3JpZ2luYWwnKVxuICAgICAgICAgICAgICAgICAgICBlbGlmICctLWVudHJ5cG9pbnQnIGluIGFyZ3YgYW5kICdweXRob24nIGluIGFyZ3Y6XG4gICAgICAgICAgICAgICAgICAgICAgICByZWFkcy5hcHBlbmQoYXJndik7cHJvb2Y9Y29weS5kZWVwY29weShDT1VOVClcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIGxlbihyZWFkcyk9PTIgYW5kIGRlZmVjdD09J3Bvc3QtaW50ZWdyaXR5Jzpwcm9vZlsnaW50ZWdyaXR5J109J2NvcnJ1cHQnXG4gICAgICAgICAgICAgICAgICAgICAgICBib2R5PWpzb24uZHVtcHMocHJvb2YpXG4gICAgICAgICAgICAgICAgICAgIGVsc2U6cmFpc2UgQXNzZXJ0aW9uRXJyb3IoJ3VuZXhwZWN0ZWQgb2ZmbGluZSBjb21tYW5kJylcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHN1YnByb2Nlc3MuQ29tcGxldGVkUHJvY2Vzcyhhcmd2LDAsYm9keSwnJylcbiAgICAgICAgICAgICAgICB3aXRoIHBhdGNoLm9iamVjdChhY3R1YXRvciwnQ1VTVE9EWScsZm9sZGVyKSxwYXRjaC5vYmplY3QoYWN0dWF0b3IsJ0NBU0UnLENBU0UpLHBhdGNoLm9iamVjdChhY3R1YXRvciwnZG9ja2VyJyxzaWRlX2VmZmVjdD1kb2NrZXIpLHBhdGNoKCdzdWJwcm9jZXNzLnJ1bicscmV0dXJuX3ZhbHVlPXN1YnByb2Nlc3MuQ29tcGxldGVkUHJvY2VzcyhbXSwwLCd7XCJhbGxfY2hlY2tzX3Bhc3NcIjp0cnVlLFwicHJpdmF0ZV9jb3B5X3ZlcmlmaWVkXCI6dHJ1ZX0nLCcnKSk6XG4gICAgICAgICAgICAgICAgICAgIGlmIGRlZmVjdD09J25vbmUnOlxuICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0PWFjdHVhdG9yLm9mZmxpbmVfdmVyaWZ5KGpvdXJuYWwpXG4gICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJlc3VsdFsnb2ZmbGluZV9wb3N0X2FkbWluX3JlYWRvbmx5J10sQ09VTlQpXG4gICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmFzc2VydFRydWUocmVzdWx0WydvcmlnaW5hbF9zbmFwc2hvdF9oYXNoX3VuY2hhbmdlZCddKVxuICAgICAgICAgICAgICAgICAgICBlbHNlOlxuICAgICAgICAgICAgICAgICAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yKTphY3R1YXRvci5vZmZsaW5lX3ZlcmlmeShqb3VybmFsKVxuICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKHJlYWRzKSwyKVxuXG5cbmNsYXNzIEZpeGVkTmF0aXZlUHJvZ3JhbSh1bml0dGVzdC5UZXN0Q2FzZSk6XG4gICAgZGVmIGZpeHR1cmUoc2VsZik6XG4gICAgICAgIHNlYWxlZCA9IGpzb24ubG9hZHMoKENBU0UgLyAnc2VhbGVkLWxpdmUtZGVwbG95bWVudC5qc29uJykucmVhZF90ZXh0KCkpXG4gICAgICAgIGxpdmUgPSBjb3B5LmRlZXBjb3B5KHNlYWxlZClcbiAgICAgICAgbGl2ZVsnbWV0YWRhdGEnXS51cGRhdGUoZ2VuZXJhdGlvbj00MilcbiAgICAgICAgbGl2ZVsnc3RhdHVzJ10gPSB7J3JlYWR5UmVwbGljYXMnOiAxLCAndXBkYXRlZFJlcGxpY2FzJzogMSwgJ29ic2VydmVkR2VuZXJhdGlvbic6IDQyfVxuICAgICAgICBkZXBlbmRlbmNpZXMgPSBqc29uLmxvYWRzKChDQVNFIC8gJ3NlYWxlZC1uYXRpdmUtZGVwZW5kZW5jaWVzLmpzb24nKS5yZWFkX3RleHQoKSlcbiAgICAgICAgY20gPSBjb3B5LmRlZXBjb3B5KGRlcGVuZGVuY2llc1snY29uZmlnbWFwJ10pXG4gICAgICAgIGNtLnBvcCgnY2Fub25pY2FsX2RhdGFfc2hhMjU2JylcbiAgICAgICAgc2VydmljZSA9IGpzb24ubG9hZHMoKENBU0UgLyAnY2FuZGlkYXRlLWRlcGxveW1lbnQuanNvbicpLnJlYWRfdGV4dCgpKVxuICAgICAgICBzb3VyY2Vfc2VydmljZSA9IGpzb24ubG9hZHMoKENBU0UucGFyZW50c1syXSAvICdkZXBsb3kvbGlmZWN5Y2xlL3NlcnZpY2UuY2FuZGlkYXRlLmpzb24nKS5yZWFkX3RleHQoKSlcbiAgICAgICAgY21bJ2RhdGEnXSA9IG5leHQoeCBmb3IgeCBpbiBzb3VyY2Vfc2VydmljZVsnaXRlbXMnXSBpZiB4WydraW5kJ10gPT0gJ0NvbmZpZ01hcCcpWydkYXRhJ11cbiAgICAgICAgcHZjID0gY29weS5kZWVwY29weShkZXBlbmRlbmNpZXNbJ3B2YyddKVxuICAgICAgICBwdmNbJ3N0YXR1cyddID0geydwaGFzZSc6ICdCb3VuZCd9XG4gICAgICAgIGFwcCA9IHsnbWV0YWRhdGEnOiB7J3VpZCc6ICc0OTk4NjhmMi1lYWJjLTRkZjQtYWUzMS1iODljZTU4ZDc1MGQnLCAncmVzb3VyY2VWZXJzaW9uJzogJzE3J30sXG4gICAgICAgICAgICAgICAnc3BlYyc6IHsnc291cmNlJzogeydyZXBvVVJMJzogJ2h0dHBzOi8vZm9yZ2Vqby5jb3Vsb21iLnNvY2lhbC9jb3Vsb21iL2luZm9ybWVkLWRlY2lzaW9uLmdpdCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdwYXRoJzogJ2RlcGxveS9saWZlY3ljbGUnLCAndGFyZ2V0UmV2aXNpb24nOiAnN2RiODQ4NWZmZWNkZWJmYWJkNzdhOWRhZWMwODU1NTNjNzRiZjBiZid9LFxuICAgICAgICAgICAgICAgICAgICAgICAgJ2Rlc3RpbmF0aW9uJzogeyduYW1lc3BhY2UnOiAnaW5mb3JtZWQtZGVjaXNpb24nLCAnc2VydmVyJzogJ2h0dHBzOi8va3ViZXJuZXRlcy5kZWZhdWx0LnN2Yyd9fX1cbiAgICAgICAgb2JqZWN0cyA9IHsnZGVwbG95bWVudCc6IGxpdmUsICdjb25maWdtYXAnOiBjbSwgJ3B2Yyc6IHB2YywgJ2FwcGxpY2F0aW9uJzogYXBwfVxuICAgICAgICBwYXlsb2FkID0geydwaGFzZSc6ICdyZWxlYXNlJywgJ3NvdXJjZV9yZXZpc2lvbic6IFJFVklTSU9OLCAnYXBwcm92YWwnOiB7fSwgJ3NlYWxlZCc6IHNlYWxlZCxcbiAgICAgICAgICAgICAgICAgICAnZGVwZW5kZW5jaWVzJzogZGVwZW5kZW5jaWVzLCAnY2FuZGlkYXRlJzogc2VydmljZSxcbiAgICAgICAgICAgICAgICAgICAncm9sbGJhY2snOiBqc29uLmxvYWRzKChDQVNFIC8gJ3JvbGxiYWNrLWRlcGxveW1lbnQuanNvbicpLnJlYWRfdGV4dCgpKSxcbiAgICAgICAgICAgICAgICAgICAncmVhZG9ubHknOiAoQ0FTRSAvICdzcWxpdGVfcmVhZG9ubHkucHknKS5yZWFkX3RleHQoKSwncHVycG9zZV9jaGVja3MnOihDQVNFLydjaGVja19pbnN0YWxsZWQucHknKS5yZWFkX3RleHQoKSxcbiAgICAgICAgICAgICAgICAgICAncmVjZWlwdF9zYWZldHknOiAoUGF0aChfX2ZpbGVfXykucGFyZW50IC8gJ3JlY2VpcHRfc2FmZXR5LnB5JykucmVhZF90ZXh0KCl9XG4gICAgICAgIHJldHVybiBvYmplY3RzLCBwYXlsb2FkXG5cbiAgICBkZWYgZXhlY3V0ZV9mYWtlKHNlbGYsIG9iamVjdHMsIHBheWxvYWQsIGFtYmlndW91cz1GYWxzZSwgc2NoZW1hX3JlZnVzZWQ9RmFsc2UpOlxuICAgICAgICB3cml0ZXMgPSBbXVxuICAgICAgICBjYWxscyA9IFtdXG5cbiAgICAgICAgZGVmIGZha2UoYXJndiwgaW5wdXQ9Tm9uZSwgKiprd2FyZ3MpOlxuICAgICAgICAgICAgY2FsbHMuYXBwZW5kKGFyZ3YpXG4gICAgICAgICAgICBpZiBhcmd2WzoyXSA9PSBbJ2t1YmVjdGwnLCAnZ2V0J106XG4gICAgICAgICAgICAgICAga2luZCA9IGFyZ3ZbMl1cbiAgICAgICAgICAgICAgICBpZiBraW5kIGluIG9iamVjdHM6XG4gICAgICAgICAgICAgICAgICAgIGJvZHkgPSBvYmplY3RzW2tpbmRdXG4gICAgICAgICAgICAgICAgZWxpZiBraW5kID09ICdwb2RzJzpcbiAgICAgICAgICAgICAgICAgICAgYm9keSA9IHsnaXRlbXMnOiBbeydtZXRhZGF0YSc6IHsnbmFtZSc6ICdmaXh0dXJlLXBvZCcsICd1aWQnOiAncG9kLXVpZCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnb3duZXJSZWZlcmVuY2VzJzogW3sna2luZCc6ICdSZXBsaWNhU2V0JywgJ25hbWUnOiAnZml4dHVyZS1ycycsICd1aWQnOiAncnMtdWlkJ31dfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3NwZWMnOiBvYmplY3RzWydkZXBsb3ltZW50J11bJ3NwZWMnXVsndGVtcGxhdGUnXVsnc3BlYyddLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnc3RhdHVzJzogeydwaGFzZSc6ICdSdW5uaW5nJywgJ2NvbnRhaW5lclN0YXR1c2VzJzogW3snbmFtZSc6J2luZm9ybWVkLWRlY2lzaW9uJywncmVhZHknOiBUcnVlfV19fV19XG4gICAgICAgICAgICAgICAgZWxpZiBraW5kID09ICdyZXBsaWNhc2V0JzpcbiAgICAgICAgICAgICAgICAgICAgYm9keSA9IHsnbWV0YWRhdGEnOiB7J3VpZCc6ICdycy11aWQnLCAnb3duZXJSZWZlcmVuY2VzJzogW1xuICAgICAgICAgICAgICAgICAgICAgICAgeydraW5kJzogJ0RlcGxveW1lbnQnLCAndWlkJzogcGF5bG9hZFsnc2VhbGVkJ11bJ21ldGFkYXRhJ11bJ3VpZCddfV19fVxuICAgICAgICAgICAgICAgIGVsaWYga2luZCA9PSAnbm9kZXMnOlxuICAgICAgICAgICAgICAgICAgICBib2R5ID0geydpdGVtcyc6IFt7J21ldGFkYXRhJzogeyduYW1lJzogJ2ZpeHR1cmUtbm9kZSd9LCAnc3RhdHVzJzoge1xuICAgICAgICAgICAgICAgICAgICAgICAgJ2FkZHJlc3Nlcyc6IFt7J2FkZHJlc3MnOiAnOTIuMjA1LjYyLjIzOSd9XSwgJ2FsbG9jYXRhYmxlJzogeydjcHUnOiAnNCd9LFxuICAgICAgICAgICAgICAgICAgICAgICAgJ2NvbmRpdGlvbnMnOiBbeyd0eXBlJzoga2V5LCAnc3RhdHVzJzogJ1RydWUnIGlmIGtleSA9PSAnUmVhZHknIGVsc2UgJ0ZhbHNlJ31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciBrZXkgaW4gKCdSZWFkeScsICdNZW1vcnlQcmVzc3VyZScsICdEaXNrUHJlc3N1cmUnLCAnUElEUHJlc3N1cmUnKV19fV19XG4gICAgICAgICAgICAgICAgZWxzZTpcbiAgICAgICAgICAgICAgICAgICAgcmFpc2UgQXNzZXJ0aW9uRXJyb3IoJ3VuZXhwZWN0ZWQgZml4ZWQgbWV0YWRhdGEgcm91dGUnKVxuICAgICAgICAgICAgICAgIHJldHVybiBzdWJwcm9jZXNzLkNvbXBsZXRlZFByb2Nlc3MoYXJndiwgMCwganNvbi5kdW1wcyhib2R5KSwgJycpXG4gICAgICAgICAgICBpZiBhcmd2WzoyXSA9PSBbJ2t1YmVjdGwnLCAnZXhlYyddOlxuICAgICAgICAgICAgICAgIGlmIHNjaGVtYV9yZWZ1c2VkOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gc3VicHJvY2Vzcy5Db21wbGV0ZWRQcm9jZXNzKGFyZ3YsIDEsICcnLCAnd2l0aGhlbGQnKVxuICAgICAgICAgICAgICAgIHJldHVybiBzdWJwcm9jZXNzLkNvbXBsZXRlZFByb2Nlc3MoYXJndiwgMCwganNvbi5kdW1wcyh7XG4gICAgICAgICAgICAgICAgICAgICdhbGxfY2hlY2tzX3Bhc3MnOiBUcnVlLCAnbGl2ZV9yZWFkb25seV9zY2hlbWFfaW50ZWdyaXR5X2NvdW50cyc6IENPVU5UfSksICcnKVxuICAgICAgICAgICAgaWYgYXJndls6Ml0gPT0gWydrdWJlY3RsJywgJ2FwcGx5J106XG4gICAgICAgICAgICAgICAgYWRtaXR0ZWQgPSBjb3B5LmRlZXBjb3B5KHBheWxvYWRbJ3NlYWxlZCddKVxuICAgICAgICAgICAgICAgIGFkbWl0dGVkWydzcGVjJ11bJ3RlbXBsYXRlJ11bJ3NwZWMnXVsnY29udGFpbmVycyddWzBdWydpbWFnZSddID0gKGFjdHVhdG9yLklNQUdFIGlmIHBheWxvYWRbJ3BoYXNlJ109PSdyZWxlYXNlJyBlbHNlIHBheWxvYWRbJ3NlYWxlZCddWydzcGVjJ11bJ3RlbXBsYXRlJ11bJ3NwZWMnXVsnY29udGFpbmVycyddWzBdWydpbWFnZSddKVxuICAgICAgICAgICAgICAgIHJldHVybiBzdWJwcm9jZXNzLkNvbXBsZXRlZFByb2Nlc3MoYXJndiwgMCwganNvbi5kdW1wcyhhZG1pdHRlZCksICcnKVxuICAgICAgICAgICAgaWYgYXJndls6Ml0gPT0gWydrdWJlY3RsJywgJ2Rlc2NyaWJlJ106XG4gICAgICAgICAgICAgICAgcmV0dXJuIHN1YnByb2Nlc3MuQ29tcGxldGVkUHJvY2Vzcyhhcmd2LCAwLCAnQWxsb2NhdGVkIHJlc291cmNlczpcXG4gY3B1IDM0NjBtICg4NiUpXFxuJywgJycpXG4gICAgICAgICAgICBpZiBhcmd2WzoyXSA9PSBbJ2t1YmVjdGwnLCAnZGlmZiddOlxuICAgICAgICAgICAgICAgIHJldHVybiBzdWJwcm9jZXNzLkNvbXBsZXRlZFByb2Nlc3MoYXJndiwgMSwgJy1pbWFnZTogYmFzZVxcbitpbWFnZTogY2FuZGlkYXRlXFxuJywgJycpXG4gICAgICAgICAgICBpZiBhcmd2WzoyXSA9PSBbJ2t1YmVjdGwnLCAncGF0Y2gnXTpcbiAgICAgICAgICAgICAgICBpZiAnLS1kcnktcnVuPXNlcnZlcicgbm90IGluIGFyZ3Y6XG4gICAgICAgICAgICAgICAgICAgIHdyaXRlcy5hcHBlbmQoanNvbi5sb2FkcyhpbnB1dCkpXG4gICAgICAgICAgICAgICAgICAgIGlmIGFtYmlndW91czpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBzdWJwcm9jZXNzLkNvbXBsZXRlZFByb2Nlc3MoYXJndiwgMSwgJycsICd3aXRoaGVsZCcpXG4gICAgICAgICAgICAgICAgcmV0dXJuIHN1YnByb2Nlc3MuQ29tcGxldGVkUHJvY2Vzcyhhcmd2LCAwLCAnYXBwbGljYXRpb24uYXJnb3Byb2ouaW8vaW5mb3JtZWQtZGVjaXNpb25cXG4nLCAnJylcbiAgICAgICAgICAgIHJhaXNlIEFzc2VydGlvbkVycm9yKCd1bmV4cGVjdGVkIGNvbW1hbmQnKVxuXG4gICAgICAgIHNvdXJjZSA9IFBST0dSQU0ucmVwbGFjZSgnX19QQVlMT0FEX18nLCByZXByKGpzb24uZHVtcHMocGF5bG9hZCkpKS5yZXBsYWNlKFxuICAgICAgICAgICAgJ19fR1VBUkRfXycsIHJlcHIoKENBU0UgLyAnY2hhbmdlX2d1YXJkLnB5JykucmVhZF90ZXh0KCkpKVxuICAgICAgICBvdXRwdXQgPSBpby5TdHJpbmdJTygpXG4gICAgICAgIHdpdGggcGF0Y2goJ3N1YnByb2Nlc3MucnVuJywgc2lkZV9lZmZlY3Q9ZmFrZSksIHJlZGlyZWN0X3N0ZG91dChvdXRwdXQpOlxuICAgICAgICAgICAgdHJ5OlxuICAgICAgICAgICAgICAgIGV4ZWMoY29tcGlsZShzb3VyY2UsICdmaXhlZC1uYXRpdmUtZml4dHVyZScsICdleGVjJyksIHsnX19uYW1lX18nOiAnX19maXh0dXJlX18nfSlcbiAgICAgICAgICAgIGV4Y2VwdCAoVmFsdWVFcnJvciwgU3lzdGVtRXhpdCk6XG4gICAgICAgICAgICAgICAgcGFzc1xuICAgICAgICByZWNlaXB0ID0ganNvbi5sb2FkcyhvdXRwdXQuZ2V0dmFsdWUoKSkgaWYgb3V0cHV0LmdldHZhbHVlKCkgZWxzZSB7J2FsbF9jaGVja3NfcGFzcyc6IEZhbHNlfVxuICAgICAgICByZXR1cm4gcmVjZWlwdCwgd3JpdGVzLCBjYWxsc1xuXG4gICAgZGVmIHRlc3Rfb25seV9leGlzdGluZ19hcHBsaWNhdGlvbl9vcGVyYXRpb25fYW5kX2RlcGxveW1lbnRfYXJlX3JlcXVlc3RlZChzZWxmKTpcbiAgICAgICAgb2JqZWN0cywgcGF5bG9hZCA9IHNlbGYuZml4dHVyZSgpXG4gICAgICAgIHJlY2VpcHQsIHdyaXRlcywgY2FsbHMgPSBzZWxmLmV4ZWN1dGVfZmFrZShvYmplY3RzLCBwYXlsb2FkKVxuICAgICAgICBzZWxmLmFzc2VydFRydWUocmVjZWlwdFsnYWxsX2NoZWNrc19wYXNzJ10pXG4gICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UocmVjZWlwdFsncm9sbG91dF92ZXJpZmllZCddKVxuICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxlbih3cml0ZXMpLCAxKVxuICAgICAgICBvcGVyYXRpb24gPSB3cml0ZXNbMF1bLTFdWyd2YWx1ZSddXG4gICAgICAgIHNlbGYuYXNzZXJ0RmFsc2Uob3BlcmF0aW9uWydzeW5jJ11bJ3BydW5lJ10pXG4gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwob3BlcmF0aW9uWydzeW5jJ11bJ3Jlc291cmNlcyddLCBbXG4gICAgICAgICAgICB7J2dyb3VwJzogJ2FwcHMnLCAna2luZCc6ICdEZXBsb3ltZW50JywgJ25hbWUnOiAnaW5mb3JtZWQtZGVjaXNpb24nLCAnbmFtZXNwYWNlJzogJ2luZm9ybWVkLWRlY2lzaW9uJ31dKVxuICAgICAgICBzZWxmLmFzc2VydFRydWUoYW55KCctLWRyeS1ydW49c2VydmVyJyBpbiBhcmd2IGFuZCBhcmd2WzoyXSA9PSBbJ2t1YmVjdGwnLCAncGF0Y2gnXSBmb3IgYXJndiBpbiBjYWxscykpXG4gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwod3JpdGVzWzBdWzBdWydwYXRoJ10sICcvbWV0YWRhdGEvdWlkJylcblxuICAgIGRlZiB0ZXN0X3NvdXJjZV9vdmVycmlkZXNfYXV0b21hdGlvbl9hbmRfY3VzdG9keV9kcmlmdF9zdG9wX2JlZm9yZV93cml0ZShzZWxmKTpcbiAgICAgICAgbXV0YXRpb25zID0gW2xhbWJkYSBvOiBvWydhcHBsaWNhdGlvbiddWydtZXRhZGF0YSddLnVwZGF0ZSh1aWQ9J3JlY3JlYXRlZCcpLFxuICAgICAgICAgICAgICAgICAgICAgbGFtYmRhIG86IG9bJ2FwcGxpY2F0aW9uJ11bJ3NwZWMnXS51cGRhdGUoc3luY1BvbGljeT17J2F1dG9tYXRlZCc6IHt9fSksXG4gICAgICAgICAgICAgICAgICAgICBsYW1iZGEgbzogb1snYXBwbGljYXRpb24nXVsnc3BlYyddWydzb3VyY2UnXS51cGRhdGUoa3VzdG9taXplPXsnaW1hZ2VzJzogWydvdGhlciddfSksXG4gICAgICAgICAgICAgICAgICAgICBsYW1iZGEgbzogb1snYXBwbGljYXRpb24nXVsnc3BlYyddLnVwZGF0ZShzb3VyY2VzPVt7fV0pLFxuICAgICAgICAgICAgICAgICAgICAgbGFtYmRhIG86IG9bJ2NvbmZpZ21hcCddWydtZXRhZGF0YSddLnVwZGF0ZSh1aWQ9J3JlY3JlYXRlZCcpLFxuICAgICAgICAgICAgICAgICAgICAgbGFtYmRhIG86IG9bJ3B2YyddWydzcGVjJ10udXBkYXRlKHZvbHVtZU5hbWU9J3JlcGxhY2VkJyksXG4gICAgICAgICAgICAgICAgICAgICBsYW1iZGEgbzogb1snZGVwbG95bWVudCddWydzdGF0dXMnXS51cGRhdGUocmVhZHlSZXBsaWNhcz0wKV1cbiAgICAgICAgZm9yIG11dGF0ZSBpbiBtdXRhdGlvbnM6XG4gICAgICAgICAgICB3aXRoIHNlbGYuc3ViVGVzdChtdXRhdGU9bXV0YXRlKTpcbiAgICAgICAgICAgICAgICBvYmplY3RzLCBwYXlsb2FkID0gc2VsZi5maXh0dXJlKClcbiAgICAgICAgICAgICAgICBtdXRhdGUob2JqZWN0cylcbiAgICAgICAgICAgICAgICByZWNlaXB0LCB3cml0ZXMsIGNhbGxzID0gc2VsZi5leGVjdXRlX2Zha2Uob2JqZWN0cywgcGF5bG9hZClcbiAgICAgICAgICAgICAgICBzZWxmLmFzc2VydEZhbHNlKHJlY2VpcHRbJ2FsbF9jaGVja3NfcGFzcyddKVxuICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwod3JpdGVzLCBbXSlcblxuICAgIGRlZiB0ZXN0X3ByZW9wZW5fc2NoZW1hX3JlZnVzYWxfcHJldmVudHNfaW1hZ2Vfb3BlcmF0aW9uKHNlbGYpOlxuICAgICAgICBvYmplY3RzLCBwYXlsb2FkID0gc2VsZi5maXh0dXJlKClcbiAgICAgICAgcmVjZWlwdCwgd3JpdGVzLCBjYWxscyA9IHNlbGYuZXhlY3V0ZV9mYWtlKG9iamVjdHMsIHBheWxvYWQsIHNjaGVtYV9yZWZ1c2VkPVRydWUpXG4gICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UocmVjZWlwdFsnYWxsX2NoZWNrc19wYXNzJ10pXG4gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwod3JpdGVzLCBbXSlcblxuXG4gICAgZGVmIHRlc3Rfcm9sbGJhY2tfdW5yZWFkeV9jYW5kaWRhdGVfbmV2ZXJfcmVhZHNfcG9kX29yX2RhdGFiYXNlKHNlbGYpOlxuICAgICAgICBvYmplY3RzLCBwYXlsb2FkID0gc2VsZi5maXh0dXJlKClcbiAgICAgICAgcGF5bG9hZFsncGhhc2UnXSA9ICdyb2xsYmFjaydcbiAgICAgICAgb2JqZWN0c1snZGVwbG95bWVudCddWydzdGF0dXMnXS51cGRhdGUocmVhZHlSZXBsaWNhcz0wLCB1cGRhdGVkUmVwbGljYXM9MClcbiAgICAgICAgb2JqZWN0c1snZGVwbG95bWVudCddWydzcGVjJ11bJ3RlbXBsYXRlJ11bJ3NwZWMnXVsnY29udGFpbmVycyddWzBdWydpbWFnZSddID0gYWN0dWF0b3IuSU1BR0VcbiAgICAgICAgb2JqZWN0c1snYXBwbGljYXRpb24nXVsnc3BlYyddWydzb3VyY2UnXVsndGFyZ2V0UmV2aXNpb24nXSA9IFJFVklTSU9OXG4gICAgICAgIHJlY2VpcHQsIHdyaXRlcywgY2FsbHMgPSBzZWxmLmV4ZWN1dGVfZmFrZShvYmplY3RzLCBwYXlsb2FkLCBzY2hlbWFfcmVmdXNlZD1UcnVlKVxuICAgICAgICBzZWxmLmFzc2VydFRydWUocmVjZWlwdFsnYWxsX2NoZWNrc19wYXNzJ10pXG4gICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UocmVjZWlwdFsncm9sbG91dF92ZXJpZmllZCddKVxuICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxlbih3cml0ZXMpLCAxKVxuICAgICAgICBzZWxmLmFzc2VydEZhbHNlKGFueShhcmd2WzoyXSA9PSBbJ2t1YmVjdGwnLCAnZXhlYyddIG9yIGFyZ3ZbOjNdID09IFsna3ViZWN0bCcsICdnZXQnLCAncG9kcyddIGZvciBhcmd2IGluIGNhbGxzKSlcbiAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh3cml0ZXNbMF1bLTFdWyd2YWx1ZSddWydzeW5jJ11bJ3JldmlzaW9uJ10sICc3ZGI4NDg1ZmZlY2RlYmZhYmQ3N2E5ZGFlYzA4NTU1M2M3NGJmMGJmJylcblxuICAgIGRlZiB0ZXN0X3JvbGxiYWNrX3N0aWxsX3JlZnVzZXNfY3VzdG9keV9vcl9ub25wYWlyX2ltYWdlX2RyaWZ0KHNlbGYpOlxuICAgICAgICBmb3IgZGVmZWN0IGluICgnY20nLCAncHZjJywgJ2ltYWdlJyk6XG4gICAgICAgICAgICB3aXRoIHNlbGYuc3ViVGVzdChkZWZlY3Q9ZGVmZWN0KTpcbiAgICAgICAgICAgICAgICBvYmplY3RzLCBwYXlsb2FkID0gc2VsZi5maXh0dXJlKCk7cGF5bG9hZFsncGhhc2UnXSA9ICdyb2xsYmFjaydcbiAgICAgICAgICAgICAgICBvYmplY3RzWydkZXBsb3ltZW50J11bJ3N0YXR1cyddWydyZWFkeVJlcGxpY2FzJ10gPSAwXG4gICAgICAgICAgICAgICAgaWYgZGVmZWN0ID09ICdjbSc6b2JqZWN0c1snY29uZmlnbWFwJ11bJ21ldGFkYXRhJ11bJ3VpZCddID0gJ3JlY3JlYXRlZCdcbiAgICAgICAgICAgICAgICBlbGlmIGRlZmVjdCA9PSAncHZjJzpvYmplY3RzWydwdmMnXVsnc3BlYyddWyd2b2x1bWVOYW1lJ10gPSAncmVwbGFjZWQnXG4gICAgICAgICAgICAgICAgZWxzZTpvYmplY3RzWydkZXBsb3ltZW50J11bJ3NwZWMnXVsndGVtcGxhdGUnXVsnc3BlYyddWydjb250YWluZXJzJ11bMF1bJ2ltYWdlJ10gPSAnZm9yZWlnbi1pbWFnZSdcbiAgICAgICAgICAgICAgICByZWNlaXB0LCB3cml0ZXMsIGNhbGxzID0gc2VsZi5leGVjdXRlX2Zha2Uob2JqZWN0cywgcGF5bG9hZClcbiAgICAgICAgICAgICAgICBzZWxmLmFzc2VydEZhbHNlKHJlY2VpcHRbJ2FsbF9jaGVja3NfcGFzcyddKTtzZWxmLmFzc2VydEVxdWFsKHdyaXRlcywgW10pXG5cbiAgICBkZWYgdGVzdF9yZWNvdmVyeV92ZXJpZmljYXRpb25faXNfc2VwYXJhdGVfcmVhZHlfb2xkX2ltYWdlX3NjaGVtYV9wcm9vZihzZWxmKTpcbiAgICAgICAgb2JqZWN0cywgcGF5bG9hZCA9IHNlbGYuZml4dHVyZSgpO3BheWxvYWRbJ3BoYXNlJ10gPSAncm9sbGJhY2stdmVyaWZ5J1xuICAgICAgICBvYmplY3RzWydhcHBsaWNhdGlvbiddWydzdGF0dXMnXSA9IHsnb3BlcmF0aW9uU3RhdGUnOiB7J3BoYXNlJzogJ1N1Y2NlZWRlZCcsICdvcGVyYXRpb24nOiB7J3N5bmMnOiB7XG4gICAgICAgICAgICAncmV2aXNpb24nOiAnN2RiODQ4NWZmZWNkZWJmYWJkNzdhOWRhZWMwODU1NTNjNzRiZjBiZicsICdwcnVuZSc6IEZhbHNlLFxuICAgICAgICAgICAgJ3Jlc291cmNlcyc6IFt7J2dyb3VwJzonYXBwcycsJ2tpbmQnOidEZXBsb3ltZW50JywnbmFtZSc6J2luZm9ybWVkLWRlY2lzaW9uJywnbmFtZXNwYWNlJzonaW5mb3JtZWQtZGVjaXNpb24nfV19fX19XG4gICAgICAgIHJlY2VpcHQsIHdyaXRlcywgY2FsbHMgPSBzZWxmLmV4ZWN1dGVfZmFrZShvYmplY3RzLCBwYXlsb2FkKVxuICAgICAgICBzZWxmLmFzc2VydFRydWUocmVjZWlwdFsnYWxsX2NoZWNrc19wYXNzJ10pO3NlbGYuYXNzZXJ0VHJ1ZShyZWNlaXB0WydyZWNvdmVyeV92ZXJpZmljYXRpb24nXSlcbiAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh3cml0ZXMsIFtdKVxuICAgICAgICBzZWxmLmFzc2VydFRydWUoYW55KGFyZ3ZbOjJdPT1bJ2t1YmVjdGwnLCdleGVjJ10gZm9yIGFyZ3YgaW4gY2FsbHMpKVxuICAgICAgICBvYmplY3RzWydkZXBsb3ltZW50J11bJ3N0YXR1cyddWydyZWFkeVJlcGxpY2FzJ10gPSAwXG4gICAgICAgIHJlY2VpcHQsIHdyaXRlcywgY2FsbHMgPSBzZWxmLmV4ZWN1dGVfZmFrZShvYmplY3RzLHBheWxvYWQpXG4gICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UocmVjZWlwdFsnYWxsX2NoZWNrc19wYXNzJ10pXG5cbiAgICBkZWYgdGVzdF9hbWJpZ3VvdXNfcGF0Y2hfaXNfbmV2ZXJfcmV0cmllZChzZWxmKTpcbiAgICAgICAgb2JqZWN0cywgcGF5bG9hZCA9IHNlbGYuZml4dHVyZSgpXG4gICAgICAgIHJlY2VpcHQsIHdyaXRlcywgY2FsbHMgPSBzZWxmLmV4ZWN1dGVfZmFrZShvYmplY3RzLCBwYXlsb2FkLCBhbWJpZ3VvdXM9VHJ1ZSlcbiAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShyZWNlaXB0WydhbGxfY2hlY2tzX3Bhc3MnXSlcbiAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4od3JpdGVzKSwgMSlcblxuXG5pZiBfX25hbWVfXyA9PSAnX19tYWluX18nOlxuICAgIHVuaXR0ZXN0Lm1haW4oKVxuIgogICAgfSwKICAgICJ0ZXN0X3Jlc2N1ZV9leGVjdXRpb24ucHkiOiB7CiAgICAgICJzaGEyNTYiOiAiOGVjYmIwMjYwYTg3YTdhMTJiZDVjNGM5Njc4ZmIyYTlkNDNhNGVhNzMyMjEyOTczNGJjMjFmOGVlMzgzY2Q3MCIsCiAgICAgICJjb250ZW50IjogIlwiXCJcIlN5bnRoZXRpYyByZWNvdmVyeSBndWFyZHM7IG5vIGFjdHVhbCBwcml2YXRlIGpvdXJuYWwvREIvbmF0aXZlIGNvbW1hbmQuXCJcIlwiXG5pbXBvcnQgY29weVxuaW1wb3J0IGRhdGV0aW1lXG5pbXBvcnQgaGFzaGxpYlxuaW1wb3J0IGpzb25cbmltcG9ydCBvc1xuZnJvbSBwYXRobGliIGltcG9ydCBQYXRoXG5pbXBvcnQgdGVtcGZpbGVcbmltcG9ydCB1bml0dGVzdFxuZnJvbSBhdXRob3JpdHlfam91cm5hbCBpbXBvcnQgSm91cm5hbCwgYXV0aG9yaXR5LCBvcmlnaW5hbF9hbmNob3JcbmZyb20gdGVzdF9leGVjdXRpb24gaW1wb3J0IGFjY2VwdGVkLCBOT1csIFJFVklTSU9OXG5cblJPT1Q9UGF0aChfX2ZpbGVfXykucGFyZW50XG5QTEFOPWpzb24ubG9hZHMoKFJPT1QvJ2V4ZWN1dGlvbi1wbGFuLmpzb24nKS5yZWFkX3RleHQoKSlcbkNBU0U9Uk9PVC5wYXJlbnRcbkJBQ0tVUD1qc29uLmxvYWRzKChDQVNFLydvcmlnaW5hbC1hcHByb3ZlZC1kcmlsbC1iYWNrdXAuanNvbicpLnJlYWRfdGV4dCgpKVxuXG5jbGFzcyBSZXNjdWVHdWFyZHModW5pdHRlc3QuVGVzdENhc2UpOlxuICAgIGRlZiBvcmlnaW5hbChzZWxmLHBhcmVudCk6XG4gICAgICAgIG9yaWdpbmFsPXsnaWRlbnRpdHknOlBMQU5bJ3JlY292ZXJ5J11bJ29yaWdpbmFsX2lkZW50aXR5J10sJ3BoYXNlcyc6e319XG4gICAgICAgIGZvciBuYW1lLG1ldGFkYXRhIGluIFBMQU5bJ3JlY292ZXJ5J11bJ29yaWdpbmFsX2FuY2hvciddWydwaGFzZV9tZXRhZGF0YSddLml0ZW1zKCk6XG4gICAgICAgICAgICBvcmlnaW5hbFsncGhhc2VzJ11bbmFtZV09eyoqbWV0YWRhdGEsJ3Jlc3VsdCc6QkFDS1VQIGlmIG5hbWU9PSdkcmlsbC1iYWNrdXAnIGVsc2UgeydhbGxfY2hlY2tzX3Bhc3MnOkZhbHNlfX1cbiAgICAgICAgcD1wYXJlbnQvJ2V4ZWN1dGlvbi1qb3VybmFsLmpzb24nO3Aud3JpdGVfdGV4dChqc29uLmR1bXBzKG9yaWdpbmFsKSk7b3MuY2htb2QocCwwbzYwMClcbiAgICAgICAgYW5jaG9yPWNvcHkuZGVlcGNvcHkoUExBTlsncmVjb3ZlcnknXVsnb3JpZ2luYWxfYW5jaG9yJ10pO2FuY2hvclsnb3JpZ2luYWxfam91cm5hbF9zaGEyNTYnXT1oYXNobGliLnNoYTI1NihwLnJlYWRfYnl0ZXMoKSkuaGV4ZGlnZXN0KClcbiAgICAgICAgcmV0dXJuIHAsb3JpZ2luYWwsYW5jaG9yXG5cbiAgICBkZWYgdGVzdF9leGFjdF9vcmlnaW5hbF9mYWlsZWRfam91cm5hbF9pc19saW5rZWRfd2l0aG91dF9tdXRhdGlvbihzZWxmKTpcbiAgICAgICAgd2l0aCB0ZW1wZmlsZS5UZW1wb3JhcnlEaXJlY3RvcnkoKSBhcyBkaXJlY3Rvcnk6XG4gICAgICAgICAgICBwYXJlbnQ9UGF0aChkaXJlY3RvcnkpO29zLmNobW9kKHBhcmVudCwwbzcwMCk7cCxvcmlnaW5hbCxleHBlY3RlZD1zZWxmLm9yaWdpbmFsKHBhcmVudCk7YmVmb3JlPXAucmVhZF9ieXRlcygpXG4gICAgICAgICAgICBhbmNob3I9b3JpZ2luYWxfYW5jaG9yKHBhcmVudCxleHBlY3RlZCxCQUNLVVAsb3JpZ2luYWxbJ2lkZW50aXR5J10pXG4gICAgICAgICAgICBqPUpvdXJuYWwocGFyZW50LHsnZml4dHVyZSc6VHJ1ZSwncmVjb3ZlcnlfYW5jaG9yJzphbmNob3J9KTtqLnN0YXJ0KCdkcmlsbC1jb3B5LXJlc2N1ZS1yMScse30pXG4gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHAucmVhZF9ieXRlcygpLGJlZm9yZSk7c2VsZi5hc3NlcnRFcXVhbChqLnBhdGgubmFtZSwncmVzY3VlLWV4ZWN1dGlvbi1qb3VybmFsLXIxLmpzb24nKVxuICAgICAgICAgICAgai5maW5pc2goJ2RyaWxsLWNvcHktcmVzY3VlLXIxJyx7J2FsbF9jaGVja3NfcGFzcyc6VHJ1ZX0pO2ouc3RhcnQoJ29mZmxpbmUtdmVyaWZ5Jyx7fSlcbiAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocC5yZWFkX2J5dGVzKCksYmVmb3JlKTtqLmNsb3NlKClcblxuICAgIGRlZiB0ZXN0X29yaWdpbmFsX21pc3NpbmdfdW5jZXJ0YWluX3JlY3JlYXRlZF9hdHRlbXB0X29yX3JvbGxvdXRfcmVmdXNlKHNlbGYpOlxuICAgICAgICBmb3IgZGVmZWN0IGluICgnbWlzc2luZycsJ2NvbXBsZXRlJywnYXR0ZW1wdCcsJ3JvbGxvdXQnLCdoYXNoJyk6XG4gICAgICAgICAgICB3aXRoIHNlbGYuc3ViVGVzdChkZWZlY3Q9ZGVmZWN0KSx0ZW1wZmlsZS5UZW1wb3JhcnlEaXJlY3RvcnkoKSBhcyBkaXJlY3Rvcnk6XG4gICAgICAgICAgICAgICAgcGFyZW50PVBhdGgoZGlyZWN0b3J5KTtvcy5jaG1vZChwYXJlbnQsMG83MDApO3AsbyxlPXNlbGYub3JpZ2luYWwocGFyZW50KVxuICAgICAgICAgICAgICAgIGlmIGRlZmVjdD09J21pc3NpbmcnOm9bJ3BoYXNlcyddLnBvcCgnZHJpbGwtY29weScpXG4gICAgICAgICAgICAgICAgZWxpZiBkZWZlY3Q9PSdjb21wbGV0ZSc6b1sncGhhc2VzJ11bJ2RyaWxsLWNvcHknXVsnc3RhdGUnXT0nQ09NUExFVEUnXG4gICAgICAgICAgICAgICAgZWxpZiBkZWZlY3Q9PSdhdHRlbXB0JzpvWydwaGFzZXMnXVsnZHJpbGwtY29weSddWydhdHRlbXB0X2lkJ109J2RpZmZlcmVudCdcbiAgICAgICAgICAgICAgICBlbGlmIGRlZmVjdD09J3JvbGxvdXQnOm9bJ3BoYXNlcyddWydyZWxlYXNlJ109eydzdGF0ZSc6J1JVTk5JTkcnfVxuICAgICAgICAgICAgICAgIGlmIGRlZmVjdCE9J2hhc2gnOlxuICAgICAgICAgICAgICAgICAgICBwLndyaXRlX3RleHQoanNvbi5kdW1wcyhvKSk7ZVsnb3JpZ2luYWxfam91cm5hbF9zaGEyNTYnXT1oYXNobGliLnNoYTI1NihwLnJlYWRfYnl0ZXMoKSkuaGV4ZGlnZXN0KClcbiAgICAgICAgICAgICAgICBlbHNlOmVbJ29yaWdpbmFsX2pvdXJuYWxfc2hhMjU2J109JzAnKjY0XG4gICAgICAgICAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcygoVmFsdWVFcnJvcixLZXlFcnJvcikpOm9yaWdpbmFsX2FuY2hvcihwYXJlbnQsZSxCQUNLVVAsUExBTlsncmVjb3ZlcnknXVsnb3JpZ2luYWxfaWRlbnRpdHknXSlcblxuICAgIGRlZiB0ZXN0X3Jlc2N1ZV9yZXBsYXlfcmVmdXNlZF9hbmRfb2xkX3BoYXNlX25ldmVyX2FkbWl0dGVkKHNlbGYpOlxuICAgICAgICB3aXRoIHRlbXBmaWxlLlRlbXBvcmFyeURpcmVjdG9yeSgpIGFzIGRpcmVjdG9yeTpcbiAgICAgICAgICAgIG9zLmNobW9kKGRpcmVjdG9yeSwwbzcwMCk7aj1Kb3VybmFsKGRpcmVjdG9yeSx7J2ZpeHR1cmUnOlRydWV9KVxuICAgICAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yKTpqLnN0YXJ0KCdkcmlsbC1jb3B5Jyx7fSlcbiAgICAgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvcik6ai5zdGFydCgnZHJpbGwtYmFja3VwJyx7fSlcbiAgICAgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvcik6ai5zdGFydCgnb2ZmbGluZS12ZXJpZnknLHt9KVxuICAgICAgICAgICAgai5zdGFydCgnZHJpbGwtY29weS1yZXNjdWUtcjEnLHt9KTtqLmZpbmlzaCgnZHJpbGwtY29weS1yZXNjdWUtcjEnLHsnYWxsX2NoZWNrc19wYXNzJzpGYWxzZX0pXG4gICAgICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IpOmouc3RhcnQoJ2RyaWxsLWNvcHktcmVzY3VlLXIxJyx7fSlcbiAgICAgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvcik6ai5zdGFydCgnb2ZmbGluZS12ZXJpZnknLHt9KVxuICAgICAgICAgICAgai5jbG9zZSgpXG5cbiAgICBkZWYgdGVzdF9uZXdfYXV0aG9yaXR5X3JlcXVpcmVzX3ZlcnNpb24yX29sZF9hcHByb3ZhbF9yZWZ1c2VzKHNlbGYpOlxuICAgICAgICByZWNlaXB0LG91dGNvbWU9YWNjZXB0ZWQoKTtyZWNlaXB0WydtZW1vX3ZlcnNpb24nXT0yO291dGNvbWVbJ2Rpc3Bvc2l0aW9ucyddWzBdWydkaXNwb3NpdGlvbiddWydtZW1vX3ZlcnNpb24nXT0xXG4gICAgICAgIGF1dGhvcml0eShyZWNlaXB0LG91dGNvbWUsJ2EnKjY0LFJFVklTSU9OLCdkcmlsbC1jb3B5LXJlc2N1ZS1yMScsTk9XKVxuICAgICAgICByZWNlaXB0WydtZW1vX3ZlcnNpb24nXT0xXG4gICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvcik6YXV0aG9yaXR5KHJlY2VpcHQsb3V0Y29tZSwnYScqNjQsUkVWSVNJT04sJ2RyaWxsLWNvcHktcmVzY3VlLXIxJyxOT1cpXG4gICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvcik6YXV0aG9yaXR5KHJlY2VpcHQsb3V0Y29tZSwnYScqNjQsUkVWSVNJT04sJ2RyaWxsLWNvcHknLE5PVylcbiAgICAgICAgcmVjZWlwdFsnbWVtb192ZXJzaW9uJ109MjtyZWNlaXB0WydvdXRjb21lX3F1ZXJ5J109Jy9saWZlY3ljbGUvbWVtb3MvaW5mZC0yMDI2MTAxMS1wdXJwb3NlLW92ZXJsYXktcjEvb3V0Y29tZXM/dmVyc2lvbj0xJ1xuICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IpOmF1dGhvcml0eShyZWNlaXB0LG91dGNvbWUsJ2EnKjY0LFJFVklTSU9OLCdkcmlsbC1jb3B5LXJlc2N1ZS1yMScsTk9XKVxuXG4gICAgZGVmIHRlc3RfZXhwbGljaXRfb2ZmbGluZV9pbnB1dF9tYXBwaW5nX2FuZF9hYnNlbmNlX2d1YXJkcyhzZWxmKTpcbiAgICAgICAgc291cmNlPShST09ULydhY3R1YXRvci5weScpLnJlYWRfdGV4dCgpXG4gICAgICAgIHNlbGYuYXNzZXJ0SW4oXCJwcmV2aW91cyA9IGpvdXJuYWwuZGF0YVsncGhhc2VzJ11bJ2RyaWxsLWNvcHktcmVzY3VlLXIxJ11bJ3Jlc3VsdCddXCIsc291cmNlKVxuICAgICAgICBzZWxmLmFzc2VydEluKFwibm90IG9zLnBhdGgubGV4aXN0cyhDVVNUT0RZIC8gJ2RyaWxsLnNxbGl0ZScpXCIsc291cmNlKVxuICAgICAgICBzZWxmLmFzc2VydEluKFwiVk9MVU1FIG5vdCBpbiBsaXN0ZWQuc3Rkb3V0LnNwbGl0bGluZXMoKVwiLHNvdXJjZSlcbiAgICAgICAgc2VsZi5hc3NlcnROb3RJbihcIm9zLm1rZGlyKENVU1RPRFlcIixzb3VyY2UpXG4gICAgICAgIGltcG9ydCBhc3RcbiAgICAgICAgcHJvZ3JhbT1hc3QubGl0ZXJhbF9ldmFsKG5leHQobi52YWx1ZSBmb3IgbiBpbiBhc3QucGFyc2UoKFJPT1QvJ25hdGl2ZV9wcm9ncmFtLnB5JykucmVhZF90ZXh0KCkpLmJvZHkgaWYgaXNpbnN0YW5jZShuLGFzdC5Bc3NpZ24pKSlcbiAgICAgICAgY29tcGlsZShwcm9ncmFtLCduYXRpdmUtcmVzY3VlLWZpeHR1cmUnLCdleGVjJylcbiAgICAgICAgc2VsZi5hc3NlcnRJbihcInBoYXNlPT0nZHJpbGwtY29weS1yZXNjdWUtcjEnOnJlcXVpcmUocG9kWydtZXRhZGF0YSddWyd1aWQnXT09J2U4NTYxYWUwLTRiMDktNDQ1NS05MjRkLTY0YzI3YjYyNWZjNydcIixwcm9ncmFtKVxuXG5pZiBfX25hbWVfXz09J19fbWFpbl9fJzp1bml0dGVzdC5tYWluKClcbiIKICAgIH0sCiAgICAidmFsaWRhdGlvbi5qc29uIjogewogICAgICAic2hhMjU2IjogIjZmMzM3OWY2Mzk2OGU5YTAyOTRhYmE3YjViNTdlYTQ2NjJhZGRhNmIxZmExYjM3ZWZmMTFjMmY3MmE1ODkzMWYiLAogICAgICAiY29udGVudCI6ICJ7XG4gIFwic3RhdGVcIjogXCJwcmVwYXJlZC11bmFwcHJvdmVkLXZlcnNpb24yXCIsXG4gIFwiZXhlY3V0b3JfdGVzdHNcIjogMjEsXG4gIFwic25hcHNob3RfbW9ja190ZXN0c1wiOiA1LFxuICBcIm5hdGl2ZV9hY3Rpb25zXCI6IGZhbHNlLFxuICBcImRhdGFiYXNlX2FkbWluX2NvbW1hbmRzX2luX3ByZXBhcmF0aW9uXCI6IGZhbHNlLFxuICBcIm9sZF9qb3VybmFsX21vZGlmaWVkXCI6IGZhbHNlLFxuICBcIm9sZF9mYWlsZWRfcGhhc2VfcmV0cmllZFwiOiBmYWxzZSxcbiAgXCJvd25lcl9oZWFkX3VuY2hhbmdlZFwiOiBcImJjNjQ5NGNkMWIyOTA3ODNlZjNhZWYwNzYzYmYyOGQxZGVhYmY0YjBcIlxufVxuIgogICAgfQogIH0sCiAgIm5hdGl2ZV9leGVjdXRpb24iOiBmYWxzZSwKICAiY2FzZV9ldmlkZW5jZSI6IHsKICAgICJvcmlnaW5hbC1hcHByb3ZlZC1kcmlsbC1iYWNrdXAuanNvbiI6IHsKICAgICAgInNoYTI1NiI6ICIwMjVkZGRmMWU5MzkzNmYzMWU5OGI5ZmJmYTg0YWEyYmRhYWEzMzU3M2Y5ZDNiMGUzMmQ5NDdmZDI4NmIxNzBlIiwKICAgICAgImNvbnRlbnQiOiAie1wicGhhc2VcIjogXCJkcmlsbC1iYWNrdXBcIiwgXCJhbGxfY2hlY2tzX3Bhc3NcIjogdHJ1ZSwgXCJyYXdfb3V0cHV0X3dpdGhoZWxkXCI6IHRydWUsIFwibmF0aXZlX2FwcHJvdmFsX3ZlcmlmaWVkX2J5X3Jvb3RcIjoge1wiYXBwcm92YWxfaWRcIjogXCJlYzkyODA2YS05YWE2LTQ5NGYtYTc2Yi0wMzg1ZjM5YmE2MDlcIiwgXCJkaXNwb3NpdGlvbl9pZFwiOiBcImRpc3AtMDk2ODM3M2QtMjk0ZC00MmJmLTg5NzktMzZhN2M1ZGQzOGNmXCIsIFwiYWNjZXB0ZWRfYXRcIjogXCIyMDI2LTEwLTExVDAyOjM0OjIwWlwiLCBcInZlcmlmaWVkX2F0XCI6IFwiMjAyNi0xMC0xMVQwMjozODo0MS43Nzc5NDkrMDA6MDBcIn0sIFwibmF0aXZlX2F1dGhlbnRpY2F0ZWRfZ3JhbnRcIjogZmFsc2UsIFwic291cmNlX3JlYWRvbmx5X2Jhc2VsaW5lXCI6IHtcInNjaGVtYV92ZXJzaW9uXCI6IDUsIFwibGlmZWN5Y2xlXCI6IHtcInJlY29yZHNcIjogMTUsIFwiZXZlbnRzXCI6IDUwLCBcInBlbmRpbmdcIjogMH0sIFwib3V0Ym94XCI6IHtcImRlbGl2ZXJlZFwiOiAzMjB9LCBcInN1Ym1pc3Npb25zXCI6IHtcImNvbmZpcm1lZFwiOiA0MX0sIFwiaW50ZWdyaXR5XCI6IFwib2tcIiwgXCJyZWFkX29ubHlfcHJlX29wZW5cIjogdHJ1ZSwgXCJzdG9yZV9jb25zdHJ1Y3RlZFwiOiBmYWxzZX0sIFwic25hcHNob3RfcmVhZG9ubHlcIjoge1wic2NoZW1hX3ZlcnNpb25cIjogNSwgXCJsaWZlY3ljbGVcIjoge1wicmVjb3Jkc1wiOiAxNSwgXCJldmVudHNcIjogNTAsIFwicGVuZGluZ1wiOiAwfSwgXCJvdXRib3hcIjoge1wiZGVsaXZlcmVkXCI6IDMyMH0sIFwic3VibWlzc2lvbnNcIjoge1wiY29uZmlybWVkXCI6IDQxfSwgXCJpbnRlZ3JpdHlcIjogXCJva1wiLCBcInJlYWRfb25seV9wcmVfb3BlblwiOiB0cnVlLCBcInN0b3JlX2NvbnN0cnVjdGVkXCI6IGZhbHNlfSwgXCJzbmFwc2hvdF9zaGEyNTZcIjogXCI4NzU2Y2Y4MjVkZjllN2I1Yjc0YmI0YTAxMDZhNTAyN2Y1Y2ZmMmM1OWZmNDVkN2I0OGVlZDg1MjJhN2QzM2YzXCIsIFwic25hcHNob3RfYnl0ZXNcIjogMTk1Mzc5MjAsIFwic25hcHNob3RfZmlsZVwiOiBcImRyaWxsLnNxbGl0ZVwiLCBcIm5hdGl2ZV9wYXJlbnRfcHJpdmF0ZVwiOiB0cnVlLCBcIm5hdGl2ZV91aWRcIjogMTAwMDEsIFwicG9kX25hbWVcIjogXCJpbmZvcm1lZC1kZWNpc2lvbi1mNTU3NTU2ZGYtbXdwejdcIiwgXCJwb2RfdWlkXCI6IFwiZTg1NjFhZTAtNGIwOS00NDU1LTkyNGQtNjRjMjdiNjI1ZmM3XCJ9XG4iCiAgICB9LAogICAgIm9yaWdpbmFsLWFwcHJvdmVkLWRyaWxsLWNvcHktZmFpbHVyZS5qc29uIjogewogICAgICAic2hhMjU2IjogImZiNzhmYjJlOGMzZDQxNjQ5MGNmMGY1NTliMmY1YmQwMTk0MDZhNDkwZjhmNWZhNmY1OTMyNDIxZjBiMWFjNTYiLAogICAgICAiY29udGVudCI6ICJ7XCJhbGxfY2hlY2tzX3Bhc3NcIjogZmFsc2UsIFwicGhhc2VcIjogXCJkcmlsbC1jb3B5XCIsIFwiZmFpbHVyZV9jbGFzc1wiOiBcIlZhbHVlRXJyb3JcIiwgXCJmYWlsdXJlXCI6IFwiZml4ZWQgcGhhc2Ugb3V0Y29tZSB1bmNlcnRhaW47IG9yaWdpbmFsIGV2aWRlbmNlIHJldGFpbmVkOyBubyByZXRyeVwiLCBcInJhd19vdXRwdXRfd2l0aGhlbGRcIjogdHJ1ZX1cbiIKICAgIH0sCiAgICAib3JpZ2luYWwtam91cm5hbC1zYW5pdGl6ZWQtYW5jaG9yLmpzb24iOiB7CiAgICAgICJzaGEyNTYiOiAiOTg4ZmNhNjFhZDhlYjlkNDNkOTMzOTBhODM1MzIzZjk1MjE5NmJiY2U4Y2MwYmRlNTFjNDJhMTdkNDExZjQ1NCIsCiAgICAgICJjb250ZW50IjogIntcbiAgXCJvcmlnaW5hbF9qb3VybmFsX3NoYTI1NlwiOiBcImQxODdiMDJkOThkNmU5NzQyOWZlMjBiNGZiZTFkMzA5YTZjNmM0YjU1MjMyYjRhZTEzYWMzOTg3MzAzOWYxYzFcIixcbiAgXCJwaGFzZV9tZXRhZGF0YVwiOiB7XG4gICAgXCJkcmlsbC1iYWNrdXBcIjoge1xuICAgICAgXCJzdGF0ZVwiOiBcIkNPTVBMRVRFXCIsXG4gICAgICBcImF0dGVtcHRfaWRcIjogXCJkNjMxODJhNy1lMWE1LTRlOGUtYTVmMS0yYmYzMzMzY2YxNTNcIixcbiAgICAgIFwic3RhcnRlZF9hdFwiOiBcIjIwMjYtMTAtMTFUMDI6Mzg6NDUuMzEwNjUzKzAwOjAwXCJcbiAgICB9LFxuICAgIFwiZHJpbGwtY29weVwiOiB7XG4gICAgICBcInN0YXRlXCI6IFwiVU5DRVJUQUlOXCIsXG4gICAgICBcImF0dGVtcHRfaWRcIjogXCIzMjllZjE5MC0xNjkyLTQyNDYtYjk1My1lNmE1OTY2NGFiY2NcIixcbiAgICAgIFwic3RhcnRlZF9hdFwiOiBcIjIwMjYtMTAtMTFUMDI6Mzk6NTAuMTk4NzQwKzAwOjAwXCJcbiAgICB9XG4gIH0sXG4gIFwiZnJvemVuX2JhY2t1cF9yZWNlaXB0X3NoYTI1NlwiOiBcIjAyNWRkZGYxZTkzOTM2ZjMxZTk4YjlmYmZhODRhYTJiZGFhYTMzNTczZjlkM2IwZTMyZDk0N2ZkMjg2YjE3MGVcIixcbiAgXCJzbmFwc2hvdF9zaGEyNTZcIjogXCI4NzU2Y2Y4MjVkZjllN2I1Yjc0YmI0YTAxMDZhNTAyN2Y1Y2ZmMmM1OWZmNDVkN2I0OGVlZDg1MjJhN2QzM2YzXCIsXG4gIFwic25hcHNob3RfYnl0ZXNcIjogMTk1Mzc5MjAsXG4gIFwib2ZmX2NsdXN0ZXJfZmlsZV9leGlzdHNcIjogZmFsc2UsXG4gIFwib2xkX3VuY2VydGFpbl9yZXRyeV9hdXRob3JpemVkXCI6IGZhbHNlXG59XG4iCiAgICB9CiAgfQp9Cg=="
|
|
},
|
|
{
|
|
"digest": "sha256:9093c64f7f0e39b249da9fefdf5aaf4e4258bc31e7a27fd888479ce329a20509",
|
|
"media_type": "text/plain",
|
|
"content_base64": "IiIiUHJlLW9wZW4gc2NoZW1hL2ludGVncml0eS9jb3VudCBwcm9vZjsgc3RkbGliIG9ubHksIG5ldmVyIGNvbnN0cnVjdHMgU3RvcmUuIiIiCmltcG9ydCBhcmdwYXJzZQpmcm9tIGNvbnRleHRsaWIgaW1wb3J0IGNsb3NpbmcKaW1wb3J0IGhhc2hsaWIKaW1wb3J0IG9zCmltcG9ydCByZQppbXBvcnQgc3RhdAppbXBvcnQganNvbgpmcm9tIHBhdGhsaWIgaW1wb3J0IFBhdGgKaW1wb3J0IHNxbGl0ZTMKCgpkZWYgaW5zcGVjdF9yZWFkb25seShwYXRoLCAqLCBfY2xvc2VkX3NuYXBzaG90PUZhbHNlKToKICAgIHBhdGggPSBQYXRoKHBhdGgpCiAgICBpZiBub3QgcGF0aC5pc19maWxlKCkgb3IgcGF0aC5pc19zeW1saW5rKCk6CiAgICAgICAgcmFpc2UgVmFsdWVFcnJvcignZXhpc3Rpbmcgbm9uc3ltbGluayBwcml2YXRlIGRhdGFiYXNlIHJlcXVpcmVkJykKICAgIHVyaSA9IHBhdGgucmVzb2x2ZSgpLmFzX3VyaSgpICsgJz9tb2RlPXJvJyArICgnJmltbXV0YWJsZT0xJyBpZiBfY2xvc2VkX3NuYXBzaG90IGVsc2UgJycpCiAgICAjIHNxbGl0ZTMuQ29ubmVjdGlvbiBjb250ZXh0IG1hbmFnZW1lbnQgZW5kcyB0cmFuc2FjdGlvbnM7IGl0IGRvZXMgbm90IGNsb3NlLgogICAgd2l0aCBjbG9zaW5nKHNxbGl0ZTMuY29ubmVjdCh1cmksIHVyaT1UcnVlLCB0aW1lb3V0PTUpKSBhcyBkYjoKICAgICAgICBkYi5leGVjdXRlKCdQUkFHTUEgcXVlcnlfb25seT1PTicpCiAgICAgICAgZGIuZXhlY3V0ZSgnQkVHSU4nKQogICAgICAgIHZlcnNpb24gPSBkYi5leGVjdXRlKCdQUkFHTUEgdXNlcl92ZXJzaW9uJykuZmV0Y2hvbmUoKVswXQogICAgICAgIGlmIHZlcnNpb24gIT0gNToKICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigncHJlLW9wZW4gZGF0YWJhc2UgaXMgbm90IHNjaGVtYTU7IHJlZnVzZSBtaWdyYXRpb24nKQogICAgICAgIGlmIGRiLmV4ZWN1dGUoJ1BSQUdNQSBpbnRlZ3JpdHlfY2hlY2snKS5mZXRjaGFsbCgpICE9IFsoJ29rJywpXToKICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigncmVhZC1vbmx5IGludGVncml0eSBjaGVjayByZWZ1c2VkJykKICAgICAgICBsaWZlY3ljbGUgPSB7bmFtZTogZGIuZXhlY3V0ZSgnU0VMRUNUIENPVU5UKCopIEZST00gJyArIHRhYmxlKS5mZXRjaG9uZSgpWzBdCiAgICAgICAgICAgICAgICAgICAgIGZvciBuYW1lLCB0YWJsZSBpbiAoKCdyZWNvcmRzJywgJ2xpZmVjeWNsZV9yZWNvcmRzJyksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCdldmVudHMnLCAnbGlmZWN5Y2xlX2V2ZW50cycpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgncGVuZGluZycsICdsaWZlY3ljbGVfcGVuZGluZycpKX0KICAgICAgICByZXN1bHQgPSB7J3NjaGVtYV92ZXJzaW9uJzogdmVyc2lvbiwgJ2xpZmVjeWNsZSc6IGxpZmVjeWNsZSwKICAgICAgICAgICAgICAgICAgJ291dGJveCc6IGRpY3QoZGIuZXhlY3V0ZSgnU0VMRUNUIHN0YXRlLENPVU5UKCopIEZST00gb3V0Ym94IEdST1VQIEJZIHN0YXRlJykpLAogICAgICAgICAgICAgICAgICAnc3VibWlzc2lvbnMnOiBkaWN0KGRiLmV4ZWN1dGUoJ1NFTEVDVCBzdGF0ZSxDT1VOVCgqKSBGUk9NIHN1Ym1pc3Npb25zIEdST1VQIEJZIHN0YXRlJykpLAogICAgICAgICAgICAgICAgICAnaW50ZWdyaXR5JzogJ29rJywgJ3JlYWRfb25seV9wcmVfb3Blbic6IFRydWUsICdzdG9yZV9jb25zdHJ1Y3RlZCc6IEZhbHNlfQogICAgICAgIGRiLnJvbGxiYWNrKCkKICAgIHJldHVybiByZXN1bHQKCgpkZWYgaW5zcGVjdF9jbG9zZWRfc25hcHNob3QocGF0aCwgZXhwZWN0ZWRfc2hhMjU2KToKICAgICIiIk9ubHkgYSBwcml2YXRlbHkgcmV0YWluZWQsIGZyb3plbiBtYWluLWZpbGUgc25hcHNob3Qgd2l0aCBubyBXQUwgZnJhbWVzLgoKICAgIENhbGxlciBtdXN0IGVzdGFibGlzaCBleGNsdXNpdmUgc25hcHNob3QgY3JlYXRpb24vYWRtaW4gZXhpdC9ubyB3cml0ZXIsIGFuZAogICAgc3VwcGx5IHRoZSByZWNvcmRlZCBmcm96ZW4gbWFpbiBkaWdlc3QuIE5ldmVyIHVzZSBmb3IgdGhlIGxpdmUgZGF0YWJhc2UuCiAgICBJbW11dGFibGUgU1FMaXRlIHJlYWRzIGlnbm9yZSBzdGFsZSBTSE0gYW5kIG5ldmVyIGNyZWF0ZS9jaGFuZ2Ugc2lkZWNhcnMuCiAgICBFeGlzdGluZyBzaWRlY2FycyByZW1haW4gY3VzdG9keSBldmlkZW5jZTsgbm90aGluZyBpcyBkZWxldGVkL2NoZWNrcG9pbnRlZC4KICAgICIiIgogICAgcGF0aCA9IFBhdGgocGF0aCkKICAgIGlmIHJlLmZ1bGxtYXRjaChyJ1swLTlhLWZdezY0fScsIGV4cGVjdGVkX3NoYTI1NikgaXMgTm9uZToKICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCdleGFjdCBmcm96ZW4gc25hcHNob3QgZGlnZXN0IHJlcXVpcmVkJykKICAgIGRlZiBtZXRhZGF0YSh0YXJnZXQpOgogICAgICAgIGluZm8gPSB0YXJnZXQubHN0YXQoKQogICAgICAgIGlmIG5vdCBzdGF0LlNfSVNSRUcoaW5mby5zdF9tb2RlKSBvciBzdGF0LlNfSU1PREUoaW5mby5zdF9tb2RlKSAhPSAwbzYwMCBvciBpbmZvLnN0X25saW5rICE9IDE6CiAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoJ3ByaXZhdGUgc2luZ2xlLWxpbmsgc25hcHNob3QgY3VzdG9keSByZXF1aXJlZCcpCiAgICAgICAgcmV0dXJuIGluZm8KICAgIG1haW4gPSBtZXRhZGF0YShwYXRoKQogICAgaWYgbm90IDAgPCBtYWluLnN0X3NpemUgPD0gNTEyICogMTAyNCoqMjoKICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCdib3VuZGVkIGZyb3plbiBzbmFwc2hvdCByZXF1aXJlZCcpCiAgICBkZWYgc2lkZWNhcnMoKToKICAgICAgICBpZGVudGl0aWVzID0ge30KICAgICAgICBmb3Igc3VmZml4IGluICgnLXdhbCcsICctc2htJyk6CiAgICAgICAgICAgIHRhcmdldCA9IFBhdGgoc3RyKHBhdGgpICsgc3VmZml4KQogICAgICAgICAgICBpZiBvcy5wYXRoLmxleGlzdHModGFyZ2V0KToKICAgICAgICAgICAgICAgIGluZm8gPSBtZXRhZGF0YSh0YXJnZXQpCiAgICAgICAgICAgICAgICBpZiBpbmZvLnN0X3VpZCAhPSBtYWluLnN0X3VpZCBvciBpbmZvLnN0X2dpZCAhPSBtYWluLnN0X2dpZDoKICAgICAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCdzbmFwc2hvdCBzaWRlY2FyIGN1c3RvZHkgY2hhbmdlZCcpCiAgICAgICAgICAgICAgICBpZiBzdWZmaXggPT0gJy13YWwnIGFuZCBpbmZvLnN0X3NpemUgIT0gMDoKICAgICAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCdzbmFwc2hvdCBoYXMgV0FMIGZyYW1lczsgaW1tdXRhYmxlIHJlYWQgcmVmdXNlZCcpCiAgICAgICAgICAgICAgICBpZGVudGl0aWVzW3N1ZmZpeF0gPSAoaW5mby5zdF9kZXYsIGluZm8uc3RfaW5vLCBpbmZvLnN0X3NpemUsIGluZm8uc3RfbXRpbWVfbnMpCiAgICAgICAgcmV0dXJuIGlkZW50aXRpZXMKICAgIGJlZm9yZV9zaWRlY2FycyA9IHNpZGVjYXJzKCkKICAgIGRlZiBkaWdlc3QoKToKICAgICAgICB2YWx1ZSA9IGhhc2hsaWIuc2hhMjU2KCkKICAgICAgICB3aXRoIHBhdGgub3BlbigncmInKSBhcyBzdHJlYW06CiAgICAgICAgICAgIGZvciBibG9jayBpbiBpdGVyKGxhbWJkYTogc3RyZWFtLnJlYWQoMTAyNCoqMiksIGInJyk6CiAgICAgICAgICAgICAgICB2YWx1ZS51cGRhdGUoYmxvY2spCiAgICAgICAgcmV0dXJuIHZhbHVlLmhleGRpZ2VzdCgpCiAgICBpZiBkaWdlc3QoKSAhPSBleHBlY3RlZF9zaGEyNTY6CiAgICAgICAgcmFpc2UgVmFsdWVFcnJvcignZnJvemVuIG1haW4tZmlsZSBkaWdlc3QgY2hhbmdlZCBiZWZvcmUgaW5zcGVjdGlvbicpCiAgICBwcm9vZiA9IGluc3BlY3RfcmVhZG9ubHkocGF0aCwgX2Nsb3NlZF9zbmFwc2hvdD1UcnVlKQogICAgYWZ0ZXIgPSBtZXRhZGF0YShwYXRoKQogICAgaWYgKGFmdGVyLnN0X2RldiwgYWZ0ZXIuc3RfaW5vLCBhZnRlci5zdF91aWQsIGFmdGVyLnN0X2dpZCwgYWZ0ZXIuc3Rfc2l6ZSkgIT0gKG1haW4uc3RfZGV2LCBtYWluLnN0X2lubywgbWFpbi5zdF91aWQsIG1haW4uc3RfZ2lkLCBtYWluLnN0X3NpemUpOgogICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoJ2Zyb3plbiBtYWluLWZpbGUgaWRlbnRpdHkgY2hhbmdlZCcpCiAgICBpZiBkaWdlc3QoKSAhPSBleHBlY3RlZF9zaGEyNTYgb3Igc2lkZWNhcnMoKSAhPSBiZWZvcmVfc2lkZWNhcnM6CiAgICAgICAgcmFpc2UgVmFsdWVFcnJvcignZnJvemVuIHNuYXBzaG90IGNoYW5nZWQgZHVyaW5nIGluc3BlY3Rpb24nKQogICAgcmV0dXJuIHByb29mCgoKaWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoKICAgIHBhcnNlciA9IGFyZ3BhcnNlLkFyZ3VtZW50UGFyc2VyKGRlc2NyaXB0aW9uPV9fZG9jX18pCiAgICBwYXJzZXIuYWRkX2FyZ3VtZW50KCctLWRiJywgdHlwZT1QYXRoLCByZXF1aXJlZD1UcnVlKQogICAgYXJncyA9IHBhcnNlci5wYXJzZV9hcmdzKCkKICAgIHRyeToKICAgICAgICBwcmludChqc29uLmR1bXBzKGluc3BlY3RfcmVhZG9ubHkoYXJncy5kYiksIHNvcnRfa2V5cz1UcnVlKSkKICAgIGV4Y2VwdCBFeGNlcHRpb246CiAgICAgICAgcmFpc2UgU3lzdGVtRXhpdCgncmVhZC1vbmx5IHNjaGVtYTUvaW50ZWdyaXR5L2NvdW50IGdhdGUgcmVmdXNlZDsgbm8gU3RvcmUvYWRtaW4gb3BlbicpIGZyb20gTm9uZQo="
|
|
},
|
|
{
|
|
"digest": "sha256:042327a036ed254cf95dbeb0c056ac25b03a6a844b95a332c992df2943691369",
|
|
"media_type": "application/json",
|
|
"content_base64": "ewogICJjb25maWdtYXAiOiB7CiAgICAiYXBpVmVyc2lvbiI6ICJ2MSIsCiAgICAiaW1tdXRhYmxlIjogdHJ1ZSwKICAgICJraW5kIjogIkNvbmZpZ01hcCIsCiAgICAibWV0YWRhdGEiOiB7CiAgICAgICJhbm5vdGF0aW9ucyI6IHsKICAgICAgICAiYXJnb2NkLmFyZ29wcm9qLmlvL3RyYWNraW5nLWlkIjogImluZm9ybWVkLWRlY2lzaW9uOi9Db25maWdNYXA6aW5mb3JtZWQtZGVjaXNpb24vaW5mb3JtZWQtZGVjaXNpb24tcnVudGltZS02YzIyMTg3OGQwNTEiLAogICAgICAgICJpbmZvcm1lZC1kZWNpc2lvbi5jb3Vsb21iLnNvY2lhbC9hZG1pc3Npb24iOiAiYXBwcm92ZWQ7IElORkQtV1AtMDAwNyBjdXRvdmVyIgogICAgICB9LAogICAgICAibmFtZSI6ICJpbmZvcm1lZC1kZWNpc2lvbi1ydW50aW1lLTZjMjIxODc4ZDA1MSIsCiAgICAgICJuYW1lc3BhY2UiOiAiaW5mb3JtZWQtZGVjaXNpb24iLAogICAgICAidWlkIjogIjkwMTEzZDJkLTU0ZDktNGU4Mi1iMWQzLTkwYjQ5ZWJlZDJiNSIKICAgIH0sCiAgICAiY2Fub25pY2FsX2RhdGFfc2hhMjU2IjogIjhlYzQ2MmQxMjM0NzU0OGY1MDZlZWViZjFlM2M3Y2M0NzY0ODAxOWM4YTc4MzgwNGQwOWJjYzc5YjBmMjJhZjYiCiAgfSwKICAicHZjIjogewogICAgImFwaVZlcnNpb24iOiAidjEiLAogICAgImtpbmQiOiAiUGVyc2lzdGVudFZvbHVtZUNsYWltIiwKICAgICJtZXRhZGF0YSI6IHsKICAgICAgImFubm90YXRpb25zIjogewogICAgICAgICJhcmdvY2QuYXJnb3Byb2ouaW8vdHJhY2tpbmctaWQiOiAiaW5mb3JtZWQtZGVjaXNpb246L1BlcnNpc3RlbnRWb2x1bWVDbGFpbTppbmZvcm1lZC1kZWNpc2lvbi9pbmZvcm1lZC1kZWNpc2lvbi1kYXRhIiwKICAgICAgICAiaW5mb3JtZWQtZGVjaXNpb24uY291bG9tYi5zb2NpYWwvYWRtaXNzaW9uIjogImFwcHJvdmVkOyBJTkZELVdQLTAwMDcgY3V0b3ZlciIsCiAgICAgICAgInB2Lmt1YmVybmV0ZXMuaW8vYmluZC1jb21wbGV0ZWQiOiAieWVzIiwKICAgICAgICAicHYua3ViZXJuZXRlcy5pby9ib3VuZC1ieS1jb250cm9sbGVyIjogInllcyIsCiAgICAgICAgInZvbHVtZS5iZXRhLmt1YmVybmV0ZXMuaW8vc3RvcmFnZS1wcm92aXNpb25lciI6ICJyYW5jaGVyLmlvL2xvY2FsLXBhdGgiLAogICAgICAgICJ2b2x1bWUua3ViZXJuZXRlcy5pby9zZWxlY3RlZC1ub2RlIjogIjIzOS42Mi4yMDUuOTIuaG9zdC5zZWN1cmVzZXJ2ZXIubmV0IiwKICAgICAgICAidm9sdW1lLmt1YmVybmV0ZXMuaW8vc3RvcmFnZS1wcm92aXNpb25lciI6ICJyYW5jaGVyLmlvL2xvY2FsLXBhdGgiCiAgICAgIH0sCiAgICAgICJmaW5hbGl6ZXJzIjogWwogICAgICAgICJrdWJlcm5ldGVzLmlvL3B2Yy1wcm90ZWN0aW9uIgogICAgICBdLAogICAgICAibmFtZSI6ICJpbmZvcm1lZC1kZWNpc2lvbi1kYXRhIiwKICAgICAgIm5hbWVzcGFjZSI6ICJpbmZvcm1lZC1kZWNpc2lvbiIsCiAgICAgICJ1aWQiOiAiZDgwYjI1YjEtMTQxYS00NDFiLWIyMDUtOThmYTJmZDk4YjdjIgogICAgfSwKICAgICJzcGVjIjogewogICAgICAiYWNjZXNzTW9kZXMiOiBbCiAgICAgICAgIlJlYWRXcml0ZU9uY2UiCiAgICAgIF0sCiAgICAgICJyZXNvdXJjZXMiOiB7CiAgICAgICAgInJlcXVlc3RzIjogewogICAgICAgICAgInN0b3JhZ2UiOiAiMUdpIgogICAgICAgIH0KICAgICAgfSwKICAgICAgInN0b3JhZ2VDbGFzc05hbWUiOiAibG9jYWwtcGF0aCIsCiAgICAgICJ2b2x1bWVNb2RlIjogIkZpbGVzeXN0ZW0iLAogICAgICAidm9sdW1lTmFtZSI6ICJwdmMtZDgwYjI1YjEtMTQxYS00NDFiLWIyMDUtOThmYTJmZDk4YjdjIgogICAgfQogIH0sCiAgInB2Y19waGFzZSI6ICJCb3VuZCIKfQo="
|
|
},
|
|
{
|
|
"digest": "sha256:54aa31c7709c5178d1aa0dda5ef22340fc2c1ede7635c8273c53e7954885f8e5",
|
|
"media_type": "text/markdown",
|
|
"content_base64": "IyBWZXJzaW9uMiBwcm90ZWN0ZWQgZXhpc3Rpbmctc25hcHNob3QgcmVzY3VlIGFuZCBjb25kaXRpb25hbCBjb250aW51YXRpb24KClNhbWUgcHJvcG9zYWwgSU5GRC1XUC0wMDA5LVQwNC9wdXJwb3NlLW92ZXJsYXktdjEsIHRyaWFsIGluZmQtcHVycG9zZS0yMDI2MTAxMS1yMS4gT3JpZ2luYWwgdmVyc2lvbjEgZm91bmRlciBhY2NlcHRhbmNlIGFwcHJvdmVkIHNvdXJjZSBiYzY0OTRjZDFiMjkwNzgzZWYzYWVmMDc2M2JmMjhkMWRlYWJmNGIwLiBEcmlsbC1iYWNrdXAgY29tcGxldGVkOyBkcmlsbC1jb3B5IGZhaWxlZCBWYWx1ZUVycm9yIGJlZm9yZSBhbnkgbG9jYWxmaWxlLiBObyBpbWFnZSByb2xsb3V0IG9jY3VycmVkLiBUaGlzIGV4YWN0IGNoYW5nZWQgc291cmNlL3BsYW4vaGVscGVyIHJlcXVpcmVzIE5FVyBmb3VuZGVyIGFjY2VwdGFuY2Ugb2YgbWVtbyB2ZXJzaW9uMiBiZWZvcmUgcmVzY3VlL2NvbnRpbnVhdGlvbjsgcHJpb3IgYXBwcm92YWwgYW5kIHRlY2huaWNhbCByZXZpZXcgZG8gbm90IGFwcHJvdmUgaXQuCgojIyBGYWlsdXJlIGFuZCBuYXJyb3dseSBzZWxlY3RlZCByZXNjdWUKCk9yaWdpbmFsIHNuYXBzaG90IG1haW4xOTUzNzkyMGJ5dGVzIFNIQTg3NTZjZjgyNWRmOWU3YjViNzRiYjRhMDEwNmE1MDI3ZjVjZmYyYzU5ZmY0NWQ3YjQ4ZWVkODUyMmE3ZDMzZjMgaXMgdW5jaGFuZ2VkLiBSb290J3MgbWV0YWRhdGEtb25seSB2ZXJpZmljYXRpb24gc2hvd3MgV0FMMGJ5dGVzLCBTSE0zMjc2OGJ5dGVzLCBwcml2YXRlVUlEMTAwMDEvbW9kZTA2MDAvbmxpbmsxLCBhbmQgbm8gbG9jYWwgc25hcHNob3QuIFRoZSBvbGQgU1FMaXRlIGNvbm5lY3Rpb24gY29udGV4dCBtYW5hZ2VyIGRpZCBub3QgZXhwbGljaXRseSBjbG9zZTsgaXRzIFdBTCByZWFkZXIgY2FuIGNyZWF0ZSBTSE0gaW5kZXhpbmcsIGFuZCB0aGUgbmV4dCBjb3B5IHJlamVjdGVkIHRoYXQgbm9uemVybyBpbmRleC4gUGxhdGZvcm0gaW5kZXBlbmRlbnRseSByZXByb2R1Y2VkIHRoaXMgb24gc3ludGhldGljIGRhdGEuIE5vIG5hdGl2ZSBEQiB3YXMgb3BlbmVkIHRvIGRpYWdub3NlIHRoZSBzaWRlY2FyIG1ldGFkYXRhLCBhbmQgbm8gbmF0aXZlIHNpZGVjYXIgaXMgZGVsZXRlZC9jaGVja3BvaW50ZWQuCgpSZXVzZSB0aGlzIGV4YWN0IGluZGVwZW5kZW50bHkgaGFzaC1ib3VuZCBmcm96ZW4gbWFpbiBzbmFwc2hvdCByYXRoZXIgdGhhbiBtYWtlIGFub3RoZXIgZHJpbGwgYmFja3VwLiBUaGUgYmFja3VwYWRtaW4gZXhpdGVkIGFmdGVyIGNyZWF0aW5nIHRoZSB1bmlxdWVseSBvd25lZCBwcml2YXRlIHNuYXBzaG90LiBPcmlnaW5hbCBzdWJzZXF1ZW50IHNuYXBzaG90IGFjY2VzcyB3YXMgcmVhZG9ubHk7IGFjdHVhbCBzZXJ2aWNlIERCIGlzIHRoZSBkaXN0aW5jdCAvZGF0YS9wcml2YXRlL3Jldmlldy5zcWxpdGUuIE9yaWdpbmFsIGpvdXJuYWwgaGFzIG9ubHkgQ09NUExFVEUgZHJpbGwtYmFja3VwIGQ2MzE4MmE3LWUxYTUtNGU4ZS1hNWYxLTJiZjMzMzNjZjE1MyBhbmQgVU5DRVJUQUlOIGRyaWxsLWNvcHkzMjllZjE5MC0xNjkyLTQyNDYtYjk1My1lNmE1OTY2NGFiY2MuIEl0cyBleGFjdCBTSEEgZDE4N2IwMmQ5OGQ2ZTk3NDI5ZmUyMGI0ZmJlMWQzMDlhNmM2YzRiNTUyMzJiNGFlMTNhYzM5ODczMDM5ZjFjMSwgb3JpZ2luYWwgc291cmNlL21lbW8vcGxhbiBpZGVudGl0eSBhbmQgb3V0Y29tZXMgYXJlIHZlcmlmaWVkIGJlZm9yZS9hZnRlciBldmVyeSBuZXcgcGhhc2UuIE5vIG90aGVyIG9yaWdpbmFsIGFjdGlvbiBvciByb2xsb3V0IGlzIGFsbG93ZWQuCgpUaGUgZXhwbGljaXRseSBuYW1lZCBkcmlsbC1jb3B5LXJlc2N1ZS1yMSBjcmVhdGVzIGEgc2VwYXJhdGUgcmVzY3VlLWV4ZWN1dGlvbi1qb3VybmFsLXIxLmpzb24vbG9jayBpbiBleGlzdGluZyBwcm90ZWN0ZWQgaWdub3JlZCBjdXN0b2R5OyBpdCBoYXNoLWxpbmtzIG9yaWdpbmFsIGF0dGVtcHRzIGFuZCBiYWNrdXByZXN1bHQgYW5kIG5ldmVyIHJld3JpdGVzL3N5bnRoZXNpemVzIHRoZSBvbGQgZmFpbGVkIHBoYXNlLiBBbnkgYXR0ZW1wdGVkIHJlc2N1ZSByZXN1bHQsIGNyYXNoIG9yIGFtYmlndW91cyBvdXRwdXQgaXMgZHVyYWJsZSBhbmQgc2FtZS1waGFzZSByZXRyeSBpcyByZWZ1c2VkLiBCZWZvcmUgcmVzY3VlOiBsb2NhbCBkcmlsbC5zcWxpdGUvY3V0b3Zlci5zcWxpdGUgYW5kIGV4aXN0aW5nIHJlc3RvcmUgdm9sdW1lIG11c3QgYmUgYWJzZW50OyBuYXRpdmUgb3JpZ2luYWxQb2RVSUQvY3VycmVudG9sZGltYWdlN2Y1L0FyZ283ZGIvc2VhbGVkRGVwbG95bWVudC9DTS9QVkMgbWF0Y2guIFRoZSBmaXhlZCBpbW11dGFibGUgc25hcHNob3QgcmVhZGVyIGNoZWNrcyByZWNvcmRlZCBkaWdlc3QvcHJpdmF0ZSBpZGVudGl0eS9ubyBXQUxmcmFtZXMgYmVmb3JlIGFuZCBhZnRlciBzY2hlbWE1L2ludGVncml0eS9jb3VudCB2YWxpZGF0aW9uLCByZXRhaW5pbmcgdW5jaGFuZ2VkIFNITS4gTm9uemVybyBXQUwgb3IgYW55IGlkZW50aXR5L2hhc2ggZHJpZnQgc3RvcHMgcmVzY3VlLiBTbmFwc2hvdCBiaW5hcnlzdGRvdXQgZmxvd3Mgb25seSB0byBhIG5ldzA2MDBwcml2YXRlIGZpbGUsIHdpdGggYm91bmRlZCBzaXplL2hhc2ggYW5kIHJlcGVhdCBzb3VyY2UgcHJvb2YuIEl0IG5ldmVyIHJlYWNoZXMgY2hhdC9sb2cvR2l0L1N0YXRlSHViLgoKIyMgTGl2ZS1XQUwgYW5kIGRhdGEgY29tcGF0aWJpbGl0eSBib3VuZGFyaWVzCgpMaXZlIHNvdXJjZSBhbmQgd3JpdGFibGUgb2ZmbGluZSBwcmUvcG9zdC1hZG1pbiByZWFkcyBNVVNUIHN0YXkgbW9kZT1yby9xdWVyeV9vbmx5IGFuZCBleHBsaWNpdGx5IGNsb3NlIFNRTGl0ZSBjb25uZWN0aW9ucy4gaW1tdXRhYmxlPTEgaWdub3JlcyBXQUwgYW5kIHdvdWxkIGxvc2UgY29tbWl0dGVkIGxpdmUgcm93czsgaXQgaXMgcmVzdHJpY3RlZCB0byB0aGUgcHJvdmVuIGZyb3plbiBjbG9zZWQtbWFpbiBzbmFwc2hvdCwgbmV2ZXIgdGhlIGxpdmVEQiBvciB3cml0YWJsZWNsb25lLiBCZWZvcmUgQU5ZIG5hdGl2ZSBzb3VyY2Ugb3IgcmVzdG9yZWRjb3B5IFN0b3JlL2FkbWluIG9wZW4sIHJlcXVpcmUgc3RkbGliIHJlYWRvbmx5IHNjaGVtYTUvaW50ZWdyaXR5L2NvdW50czsgcmVmdXNlIG9sZHNjaGVtYXMgYmVmb3JlIGF1dG9tYXRpYyBtaWdyYXRpb24uIEZyb3plbiBzbmFwc2hvdC9jbG9uZSBjb3VudCBlcXVhbGl0eSBpcyBleGFjdDsgY3VycmVudGxpdmUgY291bnRlciBjaGFuZ2VzIG1heSByZWZsZWN0IGNvbmN1cnJlbnQgbGVnaXRpbWF0ZSBjb21taXRzIGFuZCBhcmUgcmV0YWluZWQuCgpPbmx5IGFmdGVyIENPTVBMRVRFIG5hbWVkIHJlc2N1ZSBkb2VzIG9mZmxpbmUtdmVyaWZ5IGNvbnN1bWUgaXRzIHJlc3VsdCB2aWEgZXhwbGljaXQgbWFwcGluZywgbm90IHRoZSBvbGQgVU5DRVJUQUlOIGRyaWxsLWNvcHkuIEV4aXN0aW5nIGlzb2xhdGVkIGRpc3Bvc2FibGV2b2x1bWUgaW5mZC1wdXJwb3NlLXIxLXJlc3RvcmUtMjAyNjEwMTEgbXVzdCBiZSBhYnNlbnQvbmV3IG5vbmNlLWJvdW5kLiBPbmUgZXhhY3Q3NjNjIFVJRDAvQ0FQX0NIT1dOLW9ubHkgaW5pdGlhbGl6ZXIgcmVjZWl2ZXMgc25hcHNob3RzdGRpbiBpbnRvIHRoYXQgTkVXdm9sdW1lLCBuZXR3b3Jrbm9uZS9yZWFkb25seXJvb3Qvbm8tbmV3cHJpdmlsZWdlcy9DUFUxLzEyOE1pLCBubyBob3N0L25hdGl2ZVBWQy9ydW50aW1lY29uZmlnL3Rva2VuIG1vdW50cy4gSXQgc2V0cyBmb2xkZXIwNzAwL2ZpbGUwNjAwVUlEMTAwMDEsIGZvbGxvd2VkIGJ5IFVJRDEwMDAxIHByZS1vcGVuIHJlYWRvbmx5LCAtLWVudHJ5cG9pbnQgaW5mb3JtZWQtZGVjaXNpb24tYWRtaW4gaW5zcGVjdCAtLWRiIC9yZXN0b3JlL3Jldmlldy5zcWxpdGUgYW5kIHBvc3QtYWRtaW4gcmVhZG9ubHkgZnVsbHByb29mOyBvcmlnaW5hbCBwcm90ZWN0ZWQgU0hBIG11c3QgcmVtYWluIHVuY2hhbmdlZC4gTm8gc2VydmljZWVudHJ5cG9pbnQgc3RhcnRzLiBDbGVhbnVwIG9ubHkgdGhpcyBkaXNwb3NhYmxlIHZvbHVtZSwgcmV0YWluaW5nIG9yaWdpbmFsIG5hdGl2ZS9vZmZjbHVzdGVyIHNuYXBzaG90cy9zaWRlY2Fycy4KCiMjIENvbmRpdGlvbmFsIHJlbWFpbmluZyBwaGFzZXMgYW5kIHJlbGVhc2UvcmVjb3ZlcnkKCk5ld2pvdXJuYWwgZml4ZWQgb3JkZXI6IGRyaWxsLWNvcHktcmVzY3VlLXIxIOKGkiBvZmZsaW5lLXZlcmlmeSDihpIgY2xlYW51cC1vZmZsaW5lIOKGkiBjdXRvdmVyLWJhY2t1cCDihpIgY3V0b3Zlci1jb3B5IOKGkiByZWxlYXNlIOKGkiB2ZXJpZnkuIGN1dG92ZXItYmFja3VwIHVzZXMgZGlzdGluY3QgbmV3Y3V0b3Zlci5zcWxpdGUgaW4gb3JpZ2luYWxwcml2YXRlY2FzZSBkaXJlY3RvcnksIGFmdGVyIHJlYWRvbmx5IGxpdmUgc2NoZW1hNS9jYXBhY2l0eSBnYXRlcywgU1FMaXRlYmFja3VwQVBJL2FkbWluIGNvbXBsZXRpb24sIGNsb3NlZC1tYWluIGltbXV0YWJsZSBwcm9vZjsgZG8gbm90IG92ZXJ3cml0ZSBvcmlnaW5hbHMgb3IgcmV0cnlmYWlsZWRwYXRocy4gVmVyc2lvbjIgYWNjZXB0YW5jZSBjb25kaXRpb25hbGx5IGFwcHJvdmVzIHRoZXNlIGV4YWN0IHVuY2hhbmdlZCByZW1haW5pbmcgb3BlcmF0aW9ucyBvbmx5IGFmdGVyIHJlc2N1ZStkcmlsbGdhdGVzLiBBbGwgZm91ciBjb21taXR0ZWQgS3VzdG9taXplIEdpdCBibG9icy9jdXJyZW50SEVBRCwgZXhhY3QgaGVscGVyL2Nhc2UgaGFzaGVzLCBDTS9QVkMvRGVwbG95bWVudCBzZWFscyBhbmQgbWFudWFsQXBwbGljYXRpb24obm8gYXV0b21hdGVke30gb3Igc291cmNlb3ZlcnJpZGUpIG11c3QgbWF0Y2guCgpSZWxlYXNlIHJldGFpbnMgZXhpc3RpbmcgcmVwbGljYTEvUmVjcmVhdGUvY29uZmlnNmMvc2NoZW1hNS9QVkMvY3JlZGVudGlhbHMvcG9saWNpZXM6IHNvdXJjZXBpbiBBcHBsaWNhdGlvbi5vcGVyYXRpb24gc2VydmVyZHJ5cnVuL1VJRCtyZXNvdXJjZVZlcnNpb24rc291cmNlIENBUywgRGVwbG95bWVudC1vbmx5IGltYWdlNzYzYywgcHJ1bmU9ZmFsc2UuIE5vIHdob2xlLWFwcCBzeW5jL2Fkb3B0aW9uLiBWZXJpZnkgcmVxdWlyZXMgc3VjY2VlZGVkIGV4YWN0c2NvcGUvY29udHJvbGxlcmdlbmVyYXRpb24vUmVhZHkxLCBpbnN0YWxsZWRwb2xpY3loYXNoL21vZGVVSUQvMTBzeW50aGV0aWNwdXJwb3NldmFyaWFudHMrYm91bmRlZGhlYWx0aCwgc2FtZSBjdXJyZW50bGl2ZURCIHNjaGVtYTUvaW50ZWdyaXR5L2NvdW50cy4gVGhvc2UgaW5zdGFsbGVkY2hlY2tzIHJlcG9ydCBuYXRpdmVfcHJvdmlkZXI9ZmFsc2U7IGFjdHVhbHByb3ZpZGVyL1BEUGF1dGhvcml0eSBldmlkZW5jZSByZW1haW5zIGEgc2VwYXJhdGUgVDA0Z2F0ZS4KClJvbGxiYWNrIGFmdGVyIHJlY29yZGVkIG5ld3JlbGVhc2UgYXR0ZW1wdCBwaW5zIHByaW9yN2RiLzdmNSBhbmQgcmV0YWlucyBsYXRlc3RzY2hlbWE1REIsIHdpdGhvdXQgcmVxdWlyaW5nIFJlYWR5IGZhaWxpbmdjYW5kaWRhdGUgb3IgY2FuZGlkYXRlREJleGVjLiBTZXBhcmF0ZSByb2xsYmFjay12ZXJpZnkgcHJvdmVzIG9sZGltYWdlUmVhZHkxL3Njb3BlZG9wZXJhdGlvbi9yZWFkb25seXNjaGVtYTUgY3VycmVudERCIGludGVncml0eS4gTmV2ZXIgcmVzdG9yZSBhbiBvbGRlciBzbmFwc2hvdCBvdmVyIHBvc3RjdXRvdmVycmVjb3Jkcy4gQW55IGRhdGEgcmVjb3ZlcnkgYmV5b25kIHRoaXMgc2FtZS1zY2hlbWEgaW1hZ2Ugcm9sbGJhY2sgbmVlZHMgYW5vdGhlciBkZWNpc2lvbi4KCkFsbCBwaGFzZXMgaW5jbHVkaW5nIHJlc2N1ZSwgdmVyaWZpY2F0aW9uIGFuZCByZWNvdmVyeSBtdXN0IGJlZ2luIGJlZm9yZTIwMjYtMTAtMTJUMjM6NTk6NTlaLiBTdGFydCBlYXJseSBlbm91Z2g7IGlmIGV4cGlyZWQgc3RvcCBhbmQgb2J0YWluIGEgZnJlc2ggZm91bmRlciBkZWNpc2lvbiwgd2hpY2ggbWF5IGRlbGF5IHJlY292ZXJ5LiBObyBhdXRvbWF0aWMgdGltZXIvY29udHJvbGxlci9leHRlbnNpb24uIFJvb3QgZnJlc2hseSBhdXRoZW50aWNhdGVzIGV4YWN0IGNvbmZpcm1lZCBwbGF0Zm9ybS1yb290IHBlcnNvbiBBQ0NFUFQgbWVtbyB2ZXJzaW9uMiBhdCBmaXhlZG5hdGl2ZW9yaWdpbiBiZWZvcmUgZXZlcnkgcGhhc2U7IHByb3RlY3RlZHJlY2VpcHRyZWxhdGlvbi9mcmVzaG5lc3MxMjBzZWMgaXMgc3VwZXJ2aXNlZGJvb2trZWVwaW5nLCBub3QgYSBzaWduZWQvYXV0b25vbW91cyBncmFudC4KCkltYWdlNzYzYy9wb2xpY3k5ZDdjL2Jhc2U3ZjUgYW5kIGFjdHVhbHVuZmlsdGVyZWRzY2FuMEhJR0gvQ1JJVElDQUwvMWZpeGFibGVNRURJVU16bGliIHJlbWFpbiB1bmNoYW5nZWQsIG93bmVyIElORkQtUklTSy0yMDI2MTAxMS1aTElCLTg1MDkxL1QwNSBkdWVPY3QxOC4gVGhlIGV4YWN0YnVuZGxlIGRpcmVjdGx5IGJpbmRzIGhlbHBlci9wbGFuL3Rlc3RzIHBsdXMgb3JpZ2luYWwgY291bnQtb25seWJhY2t1cC9mYWlsdXJlL2FuY2hvci4gRXhpc3RpbmdwdWJsaXNoZWRyZWNlaXB0IHN0aWxsIGJpbmRzIHVuY2hhbmdlZCByYXdzY2FuL1NCT00vYmFzZSBzY2FuOyBubyBzdXBwcmVzc2lvbi4gUHJlc2VydmUgb3JpZ2luYWxhcHByb3ZlZDIwZG9jcGFja2V0L2hlbHBlcnMvaGlzdG9yeSBpbiBpbml0aWFsLWFwcHJvdmVkLWJjNjQ5NGNkLiBObyB2ZXJzaW9uMiBuYXRpdmUgb3BlcmF0aW9uIGhhcyBydW4uIEVVUjAgcmVjdXJyaW5naW5mcmFzdHJ1Y3R1cmU7IHByaXZhdGUgYm91bmRlZHN0b3JhZ2UvYXR0ZW5kZWR0aW1lIHVucHJpY2VkLCBubyBuZXdkcmlsbGJhY2t1cCBvciBhdXRvbm9teWdyYW50LgoKTmF0aXZlIHNvdXJjZSBwdWJsaWNhdGlvbiB1c2VzIGV4YWN0IHJldmlzaW9uLWNvbW1hbmQuanNvbiB2aWEgL2xpZmVjeWNsZS9tZW1vcy9pbmZkLTIwMjYxMDExLXB1cnBvc2Utb3ZlcmxheS1yMS9yZXZpc2lvbnMsIGV4cGVjdGVkX3ZlcnNpb24xLCBvbmx5IGFmdGVyIGZyZXNoIHVuYm91bmQtc291cmNlIHJlYWRiYWNrLiBObyB2ZXJzaW9uMiBpbnRha2UvcmVnaXN0ZXIuIFB1Ymxpc2gvcmV2aWV3IHNvdXJjZXZlcnNpb24yOyBuZXcgaHVtYW4gcmV2aWV3LUlEIGlzIG93bnZlcnNpb24xLCBzbyBpdHMgY29uZmlybWVkIG5lc3RlZCBkaXNwb3NpdGlvbiBtZW1vX3ZlcnNpb24xIGlzIGNvcnJlY3QuIFJvb3QgYWN0dWFsIG91dGNvbWVzIHF1ZXJ5IG11c3QgbmFtZSBTT1VSQ0UgdmVyc2lvbjIgYW5kIGV4YWN0IG5ld3Jldmlld0lEOyBvcmlnaW5hbCByZXZpZXcvYXBwcm92YWwgY2Fubm90IGJlIHJldXNlZC4K"
|
|
},
|
|
{
|
|
"digest": "sha256:e8da413bf985ef2cb66c71a093ba7fc0636ab884f428e40a18b40ccff8e3b101",
|
|
"media_type": "application/json",
|
|
"content_base64": "ewogICJpZCI6ICJJTkZELVJJU0stMjAyNjEwMTEtWkxJQi04NTA5MSIsCiAgImtpbmQiOiAib3duZXItdnVsbmVyYWJpbGl0eS1mb2xsb3ctdGhyb3VnaCIsCiAgIm93bmVyIjogImluZm9ybWVkLWRlY2lzaW9uIiwKICAidGFzayI6ICJJTkZELVdQLTAwMDktVDA1IiwKICAic3RhdHVzIjogIm9wZW4iLAogICJjcmVhdGVkIjogIjIwMjYtMTAtMTEiLAogICJyZXZpZXdfZHVlIjogIjIwMjYtMTAtMTgiLAogICJmaW5kaW5nIjogIkNWRS0yMDI2LTg1MDkxIiwKICAic2Nhbm5lcl9zZXZlcml0eSI6ICJNRURJVU0iLAogICJlc3RhdGVfcmlza19ncmFkZSI6IG51bGwsCiAgImFmZmVjdGVkX3BhY2thZ2UiOiAiemxpYiIsCiAgImluc3RhbGxlZCI6ICIxLjMuMi1yMCIsCiAgImZpeGVkIjogIjEuMy4yLXIxIiwKICAiYWN0dWFsX2N1cnJlbnRfYmFzZV9hbmRfY2FuZGlkYXRlX2ZpbmRpbmdzX2lkZW50aWNhbCI6IHRydWUsCiAgInNvdXJjZV9ldmlkZW5jZSI6ICJzZWN1cml0eS1zdW1tYXJ5Lmpzb24sIHRyaXZ5LWZ1bGwuanNvbiwgYmFzZS10cml2eS1mdWxsLmpzb24iLAogICJodW1hbl90ZW1wb3JhcnlfZGlzcG9zaXRpb24iOiAicGVuZGluZyIsCiAgImZvbGxvd190aHJvdWdoIjogIlByZXBhcmUgYSBzZXBhcmF0ZWx5IHNvdXJjZS1ib3VuZCBvZmZpY2lhbC1iYXNlL2RlcGVuZGVuY3kgcmVmcmVzaCB0aHJvdWdoIG5vcm1hbCBvd25lciBDSSwgdmVyaWZ5IGZ1bGwgc2NhbiBhbmQgcnVudGltZSBjb21wYXRpYmlsaXR5LCBvYnRhaW4gZGlzdGluY3QgbmF0aXZlIHJlbGVhc2UgYXBwcm92YWwgYmVmb3JlIHVwZGF0aW5nIHRoaXMgd29ya2xvYWQiLAogICJtYW51YWxfcmV2aWV3X2V4cGlyeSI6ICJEdWUgZGF0ZSByZXF1aXJlcyBvd25lciByZXZpZXcvZXNjYWxhdGlvbiBpZiB1bnJlc29sdmVkOyBubyBhdXRvbWF0aWMgcm9sbGJhY2svY29udHJvbGxlciBpcyBpbnN0YWxsZWQiLAogICJjbG9zZV9jb25kaXRpb24iOiAiVmVyaWZpZWQgaW5zdGFsbGVkIG5hdGl2ZSBmaXhlZCBwYWNrYWdlIGFuZCBmdWxsIHVuZmlsdGVyZWQgcmVzY2FuOyBwcmVzZXJ2ZSBvcmlnaW5hbCBkZXRlY3Rpb24gYW5kIGFueSBodW1hbiBkaXNwb3NpdGlvbiIKfQo="
|
|
},
|
|
{
|
|
"digest": "sha256:eb5f41aefb97666bb0c1279617e95a7c05017a609415624daee724c48b90d262",
|
|
"media_type": "application/json",
|
|
"content_base64": "ewogICJjYXB0dXJlZF9hdCI6ICIyMDI2LTEwLTExVDAxOjI1OjM4Ljc5MzU1NSswMDowMCIsCiAgIm5hdGl2ZV93b3JrbG9hZF9jaGFuZ2VkIjogZmFsc2UsCiAgIm5hdGl2ZV9iYWNrdXBfcmVzdG9yZV9leGVjdXRlZCI6IGZhbHNlLAogICJhcmdvIjogewogICAgInVpZCI6ICI0OTk4NjhmMi1lYWJjLTRkZjQtYWUzMS1iODljZTU4ZDc1MGQiLAogICAgInJlcG9VUkwiOiAiaHR0cHM6Ly9mb3JnZWpvLmNvdWxvbWIuc29jaWFsL2NvdWxvbWIvaW5mb3JtZWQtZGVjaXNpb24uZ2l0IiwKICAgICJ0YXJnZXRSZXZpc2lvbiI6ICI3ZGI4NDg1ZmZlY2RlYmZhYmQ3N2E5ZGFlYzA4NTU1M2M3NGJmMGJmIiwKICAgICJwYXRoIjogImRlcGxveS9saWZlY3ljbGUiLAogICAgImRlc3RpbmF0aW9uIjogewogICAgICAibmFtZXNwYWNlIjogImluZm9ybWVkLWRlY2lzaW9uIiwKICAgICAgInNlcnZlciI6ICJodHRwczovL2t1YmVybmV0ZXMuZGVmYXVsdC5zdmMiCiAgICB9LAogICAgImF1dG9tYXRlZCI6IGZhbHNlLAogICAgInN5bmMiOiB7CiAgICAgICJjb21wYXJlZFRvIjogewogICAgICAgICJkZXN0aW5hdGlvbiI6IHsKICAgICAgICAgICJuYW1lc3BhY2UiOiAiaW5mb3JtZWQtZGVjaXNpb24iLAogICAgICAgICAgInNlcnZlciI6ICJodHRwczovL2t1YmVybmV0ZXMuZGVmYXVsdC5zdmMiCiAgICAgICAgfSwKICAgICAgICAic291cmNlIjogewogICAgICAgICAgInBhdGgiOiAiZGVwbG95L2xpZmVjeWNsZSIsCiAgICAgICAgICAicmVwb1VSTCI6ICJodHRwczovL2Zvcmdlam8uY291bG9tYi5zb2NpYWwvY291bG9tYi9pbmZvcm1lZC1kZWNpc2lvbi5naXQiLAogICAgICAgICAgInRhcmdldFJldmlzaW9uIjogIjdkYjg0ODVmZmVjZGViZmFiZDc3YTlkYWVjMDg1NTUzYzc0YmYwYmYiCiAgICAgICAgfQogICAgICB9LAogICAgICAicmV2aXNpb24iOiAiN2RiODQ4NWZmZWNkZWJmYWJkNzdhOWRhZWMwODU1NTNjNzRiZjBiZiIsCiAgICAgICJzdGF0dXMiOiAiT3V0T2ZTeW5jIgogICAgfSwKICAgICJoZWFsdGgiOiB7CiAgICAgICJsYXN0VHJhbnNpdGlvblRpbWUiOiAiMjAyNi0xMC0xMFQyMzoxNDo1MloiLAogICAgICAic3RhdHVzIjogIkhlYWx0aHkiCiAgICB9CiAgfSwKICAibGl2ZV9yZWFkeV9yZXBsaWNhcyI6IDEsCiAgImFkbWl0dGVkX3VpZCI6ICJhNTg4ZTEwYS05MGQyLTQ4ODMtOTc1ZS02ZGQ4YjhmZWNhOTIiLAogICJzZXJ2ZXJfZHJ5X3J1bl9wYXNzZWQiOiB0cnVlLAogICJhZG1pdHRlZF9zcGVjX2V4YWN0bHlfbGl2ZV9wbHVzX2ltYWdlIjogdHJ1ZSwKICAiY2xpZW50X2RpZmZfZXhpdCI6IDEsCiAgImNsaWVudF9kaWZmX3NoYTI1NiI6ICJhNGJjMDI0YThjZWM2NThmODM1Mjg1ZWQ1MTk2NGUyZTA4NGVkYmFmMTAzZDQ1YTQ4Yjg5YzA5NTBiY2QzZTdkIiwKICAibm9kZV9hbGxvY2F0ZWRfcmVzb3VyY2VzIjogIihUb3RhbCBsaW1pdHMgbWF5IGJlIG92ZXIgMTAwIHBlcmNlbnQsIGkuZS4sIG92ZXJjb21taXR0ZWQuKVxuICBSZXNvdXJjZSAgICAgICAgICAgUmVxdWVzdHMgICAgICBMaW1pdHNcbiAgLS0tLS0tLS0gICAgICAgICAgIC0tLS0tLS0tICAgICAgLS0tLS0tXG4gIGNwdSAgICAgICAgICAgICAgICAzNDYwbSAoODYlKSAgIDM2MjAwbSAoOTA1JSlcbiAgbWVtb3J5ICAgICAgICAgICAgIDk0NzJNaSAoNTklKSAgMzI4OThNaSAoMjA1JSlcbiAgZXBoZW1lcmFsLXN0b3JhZ2UgIDAgKDAlKSAgICAgICAgMCAoMCUpXG4gIGh1Z2VwYWdlcy0xR2kgICAgICAwICgwJSkgICAgICAgIDAgKDAlKVxuICBodWdlcGFnZXMtMk1pICAgICAgMCAoMCUpICAgICAgICAwICgwJSkiLAogICJhbGxfY2hlY2tzX3Bhc3MiOiB0cnVlCn0K"
|
|
},
|
|
{
|
|
"digest": "sha256:d18d27063d06f535ae884ea01f96747fe301685518ab94b1cba072a1e1519362",
|
|
"media_type": "application/json",
|
|
"content_base64": "ewogICJhcGlWZXJzaW9uIjogImFwcHMvdjEiLAogICJraW5kIjogIkRlcGxveW1lbnQiLAogICJtZXRhZGF0YSI6IHsKICAgICJhbm5vdGF0aW9ucyI6IHsKICAgICAgImFyZ29jZC5hcmdvcHJvai5pby90cmFja2luZy1pZCI6ICJpbmZvcm1lZC1kZWNpc2lvbjphcHBzL0RlcGxveW1lbnQ6aW5mb3JtZWQtZGVjaXNpb24vaW5mb3JtZWQtZGVjaXNpb24iLAogICAgICAiaW5mb3JtZWQtZGVjaXNpb24uY291bG9tYi5zb2NpYWwvYWRtaXNzaW9uIjogImFwcHJvdmVkOyBJTkZELVdQLTAwMDcgY3V0b3ZlciIKICAgIH0sCiAgICAibmFtZSI6ICJpbmZvcm1lZC1kZWNpc2lvbiIsCiAgICAibmFtZXNwYWNlIjogImluZm9ybWVkLWRlY2lzaW9uIiwKICAgICJ1aWQiOiAiYTU4OGUxMGEtOTBkMi00ODgzLTk3NWUtNmRkOGI4ZmVjYTkyIgogIH0sCiAgInNwZWMiOiB7CiAgICAicHJvZ3Jlc3NEZWFkbGluZVNlY29uZHMiOiA2MDAsCiAgICAicmVwbGljYXMiOiAxLAogICAgInJldmlzaW9uSGlzdG9yeUxpbWl0IjogMTAsCiAgICAic2VsZWN0b3IiOiB7CiAgICAgICJtYXRjaExhYmVscyI6IHsKICAgICAgICAiYXBwLmt1YmVybmV0ZXMuaW8vbmFtZSI6ICJpbmZvcm1lZC1kZWNpc2lvbiIKICAgICAgfQogICAgfSwKICAgICJzdHJhdGVneSI6IHsKICAgICAgInR5cGUiOiAiUmVjcmVhdGUiCiAgICB9LAogICAgInRlbXBsYXRlIjogewogICAgICAibWV0YWRhdGEiOiB7CiAgICAgICAgImFubm90YXRpb25zIjogewogICAgICAgICAgImluZm9ybWVkLWRlY2lzaW9uLmNvdWxvbWIuc29jaWFsL2FkbWlzc2lvbiI6ICJhcHByb3ZlZDsgSU5GRC1XUC0wMDA3IGN1dG92ZXIiCiAgICAgICAgfSwKICAgICAgICAibGFiZWxzIjogewogICAgICAgICAgImFwcC5rdWJlcm5ldGVzLmlvL2NvbXBvbmVudCI6ICJyZXZpZXciLAogICAgICAgICAgImFwcC5rdWJlcm5ldGVzLmlvL25hbWUiOiAiaW5mb3JtZWQtZGVjaXNpb24iCiAgICAgICAgfQogICAgICB9LAogICAgICAic3BlYyI6IHsKICAgICAgICAiYXV0b21vdW50U2VydmljZUFjY291bnRUb2tlbiI6IGZhbHNlLAogICAgICAgICJjb250YWluZXJzIjogWwogICAgICAgICAgewogICAgICAgICAgICAiZW52IjogWwogICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJuYW1lIjogIklORkRfS0VZQ0FQRV9JU1NVRVIiLAogICAgICAgICAgICAgICAgInZhbHVlIjogImh0dHBzOi8va2MuY291bG9tYi5zb2NpYWwiCiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAibmFtZSI6ICJJTkZEX0NPTlRBSU5FUl9DT05GSUciLAogICAgICAgICAgICAgICAgInZhbHVlIjogIi9jb25maWd1cmF0aW9uL3J1bnRpbWUuanNvbiIKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIF0sCiAgICAgICAgICAgICJpbWFnZSI6ICJmb3JnZWpvLmNvdWxvbWIuc29jaWFsL2NvdWxvbWIvaW5mb3JtZWQtZGVjaXNpb25Ac2hhMjU2OjdmNWM2Y2IyOWM5ZjcwYTAyNmJmZTMwZTcyOTM0Mjc0ZGRjNjkyNjE2NzZjZjZkNDc2ZjgxZGQzMjgxMmQxNzMiLAogICAgICAgICAgICAiaW1hZ2VQdWxsUG9saWN5IjogIklmTm90UHJlc2VudCIsCiAgICAgICAgICAgICJsaXZlbmVzc1Byb2JlIjogewogICAgICAgICAgICAgICJmYWlsdXJlVGhyZXNob2xkIjogMywKICAgICAgICAgICAgICAiaHR0cEdldCI6IHsKICAgICAgICAgICAgICAgICJwYXRoIjogIi9oZWFsdGh6IiwKICAgICAgICAgICAgICAgICJwb3J0IjogImh0dHAiLAogICAgICAgICAgICAgICAgInNjaGVtZSI6ICJIVFRQIgogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgInBlcmlvZFNlY29uZHMiOiAxMCwKICAgICAgICAgICAgICAic3VjY2Vzc1RocmVzaG9sZCI6IDEsCiAgICAgICAgICAgICAgInRpbWVvdXRTZWNvbmRzIjogMgogICAgICAgICAgICB9LAogICAgICAgICAgICAibmFtZSI6ICJpbmZvcm1lZC1kZWNpc2lvbiIsCiAgICAgICAgICAgICJwb3J0cyI6IFsKICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAiY29udGFpbmVyUG9ydCI6IDgwODAsCiAgICAgICAgICAgICAgICAibmFtZSI6ICJodHRwIiwKICAgICAgICAgICAgICAgICJwcm90b2NvbCI6ICJUQ1AiCiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAiY29udGFpbmVyUG9ydCI6IDgwODEsCiAgICAgICAgICAgICAgICAibmFtZSI6ICJ3b3JrbG9hZCIsCiAgICAgICAgICAgICAgICAicHJvdG9jb2wiOiAiVENQIgogICAgICAgICAgICAgIH0KICAgICAgICAgICAgXSwKICAgICAgICAgICAgInJlYWRpbmVzc1Byb2JlIjogewogICAgICAgICAgICAgICJmYWlsdXJlVGhyZXNob2xkIjogMywKICAgICAgICAgICAgICAiaHR0cEdldCI6IHsKICAgICAgICAgICAgICAgICJwYXRoIjogIi9oZWFsdGh6IiwKICAgICAgICAgICAgICAgICJwb3J0IjogImh0dHAiLAogICAgICAgICAgICAgICAgInNjaGVtZSI6ICJIVFRQIgogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgInBlcmlvZFNlY29uZHMiOiAxMCwKICAgICAgICAgICAgICAic3VjY2Vzc1RocmVzaG9sZCI6IDEsCiAgICAgICAgICAgICAgInRpbWVvdXRTZWNvbmRzIjogMgogICAgICAgICAgICB9LAogICAgICAgICAgICAicmVzb3VyY2VzIjogewogICAgICAgICAgICAgICJsaW1pdHMiOiB7CiAgICAgICAgICAgICAgICAiY3B1IjogIjUwMG0iLAogICAgICAgICAgICAgICAgIm1lbW9yeSI6ICIyNTZNaSIKICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICJyZXF1ZXN0cyI6IHsKICAgICAgICAgICAgICAgICJjcHUiOiAiNW0iLAogICAgICAgICAgICAgICAgIm1lbW9yeSI6ICI2NE1pIgogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSwKICAgICAgICAgICAgInNlY3VyaXR5Q29udGV4dCI6IHsKICAgICAgICAgICAgICAiYWxsb3dQcml2aWxlZ2VFc2NhbGF0aW9uIjogZmFsc2UsCiAgICAgICAgICAgICAgImNhcGFiaWxpdGllcyI6IHsKICAgICAgICAgICAgICAgICJkcm9wIjogWwogICAgICAgICAgICAgICAgICAiQUxMIgogICAgICAgICAgICAgICAgXQogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgInJlYWRPbmx5Um9vdEZpbGVzeXN0ZW0iOiB0cnVlCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgICJzdGFydHVwUHJvYmUiOiB7CiAgICAgICAgICAgICAgImZhaWx1cmVUaHJlc2hvbGQiOiAxMiwKICAgICAgICAgICAgICAiaHR0cEdldCI6IHsKICAgICAgICAgICAgICAgICJwYXRoIjogIi9oZWFsdGh6IiwKICAgICAgICAgICAgICAgICJwb3J0IjogImh0dHAiLAogICAgICAgICAgICAgICAgInNjaGVtZSI6ICJIVFRQIgogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgInBlcmlvZFNlY29uZHMiOiAxMCwKICAgICAgICAgICAgICAic3VjY2Vzc1RocmVzaG9sZCI6IDEsCiAgICAgICAgICAgICAgInRpbWVvdXRTZWNvbmRzIjogMgogICAgICAgICAgICB9LAogICAgICAgICAgICAidGVybWluYXRpb25NZXNzYWdlUGF0aCI6ICIvZGV2L3Rlcm1pbmF0aW9uLWxvZyIsCiAgICAgICAgICAgICJ0ZXJtaW5hdGlvbk1lc3NhZ2VQb2xpY3kiOiAiRmlsZSIsCiAgICAgICAgICAgICJ2b2x1bWVNb3VudHMiOiBbCiAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgIm1vdW50UGF0aCI6ICIvZGF0YSIsCiAgICAgICAgICAgICAgICAibmFtZSI6ICJkYXRhIgogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgIm1vdW50UGF0aCI6ICIvcnVuL2luZm9ybWVkLWRlY2lzaW9uIiwKICAgICAgICAgICAgICAgICJuYW1lIjogInJ1bnRpbWUiCiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAibW91bnRQYXRoIjogIi90bXAiLAogICAgICAgICAgICAgICAgIm5hbWUiOiAidG1wIgogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgIm1vdW50UGF0aCI6ICIvY29uZmlndXJhdGlvbiIsCiAgICAgICAgICAgICAgICAibmFtZSI6ICJjb25maWd1cmF0aW9uIiwKICAgICAgICAgICAgICAgICJyZWFkT25seSI6IHRydWUKICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJtb3VudFBhdGgiOiAiL3Zhci9ydW4vc2VjcmV0cy9pbmZvcm1lZC1kZWNpc2lvbi9wb2xpY3kiLAogICAgICAgICAgICAgICAgIm5hbWUiOiAiY2FsbGVyIiwKICAgICAgICAgICAgICAgICJyZWFkT25seSI6IHRydWUKICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJtb3VudFBhdGgiOiAiL3Zhci9ydW4vc2VjcmV0cy9pbmZvcm1lZC1kZWNpc2lvbi9hdWRpdCIsCiAgICAgICAgICAgICAgICAibmFtZSI6ICJhdWRpdCIsCiAgICAgICAgICAgICAgICAicmVhZE9ubHkiOiB0cnVlCiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAibW91bnRQYXRoIjogIi92YXIvcnVuL3NlY3JldHMvaW5mb3JtZWQtZGVjaXNpb24va3ViZXJuZXRlcyIsCiAgICAgICAgICAgICAgICAibmFtZSI6ICJrdWJlcm5ldGVzLWFwaSIsCiAgICAgICAgICAgICAgICAicmVhZE9ubHkiOiB0cnVlCiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAibW91bnRQYXRoIjogIi93b3JrbG9hZC1yZWdpc3RyeSIsCiAgICAgICAgICAgICAgICAibmFtZSI6ICJ3b3JrbG9hZC1yZWdpc3RyeSIsCiAgICAgICAgICAgICAgICAicmVhZE9ubHkiOiB0cnVlCiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAibW91bnRQYXRoIjogIi92YXIvcnVuL3NlY3JldHMvaW5mb3JtZWQtZGVjaXNpb24vcmVxdWVzdGVyIiwKICAgICAgICAgICAgICAgICJuYW1lIjogInNpdHRpbmctcmVxdWVzdGVyIiwKICAgICAgICAgICAgICAgICJyZWFkT25seSI6IHRydWUKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIF0KICAgICAgICAgIH0KICAgICAgICBdLAogICAgICAgICJkbnNQb2xpY3kiOiAiQ2x1c3RlckZpcnN0IiwKICAgICAgICAicmVzdGFydFBvbGljeSI6ICJBbHdheXMiLAogICAgICAgICJzY2hlZHVsZXJOYW1lIjogImRlZmF1bHQtc2NoZWR1bGVyIiwKICAgICAgICAic2VjdXJpdHlDb250ZXh0IjogewogICAgICAgICAgImZzR3JvdXAiOiAxMDAwMSwKICAgICAgICAgICJmc0dyb3VwQ2hhbmdlUG9saWN5IjogIk9uUm9vdE1pc21hdGNoIiwKICAgICAgICAgICJydW5Bc0dyb3VwIjogMTAwMDEsCiAgICAgICAgICAicnVuQXNOb25Sb290IjogdHJ1ZSwKICAgICAgICAgICJydW5Bc1VzZXIiOiAxMDAwMSwKICAgICAgICAgICJzZWNjb21wUHJvZmlsZSI6IHsKICAgICAgICAgICAgInR5cGUiOiAiUnVudGltZURlZmF1bHQiCiAgICAgICAgICB9CiAgICAgICAgfSwKICAgICAgICAic2VydmljZUFjY291bnQiOiAicmV2aWV3IiwKICAgICAgICAic2VydmljZUFjY291bnROYW1lIjogInJldmlldyIsCiAgICAgICAgInRlcm1pbmF0aW9uR3JhY2VQZXJpb2RTZWNvbmRzIjogNDUsCiAgICAgICAgInZvbHVtZXMiOiBbCiAgICAgICAgICB7CiAgICAgICAgICAgICJuYW1lIjogImRhdGEiLAogICAgICAgICAgICAicGVyc2lzdGVudFZvbHVtZUNsYWltIjogewogICAgICAgICAgICAgICJjbGFpbU5hbWUiOiAiaW5mb3JtZWQtZGVjaXNpb24tZGF0YSIKICAgICAgICAgICAgfQogICAgICAgICAgfSwKICAgICAgICAgIHsKICAgICAgICAgICAgImVtcHR5RGlyIjogewogICAgICAgICAgICAgICJtZWRpdW0iOiAiTWVtb3J5IiwKICAgICAgICAgICAgICAic2l6ZUxpbWl0IjogIjE2TWkiCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgICJuYW1lIjogInJ1bnRpbWUiCiAgICAgICAgICB9LAogICAgICAgICAgewogICAgICAgICAgICAiZW1wdHlEaXIiOiB7CiAgICAgICAgICAgICAgIm1lZGl1bSI6ICJNZW1vcnkiLAogICAgICAgICAgICAgICJzaXplTGltaXQiOiAiMTZNaSIKICAgICAgICAgICAgfSwKICAgICAgICAgICAgIm5hbWUiOiAidG1wIgogICAgICAgICAgfSwKICAgICAgICAgIHsKICAgICAgICAgICAgImNvbmZpZ01hcCI6IHsKICAgICAgICAgICAgICAiZGVmYXVsdE1vZGUiOiAyOTIsCiAgICAgICAgICAgICAgIm5hbWUiOiAiaW5mb3JtZWQtZGVjaXNpb24tcnVudGltZS02YzIyMTg3OGQwNTEiCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgICJuYW1lIjogImNvbmZpZ3VyYXRpb24iCiAgICAgICAgICB9LAogICAgICAgICAgewogICAgICAgICAgICAibmFtZSI6ICJjYWxsZXIiLAogICAgICAgICAgICAicHJvamVjdGVkIjogewogICAgICAgICAgICAgICJkZWZhdWx0TW9kZSI6IDI4OCwKICAgICAgICAgICAgICAic291cmNlcyI6IFsKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgInNlcnZpY2VBY2NvdW50VG9rZW4iOiB7CiAgICAgICAgICAgICAgICAgICAgImF1ZGllbmNlIjogImZsZXgtYXV0aCIsCiAgICAgICAgICAgICAgICAgICAgImV4cGlyYXRpb25TZWNvbmRzIjogMzYwMCwKICAgICAgICAgICAgICAgICAgICAicGF0aCI6ICJ0b2tlbiIKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIF0KICAgICAgICAgICAgfQogICAgICAgICAgfSwKICAgICAgICAgIHsKICAgICAgICAgICAgIm5hbWUiOiAiYXVkaXQiLAogICAgICAgICAgICAic2VjcmV0IjogewogICAgICAgICAgICAgICJkZWZhdWx0TW9kZSI6IDI4OCwKICAgICAgICAgICAgICAiaXRlbXMiOiBbCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICJrZXkiOiAidG9rZW4iLAogICAgICAgICAgICAgICAgICAicGF0aCI6ICJ0b2tlbiIKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICJzZWNyZXROYW1lIjogImluZm9ybWVkLWRlY2lzaW9uLWF1ZGl0IgogICAgICAgICAgICB9CiAgICAgICAgICB9LAogICAgICAgICAgewogICAgICAgICAgICAibmFtZSI6ICJrdWJlcm5ldGVzLWFwaSIsCiAgICAgICAgICAgICJwcm9qZWN0ZWQiOiB7CiAgICAgICAgICAgICAgImRlZmF1bHRNb2RlIjogMjg4LAogICAgICAgICAgICAgICJzb3VyY2VzIjogWwogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAic2VydmljZUFjY291bnRUb2tlbiI6IHsKICAgICAgICAgICAgICAgICAgICAiZXhwaXJhdGlvblNlY29uZHMiOiA2MDAsCiAgICAgICAgICAgICAgICAgICAgInBhdGgiOiAidG9rZW4iCiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICJjb25maWdNYXAiOiB7CiAgICAgICAgICAgICAgICAgICAgIml0ZW1zIjogWwogICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAia2V5IjogImNhLmNydCIsCiAgICAgICAgICAgICAgICAgICAgICAgICJwYXRoIjogImNhLmNydCIKICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgICAgICJuYW1lIjogImt1YmUtcm9vdC1jYS5jcnQiCiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBdCiAgICAgICAgICAgIH0KICAgICAgICAgIH0sCiAgICAgICAgICB7CiAgICAgICAgICAgICJjb25maWdNYXAiOiB7CiAgICAgICAgICAgICAgImRlZmF1bHRNb2RlIjogMjkyLAogICAgICAgICAgICAgICJuYW1lIjogImluZm9ybWVkLWRlY2lzaW9uLXdvcmtsb2FkLXJlZ2lzdHJ5IgogICAgICAgICAgICB9LAogICAgICAgICAgICAibmFtZSI6ICJ3b3JrbG9hZC1yZWdpc3RyeSIKICAgICAgICAgIH0sCiAgICAgICAgICB7CiAgICAgICAgICAgICJuYW1lIjogInNpdHRpbmctcmVxdWVzdGVyIiwKICAgICAgICAgICAgInNlY3JldCI6IHsKICAgICAgICAgICAgICAiZGVmYXVsdE1vZGUiOiAyODgsCiAgICAgICAgICAgICAgIml0ZW1zIjogWwogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAia2V5IjogImNsaWVudC1zZWNyZXQiLAogICAgICAgICAgICAgICAgICAicGF0aCI6ICJjbGllbnQtc2VjcmV0IgogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgIm9wdGlvbmFsIjogZmFsc2UsCiAgICAgICAgICAgICAgInNlY3JldE5hbWUiOiAiaW5mb3JtZWQtZGVjaXNpb24tc2l0dGluZy1yZXF1ZXN0ZXIiCiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICBdCiAgICAgIH0KICAgIH0KICB9Cn0K"
|
|
},
|
|
{
|
|
"digest": "sha256:f348e449c49f4d9e49af9e82e01764e7197837fd3df9d756f5891d9b8d9b38be",
|
|
"media_type": "text/plain",
|
|
"content_base64": "IiIiUmVhZC1vbmx5IGV4YWN0IERlcGxveW1lbnQgYW5kIGFkbWlzc2lvbiBib3VuZGFyaWVzOyBubyBtdXRhdGlvbiBhdXRob3JpdHkuIiIiCmltcG9ydCBjb3B5CmltcG9ydCBoYXNobGliCmltcG9ydCBqc29uCgpCQVNFID0gJ2Zvcmdlam8uY291bG9tYi5zb2NpYWwvY291bG9tYi9pbmZvcm1lZC1kZWNpc2lvbkBzaGEyNTY6N2Y1YzZjYjI5YzlmNzBhMDI2YmZlMzBlNzI5MzQyNzRkZGM2OTI2MTY3NmNmNmQ0NzZmODFkZDMyODEyZDE3MycKQ0FORElEQVRFID0gJ2Zvcmdlam8uY291bG9tYi5zb2NpYWwvY291bG9tYi9pbmZvcm1lZC1kZWNpc2lvbkBzaGEyNTY6NzYzYzM2NDAyYzhiZTdjYzRjMWJkMWE2MTYyM2QxYWZmOTExNmQ1MjI0MTg3NzQyNWI0NWE3MDE4Y2MwODgzYScKCgpkZWYgZGVwZW5kZW5jeV9wcm9qZWN0aW9uKGNvbmZpZ21hcCwgcHZjKToKICAgIGlmIChjb25maWdtYXAuZ2V0KCdraW5kJykgIT0gJ0NvbmZpZ01hcCcgb3IgY29uZmlnbWFwLmdldCgnaW1tdXRhYmxlJykgaXMgbm90IFRydWUKICAgICAgICAgICAgb3IgY29uZmlnbWFwWydtZXRhZGF0YSddWyduYW1lc3BhY2UnXSAhPSAnaW5mb3JtZWQtZGVjaXNpb24nCiAgICAgICAgICAgIG9yIGNvbmZpZ21hcFsnbWV0YWRhdGEnXVsnbmFtZSddICE9ICdpbmZvcm1lZC1kZWNpc2lvbi1ydW50aW1lLTZjMjIxODc4ZDA1MScKICAgICAgICAgICAgb3Igc2V0KGNvbmZpZ21hcC5nZXQoJ2RhdGEnLCB7fSkpICE9IHsncnVudGltZS5qc29uJ30KICAgICAgICAgICAgb3IgY29uZmlnbWFwLmdldCgnYmluYXJ5RGF0YScpKToKICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCd1bmV4cGVjdGVkIGltbXV0YWJsZSBydW50aW1lIGNvbmZpZyBpZGVudGl0eScpCiAgICBpZiAocHZjLmdldCgna2luZCcpICE9ICdQZXJzaXN0ZW50Vm9sdW1lQ2xhaW0nCiAgICAgICAgICAgIG9yIHB2Y1snbWV0YWRhdGEnXVsnbmFtZXNwYWNlJ10gIT0gJ2luZm9ybWVkLWRlY2lzaW9uJwogICAgICAgICAgICBvciBwdmNbJ21ldGFkYXRhJ11bJ25hbWUnXSAhPSAnaW5mb3JtZWQtZGVjaXNpb24tZGF0YScKICAgICAgICAgICAgb3IgcHZjLmdldCgnc3RhdHVzJywge30pLmdldCgncGhhc2UnKSAhPSAnQm91bmQnCiAgICAgICAgICAgIG9yIG5vdCBwdmMuZ2V0KCdzcGVjJywge30pLmdldCgndm9sdW1lTmFtZScpKToKICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCd1bmV4cGVjdGVkIGJvdW5kIFBWQyBjdXN0b2R5JykKICAgIGNvbmZpZyA9IHByb2plY3Rpb24oY29uZmlnbWFwKQogICAgY29uZmlnLnBvcCgnZGF0YScpCiAgICBjb25maWdbJ2Nhbm9uaWNhbF9kYXRhX3NoYTI1NiddID0gaGFzaGxpYi5zaGEyNTYoanNvbi5kdW1wcygKICAgICAgICBjb25maWdtYXBbJ2RhdGEnXSwgc29ydF9rZXlzPVRydWUsIHNlcGFyYXRvcnM9KCcsJywgJzonKSkuZW5jb2RlKCkpLmhleGRpZ2VzdCgpCiAgICByZXR1cm4geydjb25maWdtYXAnOiBjb25maWcsICdwdmMnOiBwcm9qZWN0aW9uKHB2YyksICdwdmNfcGhhc2UnOiAnQm91bmQnfQoKCmRlZiBjaGVja19kZXBlbmRlbmNpZXMoY29uZmlnbWFwLCBwdmMsIHNlYWxlZCk6CiAgICBpZiBkZXBlbmRlbmN5X3Byb2plY3Rpb24oY29uZmlnbWFwLCBwdmMpICE9IHNlYWxlZDoKICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCdydW50aW1lIGNvbmZpZyBvciBQVkMgaWRlbnRpdHkvY3VzdG9keSBjaGFuZ2VkJykKCgpkZWYgcHJvamVjdGlvbih2YWx1ZSk6CiAgICB2YWx1ZSA9IGNvcHkuZGVlcGNvcHkodmFsdWUpCiAgICB2YWx1ZS5wb3AoJ3N0YXR1cycsIE5vbmUpCiAgICBmb3Iga2V5IGluICgncmVzb3VyY2VWZXJzaW9uJywgJ2dlbmVyYXRpb24nLCAnY3JlYXRpb25UaW1lc3RhbXAnLCAnbWFuYWdlZEZpZWxkcycpOgogICAgICAgIHZhbHVlWydtZXRhZGF0YSddLnBvcChrZXksIE5vbmUpCiAgICBmb3Iga2V5IGluICgna3ViZWN0bC5rdWJlcm5ldGVzLmlvL2xhc3QtYXBwbGllZC1jb25maWd1cmF0aW9uJywgJ2RlcGxveW1lbnQua3ViZXJuZXRlcy5pby9yZXZpc2lvbicpOgogICAgICAgIHZhbHVlWydtZXRhZGF0YSddLmdldCgnYW5ub3RhdGlvbnMnLCB7fSkucG9wKGtleSwgTm9uZSkKICAgIHJldHVybiB2YWx1ZQoKCmRlZiBjaGVja19jdXJyZW50KGN1cnJlbnQsIHNlYWxlZCk6CiAgICBpZiBwcm9qZWN0aW9uKGN1cnJlbnQpICE9IHNlYWxlZDoKICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCdzZWFsZWQgbGl2ZSBVSUQgb3IgY29uZmlndXJhdGlvbiBjaGFuZ2VkJykKCgpkZWYgY2hlY2tfYWRtaXR0ZWQoYWRtaXR0ZWQsIHNlYWxlZCk6CiAgICBleHBlY3RlZCA9IGNvcHkuZGVlcGNvcHkoc2VhbGVkKQogICAgY29udGFpbmVycyA9IGV4cGVjdGVkWydzcGVjJ11bJ3RlbXBsYXRlJ11bJ3NwZWMnXVsnY29udGFpbmVycyddCiAgICBpZiBsZW4oY29udGFpbmVycykgIT0gMSBvciBjb250YWluZXJzWzBdWyduYW1lJ10gIT0gJ2luZm9ybWVkLWRlY2lzaW9uJyBvciBjb250YWluZXJzWzBdWydpbWFnZSddICE9IEJBU0U6CiAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigndW5leHBlY3RlZCBiYXNlbGluZSBjb250YWluZXIgaWRlbnRpdHknKQogICAgY29udGFpbmVyc1swXVsnaW1hZ2UnXSA9IENBTkRJREFURQogICAgaWYgcHJvamVjdGlvbihhZG1pdHRlZCkgIT0gZXhwZWN0ZWQ6CiAgICAgICAgcmFpc2UgVmFsdWVFcnJvcignYWRtaXNzaW9uIGNoYW5nZWQgY29uZmlndXJhdGlvbiBiZXlvbmQgdGhlIHNvbGUgaW1hZ2UgcGluJykKCgpkZWYgdHJhbnNwb3J0X3Jlc3VsdChleGl0X2NvZGUsIG91dHB1dCk6CiAgICBpbXBvcnQganNvbgogICAgdHJ5OgogICAgICAgIHZhbHVlID0ganNvbi5sb2FkcyhvdXRwdXQpCiAgICBleGNlcHQgKFZhbHVlRXJyb3IsIFR5cGVFcnJvcik6CiAgICAgICAgcmV0dXJuIHsnYWxsX2NoZWNrc19wYXNzJzogRmFsc2UsICdyZWFzb24nOiAnaW52YWxpZCB0cmFuc3BvcnQgcmVzdWx0J30KICAgIGlmIGV4aXRfY29kZSAhPSAwIG9yIG5vdCBpc2luc3RhbmNlKHZhbHVlLCBkaWN0KSBvciB2YWx1ZS5nZXQoJ2FsbF9jaGVja3NfcGFzcycpIGlzIG5vdCBUcnVlOgogICAgICAgIHJldHVybiB7J2FsbF9jaGVja3NfcGFzcyc6IEZhbHNlLCAncmVhc29uJzogJ3JlYWQtb25seSBwcmVmbGlnaHQgcmVmdXNlZCd9CiAgICByZXR1cm4gdmFsdWUK"
|
|
},
|
|
{
|
|
"digest": "sha256:6b4c65f708238c9a9d17fd065876c7a00e1f1745926f990a1dd5e667298340cd",
|
|
"media_type": "text/plain",
|
|
"content_base64": "IiIiUmVhZC1vbmx5IHJlZnJlc2g7IGV4YWN0IG9yaWdpbmFsIGNhcHR1cmUgcmVtYWlucyBpbW11dGFibGU7IG5ldmVyIGV4ZWN1dGUgY3V0b3Zlci4iIiIKaW1wb3J0IGFyZ3BhcnNlLGhhc2hsaWIsanNvbixzdWJwcm9jZXNzLHN5cwpmcm9tIHBhdGhsaWIgaW1wb3J0IFBhdGgKaWYgc3lzLmZsYWdzLm9wdGltaXplOgogcmFpc2UgU3lzdGVtRXhpdCgib3B0aW1pemVkIGludGVycHJldGVyIHJlZnVzZWQgYmVmb3JlIHNvdXJjZS90cmFuc3BvcnQgZXhlY3V0aW9uIikKUk9PVD1QYXRoKF9fZmlsZV9fKS5yZXNvbHZlKCkucGFyZW50CnA9YXJncGFyc2UuQXJndW1lbnRQYXJzZXIoKTtwLmFkZF9hcmd1bWVudCgnLS1yZWNlaXB0LW91dHB1dCcsdHlwZT1QYXRoLHJlcXVpcmVkPVRydWUpO3AuYWRkX2FyZ3VtZW50KCctLXNvdXJjZS1yb290Jyx0eXBlPVBhdGgsZGVmYXVsdD1QYXRoKCcvaG9tZS93b3JzY2gvaW5mb3JtZWQtZGVjaXNpb24nKSk7YT1wLnBhcnNlX2FyZ3MoKQpvdXQ9YS5yZWNlaXB0X291dHB1dC5yZXNvbHZlKCkKaWYgbm90IGEucmVjZWlwdF9vdXRwdXQuaXNfYWJzb2x1dGUoKSBvciBvdXQ9PVJPT1Qgb3IgUk9PVCBpbiBvdXQucGFyZW50cyBvciBvdXQ9PWEuc291cmNlX3Jvb3QucmVzb2x2ZSgpIG9yIGEuc291cmNlX3Jvb3QucmVzb2x2ZSgpIGluIG91dC5wYXJlbnRzIG9yIG91dC5leGlzdHMoKToKIHJhaXNlIFN5c3RlbUV4aXQoJ3VuaXF1ZSBleGVjdXRpb24gcmVjZWlwdCBtdXN0IGJlIG91dHNpZGUgdGhlIHNlYWxlZCBwYWNrZXQnKQppbnB1dHM9anNvbi5sb2FkcygoUk9PVC8ncHJlZmxpZ2h0LWlucHV0cy5qc29uJykucmVhZF90ZXh0KCkpCmZvciByZWxhdGl2ZSxkaWdlc3QgaW4gaW5wdXRzWydwYWNrZXRfZmlsZXMnXS5pdGVtcygpOgogcGF0aD1ST09UL3JlbGF0aXZlCiBpZiBwYXRoLmlzX3N5bWxpbmsoKSBvciBoYXNobGliLnNoYTI1NihwYXRoLnJlYWRfYnl0ZXMoKSkuaGV4ZGlnZXN0KCkhPWRpZ2VzdDpyYWlzZSBTeXN0ZW1FeGl0KCdzZWFsZWQgaGVscGVyL2lucHV0IGJ5dGVzIGNoYW5nZWQnKQpmb3IgcmVsYXRpdmUsZGlnZXN0IGluIGlucHV0c1snb3duZXJfc291cmNlX2ZpbGVzJ10uaXRlbXMoKToKIHBhdGg9YS5zb3VyY2Vfcm9vdC9yZWxhdGl2ZQogaWYgcGF0aC5pc19zeW1saW5rKCkgb3IgaGFzaGxpYi5zaGEyNTYocGF0aC5yZWFkX2J5dGVzKCkpLmhleGRpZ2VzdCgpIT1kaWdlc3Q6cmFpc2UgU3lzdGVtRXhpdCgnb3duZXIgc291cmNlIGJ5dGVzIGNoYW5nZWQnKQpmcm9tIGNoYW5nZV9ndWFyZCBpbXBvcnQgdHJhbnNwb3J0X3Jlc3VsdApwcm9ncmFtPSdpbXBvcnQgc3VicHJvY2Vzcyxqc29uLGhhc2hsaWIsZGF0ZXRpbWUsc3lzLGNvcHkscmVcbmlmIHN5cy5mbGFncy5vcHRpbWl6ZTpyYWlzZSBSdW50aW1lRXJyb3IoIm9wdGltaXplZCBpbnRlcnByZXRlciByZWZ1c2VkIilcbmNhbmRpZGF0ZT1qc29uLmxvYWRzKENBTkRJREFURV9MSVRFUkFMKVxuc2VhbGVkX2RlcGVuZGVuY2llcz1qc29uLmxvYWRzKERFUEVOREVOQ0lFU19MSVRFUkFMKVxuc2VhbGVkX2Jhc2VsaW5lPWpzb24ubG9hZHMoU0VBTEVEX0xJVEVSQUwpXG5leGVjKEdVQVJEX0xJVEVSQUwpXG5kZWYgcnVuKGFyZ3MsZGF0YT1Ob25lKTpcbiBwPXN1YnByb2Nlc3MucnVuKGFyZ3MsaW5wdXQ9ZGF0YSx0ZXh0PVRydWUsY2FwdHVyZV9vdXRwdXQ9VHJ1ZSlcbiBpZiBwLnJldHVybmNvZGU6IHJhaXNlIFZhbHVlRXJyb3IoXCdyZWFkLW9ubHkgY29tbWFuZCBmYWlsZWQ6IFwnK2FyZ3NbMV0rXCcgXCcrYXJnc1syXSlcbiByZXR1cm4gcC5zdGRvdXRcbmxpdmU9anNvbi5sb2FkcyhydW4oW1wna3ViZWN0bFwnLFwnZ2V0XCcsXCdkZXBsb3ltZW50XCcsXCdpbmZvcm1lZC1kZWNpc2lvblwnLFwnLW5cJyxcJ2luZm9ybWVkLWRlY2lzaW9uXCcsXCctb1wnLFwnanNvblwnXSkpXG5jbT1qc29uLmxvYWRzKHJ1bihbXCdrdWJlY3RsXCcsXCdnZXRcJyxcJ2NvbmZpZ21hcFwnLFwnaW5mb3JtZWQtZGVjaXNpb24tcnVudGltZS02YzIyMTg3OGQwNTFcJyxcJy1uXCcsXCdpbmZvcm1lZC1kZWNpc2lvblwnLFwnLW9cJyxcJ2pzb25cJ10pKVxucHZjPWpzb24ubG9hZHMocnVuKFtcJ2t1YmVjdGxcJyxcJ2dldFwnLFwncHZjXCcsXCdpbmZvcm1lZC1kZWNpc2lvbi1kYXRhXCcsXCctblwnLFwnaW5mb3JtZWQtZGVjaXNpb25cJyxcJy1vXCcsXCdqc29uXCddKSlcbmNoZWNrX2RlcGVuZGVuY2llcyhjbSxwdmMsc2VhbGVkX2RlcGVuZGVuY2llcylcbmNoZWNrX2N1cnJlbnQobGl2ZSxzZWFsZWRfYmFzZWxpbmUpXG5zcGVjPWxpdmVbXCdzcGVjXCddOyBjcz1zcGVjW1wndGVtcGxhdGVcJ11bXCdzcGVjXCddW1wnY29udGFpbmVyc1wnXTthc3NlcnQgbGVuKGNzKT09MSBhbmQgY3NbMF1bXCduYW1lXCddPT1cJ2luZm9ybWVkLWRlY2lzaW9uXCdcbmV4cGVjdGVkX2Vudj17XCdJTkZEX0tFWUNBUEVfSVNTVUVSXCc6XCdodHRwczovL2tjLmNvdWxvbWIuc29jaWFsXCcsXCdJTkZEX0NPTlRBSU5FUl9DT05GSUdcJzpcJy9jb25maWd1cmF0aW9uL3J1bnRpbWUuanNvblwnfVxuYXNzZXJ0IGNzWzBdLmdldChcJ2VudlwnKT09W3tcJ25hbWVcJzpcJ0lORkRfS0VZQ0FQRV9JU1NVRVJcJyxcJ3ZhbHVlXCc6ZXhwZWN0ZWRfZW52W1wnSU5GRF9LRVlDQVBFX0lTU1VFUlwnXX0se1wnbmFtZVwnOlwnSU5GRF9DT05UQUlORVJfQ09ORklHXCcsXCd2YWx1ZVwnOmV4cGVjdGVkX2VudltcJ0lORkRfQ09OVEFJTkVSX0NPTkZJR1wnXX1dXG5hc3NlcnQgY3NbMF1bXCdpbWFnZVwnXT09XCdmb3JnZWpvLmNvdWxvbWIuc29jaWFsL2NvdWxvbWIvaW5mb3JtZWQtZGVjaXNpb25Ac2hhMjU2OjdmNWM2Y2IyOWM5ZjcwYTAyNmJmZTMwZTcyOTM0Mjc0ZGRjNjkyNjE2NzZjZjZkNDc2ZjgxZGQzMjgxMmQxNzNcJ1xuYXNzZXJ0IHNwZWNbXCdyZXBsaWNhc1wnXT09MSBhbmQgc3BlY1tcJ3N0cmF0ZWd5XCddPT17XCd0eXBlXCc6XCdSZWNyZWF0ZVwnfVxuYXNzZXJ0IG5leHQodiBmb3IgdiBpbiBzcGVjW1wndGVtcGxhdGVcJ11bXCdzcGVjXCddW1wndm9sdW1lc1wnXSBpZiB2W1wnbmFtZVwnXT09XCdjb25maWd1cmF0aW9uXCcpW1wnY29uZmlnTWFwXCddW1wnbmFtZVwnXT09XCdpbmZvcm1lZC1kZWNpc2lvbi1ydW50aW1lLTZjMjIxODc4ZDA1MVwnXG5hc3NlcnQgbGl2ZVtcJ3N0YXR1c1wnXS5nZXQoXCdyZWFkeVJlcGxpY2FzXCcpPT0xIGFuZCBsaXZlW1wnc3RhdHVzXCddLmdldChcJ3VwZGF0ZWRSZXBsaWNhc1wnKT09MVxuc2VhbGVkPXtcJ2FwaVZlcnNpb25cJzpsaXZlW1wnYXBpVmVyc2lvblwnXSxcJ2tpbmRcJzpsaXZlW1wna2luZFwnXSxcJ21ldGFkYXRhXCc6e2s6Y29weS5kZWVwY29weSh2KSBmb3Igayx2IGluIGxpdmVbXCdtZXRhZGF0YVwnXS5pdGVtcygpIGlmIGsgbm90IGluIChcJ3Jlc291cmNlVmVyc2lvblwnLFwnZ2VuZXJhdGlvblwnLFwnY3JlYXRpb25UaW1lc3RhbXBcJyxcJ21hbmFnZWRGaWVsZHNcJyl9LFwnc3BlY1wnOmNvcHkuZGVlcGNvcHkoc3BlYyl9XG5mb3Iga2V5IGluIChcJ2t1YmVjdGwua3ViZXJuZXRlcy5pby9sYXN0LWFwcGxpZWQtY29uZmlndXJhdGlvblwnLFwnZGVwbG95bWVudC5rdWJlcm5ldGVzLmlvL3JldmlzaW9uXCcpOnNlYWxlZFtcJ21ldGFkYXRhXCddLmdldChcJ2Fubm90YXRpb25zXCcse30pLnBvcChrZXksTm9uZSlcbmFkbWl0dGVkPWpzb24ubG9hZHMocnVuKFtcJ2t1YmVjdGxcJyxcJ2FwcGx5XCcsXCctLWRyeS1ydW49c2VydmVyXCcsXCctZlwnLFwnLVwnLFwnLW9cJyxcJ2pzb25cJ10sanNvbi5kdW1wcyhjYW5kaWRhdGUpKSlcbmNoZWNrX2FkbWl0dGVkKGFkbWl0dGVkLHNlYWxlZF9iYXNlbGluZSlcbmFwcD1qc29uLmxvYWRzKHJ1bihbXCdrdWJlY3RsXCcsXCdnZXRcJyxcJ2FwcGxpY2F0aW9uXCcsXCdpbmZvcm1lZC1kZWNpc2lvblwnLFwnLW5cJyxcJ2FyZ29jZFwnLFwnLW9cJyxcJ2pzb25cJ10pKVxuYXNzZXJ0IGFwcFtcJ3NwZWNcJ11bXCdzb3VyY2VcJ11bXCdwYXRoXCddPT1cJ2RlcGxveS9saWZlY3ljbGVcJyBhbmQgbm90IGFwcFtcJ3NwZWNcJ10uZ2V0KFwnc3luY1BvbGljeVwnLHt9KS5nZXQoXCdhdXRvbWF0ZWRcJylcbmFyZ289e1wndWlkXCc6YXBwW1wnbWV0YWRhdGFcJ11bXCd1aWRcJ10sXCdyZXBvVVJMXCc6YXBwW1wnc3BlY1wnXVtcJ3NvdXJjZVwnXVtcJ3JlcG9VUkxcJ10sXCd0YXJnZXRSZXZpc2lvblwnOmFwcFtcJ3NwZWNcJ11bXCdzb3VyY2VcJ11bXCd0YXJnZXRSZXZpc2lvblwnXSxcJ3BhdGhcJzphcHBbXCdzcGVjXCddW1wnc291cmNlXCddW1wncGF0aFwnXSxcJ2Rlc3RpbmF0aW9uXCc6YXBwW1wnc3BlY1wnXVtcJ2Rlc3RpbmF0aW9uXCddLFwnYXV0b21hdGVkXCc6RmFsc2UsXCdzeW5jXCc6YXBwLmdldChcJ3N0YXR1c1wnLHt9KS5nZXQoXCdzeW5jXCcpLFwnaGVhbHRoXCc6YXBwLmdldChcJ3N0YXR1c1wnLHt9KS5nZXQoXCdoZWFsdGhcJyl9XG5leHBlY3RlZF9hcmdvPWpzb24ubG9hZHMoQVJHT19MSVRFUkFMKVxuZm9yIGtleSBpbiAoXCd1aWRcJyxcJ3JlcG9VUkxcJyxcJ3RhcmdldFJldmlzaW9uXCcsXCdwYXRoXCcsXCdkZXN0aW5hdGlvblwnLFwnYXV0b21hdGVkXCcpOlxuIGFzc2VydCBhcmdvW2tleV09PWV4cGVjdGVkX2FyZ29ba2V5XVxuYXNzZXJ0IGFyZ29bXCdoZWFsdGhcJ11bXCdzdGF0dXNcJ109PVwnSGVhbHRoeVwnXG5kaWZmPXN1YnByb2Nlc3MucnVuKFtcJ2t1YmVjdGxcJyxcJ2RpZmZcJyxcJy1mXCcsXCctXCddLGlucHV0PWpzb24uZHVtcHMoY2FuZGlkYXRlKSx0ZXh0PVRydWUsY2FwdHVyZV9vdXRwdXQ9VHJ1ZSk7YXNzZXJ0IGRpZmYucmV0dXJuY29kZSBpbiAoMCwxKVxuIyBEaWZmIGNhbiBjb250YWluIG9ubHkgbm9uc2VjcmV0IERlcGxveW1lbnQgcmVmZXJlbmNlczsgcHJlc2VydmUgZGlnZXN0IHJhdGhlciB0aGFuIHJhdyBzdGRvdXQuXG5ub2RlPXJ1bihbXCdrdWJlY3RsXCcsXCdkZXNjcmliZVwnLFwnbm9kZVwnXSk7YWxsb2NhdGVkPXJlLnNlYXJjaChyXCdBbGxvY2F0ZWQgcmVzb3VyY2VzOi4qP0NQVSBSZXF1ZXN0c3xBbGxvY2F0ZWQgcmVzb3VyY2VzOlwnLG5vZGUscmUuUylcbnNlY3Rpb249bm9kZS5zcGxpdChcJ0FsbG9jYXRlZCByZXNvdXJjZXM6XCcpWzFdLnNwbGl0KFwnRXZlbnRzOlwnKVswXSBpZiBcJ0FsbG9jYXRlZCByZXNvdXJjZXM6XCcgaW4gbm9kZSBlbHNlIFwnXCdcbm5vZGVzPWpzb24ubG9hZHMocnVuKFtcJ2t1YmVjdGxcJyxcJ2dldFwnLFwnbm9kZXNcJyxcJy1vXCcsXCdqc29uXCddKSlbXCdpdGVtc1wnXTthc3NlcnQgbGVuKG5vZGVzKT09MVxuYWxsb2M9bm9kZXNbMF1bXCdzdGF0dXNcJ11bXCdhbGxvY2F0YWJsZVwnXTtjcHU9YWxsb2NbXCdjcHVcJ107Y3B1X209aW50KGNwdVs6LTFdKSBpZiBjcHUuZW5kc3dpdGgoXCdtXCcpIGVsc2UgaW50KGNwdSkqMTAwMFxucmVxdWVzdGVkPWludChyZS5zZWFyY2goclwnY3B1XFxzKyhcXGQrKW1cJyxzZWN0aW9uKS5ncm91cCgxKSk7YXNzZXJ0IHJlcXVlc3RlZDw9Y3B1X21cbnJlY2VpcHQ9e1wnbm9kZV9hbGxvY2F0YWJsZV9jcHVfbVwnOmNwdV9tLFwnbm9kZV9yZXF1ZXN0ZWRfY3B1X21cJzpyZXF1ZXN0ZWQsXCdjYXB0dXJlZF9hdFwnOmRhdGV0aW1lLmRhdGV0aW1lLm5vdyhkYXRldGltZS50aW1lem9uZS51dGMpLmlzb2Zvcm1hdCgpLFwnbmF0aXZlX3dvcmtsb2FkX2NoYW5nZWRcJzpGYWxzZSxcJ25hdGl2ZV9iYWNrdXBfcmVzdG9yZV9leGVjdXRlZFwnOkZhbHNlLFwnYXJnb1wnOmFyZ28sXCduYXRpdmVfZGVwZW5kZW5jaWVzX2NoZWNrZWRcJzpUcnVlLFwnY29uZmlnbWFwX3VpZFwnOmNtW1wnbWV0YWRhdGFcJ11bXCd1aWRcJ10sXCdwdmNfdWlkXCc6cHZjW1wnbWV0YWRhdGFcJ11bXCd1aWRcJ10sXCdsaXZlX3JlYWR5X3JlcGxpY2FzXCc6MSxcJ2FkbWl0dGVkX3VpZFwnOmFkbWl0dGVkW1wnbWV0YWRhdGFcJ11bXCd1aWRcJ10sXCdzZXJ2ZXJfZHJ5X3J1bl9wYXNzZWRcJzpUcnVlLFwnYWRtaXR0ZWRfc3BlY19leGFjdGx5X2xpdmVfcGx1c19pbWFnZVwnOlRydWUsXCdjbGllbnRfZGlmZl9leGl0XCc6ZGlmZi5yZXR1cm5jb2RlLFwnY2xpZW50X2RpZmZfc2hhMjU2XCc6aGFzaGxpYi5zaGEyNTYoZGlmZi5zdGRvdXQuZW5jb2RlKCkpLmhleGRpZ2VzdCgpLFwnbm9kZV9hbGxvY2F0ZWRfcmVzb3VyY2VzXCc6c2VjdGlvbi5zdHJpcCgpLFwnYWxsX2NoZWNrc19wYXNzXCc6VHJ1ZX1cbnByaW50KGpzb24uZHVtcHMocmVjZWlwdCkpXG4nCmZvciBtYXJrZXIsdmFsdWUgaW4gWygnREVQRU5ERU5DSUVTX0xJVEVSQUwnLChST09ULydzZWFsZWQtbmF0aXZlLWRlcGVuZGVuY2llcy5qc29uJykucmVhZF90ZXh0KCkpLCgnQ0FORElEQVRFX0xJVEVSQUwnLChST09ULydjYW5kaWRhdGUtZGVwbG95bWVudC5qc29uJykucmVhZF90ZXh0KCkpLCgnU0VBTEVEX0xJVEVSQUwnLChST09ULydzZWFsZWQtbGl2ZS1kZXBsb3ltZW50Lmpzb24nKS5yZWFkX3RleHQoKSksKCdHVUFSRF9MSVRFUkFMJywoUk9PVC8nY2hhbmdlX2d1YXJkLnB5JykucmVhZF90ZXh0KCkpLCgnQVJHT19MSVRFUkFMJyxqc29uLmR1bXBzKGpzb24ubG9hZHMoKFJPT1QvJ25hdGl2ZS1wcmVmbGlnaHQuanNvbicpLnJlYWRfdGV4dCgpKVsnYXJnbyddKSldOgogcHJvZ3JhbT1wcm9ncmFtLnJlcGxhY2UobWFya2VyLHJlcHIodmFsdWUpKQpwcm9ncmFtPSdpbXBvcnQgdHJhY2ViYWNrLGpzb25cbnRyeTpcbicrJycuam9pbignICAgICcrbGluZSsnXG4nIGZvciBsaW5lIGluIHByb2dyYW0uc3BsaXRsaW5lcygpKSsiZXhjZXB0IEV4Y2VwdGlvbiBhcyBlcnJvcjpcbiAgICBwcmludChqc29uLmR1bXBzKHsnYWxsX2NoZWNrc19wYXNzJzpGYWxzZSwnZXhjZXB0aW9uX3R5cGUnOnR5cGUoZXJyb3IpLl9fbmFtZV9fLCdleGNlcHRpb25fbGluZSc6dHJhY2ViYWNrLmV4dHJhY3RfdGIoZXJyb3IuX190cmFjZWJhY2tfXylbLTFdLmxpbmVub30pKVxuIgpyPXN1YnByb2Nlc3MucnVuKFsnc3NoJywncmFpbGlhbmNlMDEnLCdweXRob24zIC0nXSxpbnB1dD1wcm9ncmFtLHRleHQ9VHJ1ZSxjYXB0dXJlX291dHB1dD1UcnVlKQpyZXN1bHQ9dHJhbnNwb3J0X3Jlc3VsdChyLnJldHVybmNvZGUsci5zdGRvdXQpO3Jlc3VsdFsnc2VhbGVkX3ByZWZsaWdodF9pbnB1dHNfc2hhMjU2J109aGFzaGxpYi5zaGEyNTYoKFJPT1QvJ3ByZWZsaWdodC1pbnB1dHMuanNvbicpLnJlYWRfYnl0ZXMoKSkuaGV4ZGlnZXN0KCk7cmVzdWx0WydmcmVzaF9leGVjdXRpb25fcmVjZWlwdCddPVRydWUKb3V0LndyaXRlX3RleHQoanNvbi5kdW1wcyhyZXN1bHQsaW5kZW50PTIpKydcbicpO3ByaW50KGpzb24uZHVtcHMocmVzdWx0LGluZGVudD0yKSk7c3lzLmV4aXQoMCBpZiByZXN1bHQuZ2V0KCdhbGxfY2hlY2tzX3Bhc3MnKSBpcyBUcnVlIGVsc2UgMSkK"
|
|
},
|
|
{
|
|
"digest": "sha256:03bb4b42fe1aa51b846e957a9e23926fae72f02a2cb5e297368047fb25c17e9b",
|
|
"media_type": "application/json",
|
|
"content_base64": "ewogICJwYWNrZXRfZmlsZXMiOiB7CiAgICAiY2hhbmdlX2d1YXJkLnB5IjogImYzNDhlNDQ5YzQ5ZjRkOWU0OWFmOWU4MmUwMTc2NGU3MTk3ODM3ZmQzZGY5ZDc1NmY1ODkxZDliOGQ5YjM4YmUiLAogICAgInByZWZsaWdodC5weSI6ICI2YjRjNjVmNzA4MjM4YzlhOWQxN2ZkMDY1ODc2YzdhMDBlMWYxNzQ1OTI2Zjk5MGExZGQ1ZTY2NzI5ODM0MGNkIiwKICAgICJjYW5kaWRhdGUtZGVwbG95bWVudC5qc29uIjogIjcyMmE4ZTJkYzUyYmVjMjE3YmY5NjBlMjNiMmZkZGZjN2FjMjdkMzQzYWM4NzQzNzkwZTMxODNkYjgxYTZhMGUiLAogICAgInJvbGxiYWNrLWRlcGxveW1lbnQuanNvbiI6ICIzOWIzZjQzYmI4NGVmNDkyMWNjM2ExZmJjZGM0NDQ2MTA3NDFlZDg4MDkxNDlkOGY4ZjE3ZWQ4MDVmMjYyMTIxIiwKICAgICJzZWFsZWQtbGl2ZS1kZXBsb3ltZW50Lmpzb24iOiAiZDE4ZDI3MDYzZDA2ZjUzNWFlODg0ZWEwMWY5Njc0N2ZlMzAxNjg1NTE4YWI5NGIxY2JhMDcyYTFlMTUxOTM2MiIsCiAgICAibmF0aXZlLXByZWZsaWdodC5qc29uIjogImViNWY0MWFlZmI5NzY2NmJiMGMxMjc5NjE3ZTk1YTdjMDUwMTdhNjA5NDE1NjI0ZGFlZTcyNGM0OGI5MGQyNjIiLAogICAgInNlYWxlZC1uYXRpdmUtZGVwZW5kZW5jaWVzLmpzb24iOiAiMDQyMzI3YTAzNmVkMjU0Y2Y5NWRiZWIwYzA1NmFjMjViMDNhNmE4NDRiOTVhMzMyYzk5MmRmMjk0MzY5MTM2OSIsCiAgICAic3FsaXRlX3JlYWRvbmx5LnB5IjogIjkwOTNjNjRmN2YwZTM5YjI0OWRhOWZlZmRmNWFhZjRlNDI1OGJjMzFlN2EyN2ZkODg4NDc5Y2UzMjlhMjA1MDkiCiAgfSwKICAib3duZXJfc291cmNlX2ZpbGVzIjogewogICAgImRlcGxveS9saWZlY3ljbGUvYWRtaXNzaW9uLmNhbmRpZGF0ZS5qc29uIjogIjkyMzgyYTU2YjM0OWMzYjg5NWU1ODA2ZTk3NTA4MjUyN2JiOTlkMWEwMDExNDBlNjlkODU3ZTViMDM5MWZhNTUiLAogICAgImRlcGxveS9saWZlY3ljbGUvc2VydmljZS5jYW5kaWRhdGUuanNvbiI6ICIzOGI3OGI5Y2JlZTVhZGU3NzUwYTU4ZDUxNTZjYTRjNTc3MzM1MmU5NDdhY2IzMDRlZTcxNGI1OWU3NDljZWI0IgogIH0KfQo="
|
|
},
|
|
{
|
|
"digest": "sha256:2ec324aa8e3f97753b3ed87bca80820feb5e542dc0a4799aa848ec77ea92feb7",
|
|
"media_type": "application/json",
|
|
"content_base64": "ewogICJub2RlX2FsbG9jYXRhYmxlX2NwdV9tIjogNDAwMCwKICAibm9kZV9yZXF1ZXN0ZWRfY3B1X20iOiAzNDYwLAogICJjYXB0dXJlZF9hdCI6ICIyMDI2LTEwLTExVDAxOjM5OjE0LjIzNDI3NyswMDowMCIsCiAgIm5hdGl2ZV93b3JrbG9hZF9jaGFuZ2VkIjogZmFsc2UsCiAgIm5hdGl2ZV9iYWNrdXBfcmVzdG9yZV9leGVjdXRlZCI6IGZhbHNlLAogICJhcmdvIjogewogICAgInVpZCI6ICI0OTk4NjhmMi1lYWJjLTRkZjQtYWUzMS1iODljZTU4ZDc1MGQiLAogICAgInJlcG9VUkwiOiAiaHR0cHM6Ly9mb3JnZWpvLmNvdWxvbWIuc29jaWFsL2NvdWxvbWIvaW5mb3JtZWQtZGVjaXNpb24uZ2l0IiwKICAgICJ0YXJnZXRSZXZpc2lvbiI6ICI3ZGI4NDg1ZmZlY2RlYmZhYmQ3N2E5ZGFlYzA4NTU1M2M3NGJmMGJmIiwKICAgICJwYXRoIjogImRlcGxveS9saWZlY3ljbGUiLAogICAgImRlc3RpbmF0aW9uIjogewogICAgICAibmFtZXNwYWNlIjogImluZm9ybWVkLWRlY2lzaW9uIiwKICAgICAgInNlcnZlciI6ICJodHRwczovL2t1YmVybmV0ZXMuZGVmYXVsdC5zdmMiCiAgICB9LAogICAgImF1dG9tYXRlZCI6IGZhbHNlLAogICAgInN5bmMiOiB7CiAgICAgICJjb21wYXJlZFRvIjogewogICAgICAgICJkZXN0aW5hdGlvbiI6IHsKICAgICAgICAgICJuYW1lc3BhY2UiOiAiaW5mb3JtZWQtZGVjaXNpb24iLAogICAgICAgICAgInNlcnZlciI6ICJodHRwczovL2t1YmVybmV0ZXMuZGVmYXVsdC5zdmMiCiAgICAgICAgfSwKICAgICAgICAic291cmNlIjogewogICAgICAgICAgInBhdGgiOiAiZGVwbG95L2xpZmVjeWNsZSIsCiAgICAgICAgICAicmVwb1VSTCI6ICJodHRwczovL2Zvcmdlam8uY291bG9tYi5zb2NpYWwvY291bG9tYi9pbmZvcm1lZC1kZWNpc2lvbi5naXQiLAogICAgICAgICAgInRhcmdldFJldmlzaW9uIjogIjdkYjg0ODVmZmVjZGViZmFiZDc3YTlkYWVjMDg1NTUzYzc0YmYwYmYiCiAgICAgICAgfQogICAgICB9LAogICAgICAicmV2aXNpb24iOiAiN2RiODQ4NWZmZWNkZWJmYWJkNzdhOWRhZWMwODU1NTNjNzRiZjBiZiIsCiAgICAgICJzdGF0dXMiOiAiT3V0T2ZTeW5jIgogICAgfSwKICAgICJoZWFsdGgiOiB7CiAgICAgICJsYXN0VHJhbnNpdGlvblRpbWUiOiAiMjAyNi0xMC0xMFQyMzoxNDo1MloiLAogICAgICAic3RhdHVzIjogIkhlYWx0aHkiCiAgICB9CiAgfSwKICAibmF0aXZlX2RlcGVuZGVuY2llc19jaGVja2VkIjogdHJ1ZSwKICAiY29uZmlnbWFwX3VpZCI6ICI5MDExM2QyZC01NGQ5LTRlODItYjFkMy05MGI0OWViZWQyYjUiLAogICJwdmNfdWlkIjogImQ4MGIyNWIxLTE0MWEtNDQxYi1iMjA1LTk4ZmEyZmQ5OGI3YyIsCiAgImxpdmVfcmVhZHlfcmVwbGljYXMiOiAxLAogICJhZG1pdHRlZF91aWQiOiAiYTU4OGUxMGEtOTBkMi00ODgzLTk3NWUtNmRkOGI4ZmVjYTkyIiwKICAic2VydmVyX2RyeV9ydW5fcGFzc2VkIjogdHJ1ZSwKICAiYWRtaXR0ZWRfc3BlY19leGFjdGx5X2xpdmVfcGx1c19pbWFnZSI6IHRydWUsCiAgImNsaWVudF9kaWZmX2V4aXQiOiAxLAogICJjbGllbnRfZGlmZl9zaGEyNTYiOiAiODQwNzY5YzdkMmE5YzE2NTVjNDBhMzI1OWY4MzNkMWZjOGY2OTk1MGNlYjNiZWRiNzA3YTk1NWZlZDcxMTU2NiIsCiAgIm5vZGVfYWxsb2NhdGVkX3Jlc291cmNlcyI6ICIoVG90YWwgbGltaXRzIG1heSBiZSBvdmVyIDEwMCBwZXJjZW50LCBpLmUuLCBvdmVyY29tbWl0dGVkLilcbiAgUmVzb3VyY2UgICAgICAgICAgIFJlcXVlc3RzICAgICAgTGltaXRzXG4gIC0tLS0tLS0tICAgICAgICAgICAtLS0tLS0tLSAgICAgIC0tLS0tLVxuICBjcHUgICAgICAgICAgICAgICAgMzQ2MG0gKDg2JSkgICAzNjIwMG0gKDkwNSUpXG4gIG1lbW9yeSAgICAgICAgICAgICA5NDcyTWkgKDU5JSkgIDMyODk4TWkgKDIwNSUpXG4gIGVwaGVtZXJhbC1zdG9yYWdlICAwICgwJSkgICAgICAgIDAgKDAlKVxuICBodWdlcGFnZXMtMUdpICAgICAgMCAoMCUpICAgICAgICAwICgwJSlcbiAgaHVnZXBhZ2VzLTJNaSAgICAgIDAgKDAlKSAgICAgICAgMCAoMCUpIiwKICAiYWxsX2NoZWNrc19wYXNzIjogdHJ1ZSwKICAic2VhbGVkX3ByZWZsaWdodF9pbnB1dHNfc2hhMjU2IjogIjc1NmU3MmRhOWVjMzY1NzIyNDI0MjFiZWE4YjZkMjI4NTM5NGUzMzRmOTkxZGI1ZTkwZTliNDA5NTYzYjVmMDYiLAogICJmcmVzaF9leGVjdXRpb25fcmVjZWlwdCI6IHRydWUKfQo="
|
|
}
|
|
]
|
|
}
|