cropper

DYNAMIC PARADIGMS HIVE
UBUNTU-COHORT HUB

cropper
  • Cohort
  • Hub
  • Assess
  • Week 1
  • Week 2
  • Week 3
  • Week 4
  • Week 5
  • Week 6
  • Week 7
  • Week 8
  • Founder
  • Connect
  • About
{"js":"PCFET0NUWVBFIGh0bWw+CjxodG1sIGxhbmc9ImVuIj4KPGhlYWQ+CiAgICA8bWV0YSBjaGFyc2V0PSJVVEYtOCI+CiAgICA8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEuMCI+CiAgICAKICAgIDwhLS0gUHJpbWFyeSBNZXRhIFRhZ3MgLS0+CiAgICA8dGl0bGU+V2VlayA0OiBXZWJpbmFyIEFyY2hpdGVjdHVyZSAmIERlbGl2ZXJ5IFByb3Bvc2FsIHwgVWJ1bnR1IENvaG9ydCB8IE5pZ2h0aW5nYWxlIE11a2FzYTwvdGl0bGU+CiAgICA8bWV0YSBuYW1lPSJ0aXRsZSIgY29udGVudD0iV2VlayA0OiBXZWJpbmFyIEFyY2hpdGVjdHVyZSAmIERlbGl2ZXJ5IFByb3Bvc2FsIHwgVWJ1bnR1IENvaG9ydCI+CiAgICA8bWV0YSBuYW1lPSJkZXNjcmlwdGlvbiIgY29udGVudD0iUHJvZmVzc2lvbmFsIHdlYmluYXIgYXJjaGl0ZWN0dXJlIHNvbHV0aW9uczogRG9uZS1Gb3ItWW91IGxpY2Vuc2luZywgY2xpZW50IGNvbnRlbnQgcHJvZHVjdGlvbiwgYW5kIGZ1bGwgZW5kLXRvLWVuZCB3ZWJpbmFyIGRlbGl2ZXJ5IHNlcnZpY2VzIGJ5IE5pZ2h0aW5nYWxlIE11a2FzYS4iPgogICAgPG1ldGEgbmFtZT0ia2V5d29yZHMiIGNvbnRlbnQ9IldlYmluYXIgQXJjaGl0ZWN0dXJlLCBXZWJpbmFyIFByb2R1Y3Rpb24sIFByb2Zlc3Npb25hbCBXZWJpbmFycywgRXZlcmdyZWVuIFdlYmluYXJzLCBEeW5hbWljIFBhcmFkaWdtcywgTmlnaHRpbmdhbGUgTXVrYXNhIj4KICAgIDxtZXRhIG5hbWU9ImF1dGhvciIgY29udGVudD0iTmlnaHRpbmdhbGUgTXVrYXNhIHwgRHluYW1pYyBQYXJhZGlnbXMgJiBNZW50b3JzaGlwIFN1Y2Nlc3MgQWNhZGVtaWVzIj4KICAgIDxtZXRhIG5hbWU9InJvYm90cyIgY29udGVudD0iaW5kZXgsIGZvbGxvdywgbm9hcmNoaXZlLCBub2ltYWdlaW5kZXgiPgogICAgCiAgICA8IS0tIE9wZW4gR3JhcGggLyBGYWNlYm9vayAtLT4KICAgIDxtZXRhIHByb3BlcnR5PSJvZzp0eXBlIiBjb250ZW50PSJhcnRpY2xlIj4KICAgIDxtZXRhIHByb3BlcnR5PSJvZzp1cmwiIGNvbnRlbnQ9Imh0dHBzOi8vZHluYW1pY3BhcmFkaWdtc2FjYWRlbXkuY29tL3dlZWs0Ij4KICAgIDxtZXRhIHByb3BlcnR5PSJvZzp0aXRsZSIgY29udGVudD0iV2VlayA0OiBXZWJpbmFyIEFyY2hpdGVjdHVyZSAmIERlbGl2ZXJ5IFByb3Bvc2FsIj4KICAgIDxtZXRhIHByb3BlcnR5PSJvZzpkZXNjcmlwdGlvbiIgY29udGVudD0iUHJvZmVzc2lvbmFsIHdlYmluYXIgYXJjaGl0ZWN0dXJlIHNvbHV0aW9ucyBmb3Igb3JnYW5pemF0aW9ucyBzZWVraW5nIHBvbGlzaGVkLCBlbmdhZ2luZyBlZHVjYXRpb25hbCBleHBlcmllbmNlcy4iPgogICAgCiAgICA8IS0tIFR3aXR0ZXIgLS0+CiAgICA8bWV0YSBwcm9wZXJ0eT0idHdpdHRlcjpjYXJkIiBjb250ZW50PSJzdW1tYXJ5X2xhcmdlX2ltYWdlIj4KICAgIDxtZXRhIHByb3BlcnR5PSJ0d2l0dGVyOnVybCIgY29udGVudD0iaHR0cHM6Ly9keW5hbWljcGFyYWRpZ21zYWNhZGVteS5jb20vd2VlazQiPgogICAgPG1ldGEgcHJvcGVydHk9InR3aXR0ZXI6dGl0bGUiIGNvbnRlbnQ9IldlZWsgNDogV2ViaW5hciBBcmNoaXRlY3R1cmUgJiBEZWxpdmVyeSBQcm9wb3NhbCI+CiAgICAKICAgIDwhLS0gQ2Fub25pY2FsIFVSTCAtLT4KICAgIDxsaW5rIHJlbD0iY2Fub25pY2FsIiBocmVmPSJodHRwczovL2R5bmFtaWNwYXJhZGlnbXNhY2FkZW15LmNvbS93ZWVrNCI+CiAgICAKICAgIDxsaW5rIGhyZWY9Imh0dHBzOi8vZm9udHMuZ29vZ2xlYXBpcy5jb20vY3NzMj9mYW1pbHk9UGxheWZhaXIrRGlzcGxheTp3Z2h0QDQwMDs1MDA7NjAwOzcwMCZmYW1pbHk9Q29ybW9yYW50K0dhcmFtb25kOml0YWwsd2dodEAwLDQwMDswLDUwMDswLDYwMDsxLDQwMCZmYW1pbHk9TW9udHNlcnJhdDp3Z2h0QDMwMDs0MDA7NTAwOzYwMCZkaXNwbGF5PXN3YXAiIHJlbD0ic3R5bGVzaGVldCI+CiAgICAKICAgIDxzdHlsZT4KICAgICAgICA6cm9vdCB7CiAgICAgICAgICAgIC0tbmF2eTogIzBEMUIyQTsKICAgICAgICAgICAgLS1pbmRpZ286ICMxQzFGNEE7CiAgICAgICAgICAgIC0tZ29sZDogI0Q0QUYzNzsKICAgICAgICAgICAgLS1yb3NlZ29sZDogI0MyOUE4QjsKICAgICAgICAgICAgLS1pdm9yeTogI0Y4RjRFQzsKICAgICAgICAgICAgLS1jcmVhbTogI0ZBRjdGMjsKICAgICAgICAgICAgLS1kZWVwZ29sZDogI0I4OTcyRTsKICAgICAgICAgICAgLS1saWdodGdvbGQ6ICNFOEQ1QTM7CiAgICAgICAgICAgIC0tc2hhZG93bmF2eTogcmdiYSgxMywgMjcsIDQyLCAwLjg1KTsKICAgICAgICAgICAgLS10ZWFsOiAjMDA4OTdiOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAqIHsKICAgICAgICAgICAgbWFyZ2luOiAwOwogICAgICAgICAgICBwYWRkaW5nOiAwOwogICAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICAgIH0KICAgICAgICAKICAgICAgICBodG1sIHsKICAgICAgICAgICAgc2Nyb2xsLWJlaGF2aW9yOiBzbW9vdGg7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIGJvZHkgewogICAgICAgICAgICBmb250LWZhbWlseTogJ01vbnRzZXJyYXQnLCBzYW5zLXNlcmlmOwogICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1uYXZ5KTsKICAgICAgICAgICAgY29sb3I6IHZhcigtLWl2b3J5KTsKICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNzsKICAgICAgICAgICAgb3ZlcmZsb3cteDogaGlkZGVuOwogICAgICAgICAgICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lOwogICAgICAgICAgICAtbW96LXVzZXItc2VsZWN0OiBub25lOwogICAgICAgICAgICAtbXMtdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAgICAgICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgICAgICAgICAtd2Via2l0LXRvdWNoLWNhbGxvdXQ6IG5vbmU7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIGltZyB7CiAgICAgICAgICAgIC13ZWJraXQtdXNlci1kcmFnOiBub25lOwogICAgICAgICAgICB1c2VyLWRyYWc6IG5vbmU7CiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAud2F0ZXJtYXJrIHsKICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkOwogICAgICAgICAgICB0b3A6IDA7CiAgICAgICAgICAgIGxlZnQ6IDA7CiAgICAgICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICAgICAgICB6LWluZGV4OiA5OTk5OwogICAgICAgICAgICBvcGFjaXR5OiAwLjAyOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAud2F0ZXJtYXJrOjpiZWZvcmUgewogICAgICAgICAgICBjb250ZW50OiAnwqkgRHluYW1pYyBQYXJhZGlnbXPihKIg4oCiIFByb3ByaWV0YXJ5IEZyYW1ld29yayDigKIgZHluYW1pY3BhcmFkaWdtc2FjYWRlbXkuY29tJzsKICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgICAgICB0b3A6IDUwJTsKICAgICAgICAgICAgbGVmdDogNTAlOwogICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKSByb3RhdGUoLTMwZGVnKTsKICAgICAgICAgICAgZm9udC1zaXplOiAyLjVyZW07CiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAnTW9udHNlcnJhdCcsIHNhbnMtc2VyaWY7CiAgICAgICAgICAgIGNvbG9yOiByZ2JhKDIxMiwgMTc1LCA1NSwgMC4wNCk7CiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICAgICAgICAgIGxldHRlci1zcGFjaW5nOiA1cHg7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIEBtZWRpYSBwcmludCB7CiAgICAgICAgICAgIGJvZHk6OmJlZm9yZSB7CiAgICAgICAgICAgICAgICBjb250ZW50OiAnQ09ORklERU5USUFMIOKAoiDCqSBEeW5hbWljIFBhcmFkaWdtcyAmIE1lbnRvcnNoaXAgU3VjY2VzcyBBY2FkZW1pZXMnOwogICAgICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkOwogICAgICAgICAgICAgICAgdG9wOiA1MCU7CiAgICAgICAgICAgICAgICBsZWZ0OiA1MCU7CiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKSByb3RhdGUoLTQ1ZGVnKTsKICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogNHJlbTsKICAgICAgICAgICAgICAgIGNvbG9yOiByZ2JhKDIxMiwgMTc1LCA1NSwgMC4zKTsKICAgICAgICAgICAgICAgIHotaW5kZXg6IDk5OTk5OwogICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgICAgICAgICAgfQogICAgICAgICAgICBib2R5ICogeyB2aXNpYmlsaXR5OiBoaWRkZW4gIWltcG9ydGFudDsgfQogICAgICAgIH0KICAgICAgICAKICAgICAgICAvKiBCYWNrZ3JvdW5kIFBhdHRlcm4gKi8KICAgICAgICAuZ2VvcGF0dGVybiB7CiAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDsKICAgICAgICAgICAgdG9wOiAwOwogICAgICAgICAgICBsZWZ0OiAwOwogICAgICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgICAgICAgei1pbmRleDogMDsKICAgICAgICAgICAgb3BhY2l0eTogMC4wMzsKICAgICAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogCiAgICAgICAgICAgICAgICBsaW5lYXItZ3JhZGllbnQoMzBkZWcsIHZhcigtLWdvbGQpIDFweCwgdHJhbnNwYXJlbnQgMXB4KSwKICAgICAgICAgICAgICAgIGxpbmVhci1ncmFkaWVudCgtMzBkZWcsIHZhcigtLWdvbGQpIDFweCwgdHJhbnNwYXJlbnQgMXB4KSwKICAgICAgICAgICAgICAgIGxpbmVhci1ncmFkaWVudCgxNTBkZWcsIHZhcigtLWdvbGQpIDFweCwgdHJhbnNwYXJlbnQgMXB4KSwKICAgICAgICAgICAgICAgIGxpbmVhci1ncmFkaWVudCgtMTUwZGVnLCB2YXIoLS1nb2xkKSAxcHgsIHRyYW5zcGFyZW50IDFweCk7CiAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogNjBweCAxMDRweDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLyogRmxvYXRpbmcgT3JicyAqLwogICAgICAgIC5vcmIgewogICAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7CiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgICAgICAgICAgZmlsdGVyOiBibHVyKDYwcHgpOwogICAgICAgICAgICBvcGFjaXR5OiAwLjE1OwogICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgICAgICAgei1pbmRleDogMDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLm9yYjEgeyB3aWR0aDogNDAwcHg7IGhlaWdodDogNDAwcHg7IGJhY2tncm91bmQ6IHZhcigtLWdvbGQpOyB0b3A6IC0xMDBweDsgcmlnaHQ6IC0xMDBweDsgYW5pbWF0aW9uOiBmbG9hdG9yYiAyMHMgZWFzZS1pbi1vdXQgaW5maW5pdGU7IH0KICAgICAgICAub3JiMiB7IHdpZHRoOiAzMDBweDsgaGVpZ2h0OiAzMDBweDsgYmFja2dyb3VuZDogdmFyKC0tcm9zZWdvbGQpOyBib3R0b206IDIwJTsgbGVmdDogLTEwMHB4OyBhbmltYXRpb246IGZsb2F0b3JiIDI1cyBlYXNlLWluLW91dCBpbmZpbml0ZSByZXZlcnNlOyB9CiAgICAgICAgLm9yYjMgeyB3aWR0aDogMjUwcHg7IGhlaWdodDogMjUwcHg7IGJhY2tncm91bmQ6IHZhcigtLWdvbGQpOyB0b3A6IDUwJTsgcmlnaHQ6IDEwJTsgYW5pbWF0aW9uOiBmbG9hdG9yYiAxOHMgZWFzZS1pbi1vdXQgaW5maW5pdGUgMnM7IH0KICAgICAgICAKICAgICAgICBAa2V5ZnJhbWVzIGZsb2F0b3JiIHsKICAgICAgICAgICAgMCUsIDEwMCUgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKSBzY2FsZSgxKTsgfQogICAgICAgICAgICAyNSUgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgzMHB4LCAtMzBweCkgc2NhbGUoMS4xKTsgfQogICAgICAgICAgICA1MCUgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMjBweCwgMjBweCkgc2NhbGUoMC45NSk7IH0KICAgICAgICAgICAgNzUlIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMjBweCwgMzBweCkgc2NhbGUoMS4wNSk7IH0KICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLyogTmF2aWdhdGlvbiAqLwogICAgICAgIC5zb3ZlcmVpZ25uYXYgewogICAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7CiAgICAgICAgICAgIHRvcDogMDsKICAgICAgICAgICAgbGVmdDogMDsKICAgICAgICAgICAgcmlnaHQ6IDA7CiAgICAgICAgICAgIHotaW5kZXg6IDEwMDA7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXNoYWRvd25hdnkpOwogICAgICAgICAgICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoMjBweCk7CiAgICAgICAgICAgIHBhZGRpbmc6IDEycHggMzBweDsKICAgICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgcmdiYSgyMTIsIDE3NSwgNTUsIDAuMSk7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5uYXZsb2dvIHsKICAgICAgICAgICAgZm9udC1mYW1pbHk6ICdQbGF5ZmFpciBEaXNwbGF5Jywgc2VyaWY7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMC45NXJlbTsKICAgICAgICAgICAgY29sb3I6IHZhcigtLWdvbGQpOwogICAgICAgICAgICBsZXR0ZXItc3BhY2luZzogMnB4OwogICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5uYXZjZW50ZXIgewogICAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAgICBnYXA6IDEycHg7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5uYXZidG4gewogICAgICAgICAgICBkaXNwbGF5OiBmbGV4OwogICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAgICBnYXA6IDhweDsKICAgICAgICAgICAgY29sb3I6IHZhcigtLWl2b3J5KTsKICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOwogICAgICAgICAgICBmb250LXNpemU6IDAuNzVyZW07CiAgICAgICAgICAgIGxldHRlci1zcGFjaW5nOiAxcHg7CiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgICAgICAgICAgIHBhZGRpbmc6IDhweCAxNnB4OwogICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDIxMiwgMTc1LCA1NSwgMC4zKTsKICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMjVweDsKICAgICAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTsKICAgICAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5uYXZidG46aG92ZXIgewogICAgICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLWdvbGQpOwogICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDIxMiwgMTc1LCA1NSwgMC4xKTsKICAgICAgICAgICAgY29sb3I6IHZhcigtLWdvbGQpOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAubmF2YnRuLmhvbWVidG4gewogICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDIxMiwgMTc1LCA1NSwgMC4xKTsKICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1nb2xkKTsKICAgICAgICAgICAgY29sb3I6IHZhcigtLWdvbGQpOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAubmF2YnRuLmRpc2FibGVkIHsKICAgICAgICAgICAgb3BhY2l0eTogMC40OwogICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLm5hdmJhZGdlIHsKICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgdmFyKC0tZ29sZCksIHZhcigtLWRlZXBnb2xkKSk7CiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1uYXZ5KTsKICAgICAgICAgICAgcGFkZGluZzogNnB4IDE2cHg7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMC42NXJlbTsKICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDJweDsKICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMjBweDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLm5hdnByb2dyZXNzIHsKICAgICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgICAgZ2FwOiA2cHg7CiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAxNXB4OwogICAgICAgIH0KICAgICAgICAKICAgICAgICAucHJvZ3Jlc3Nkb3QgewogICAgICAgICAgICB3aWR0aDogOHB4OwogICAgICAgICAgICBoZWlnaHQ6IDhweDsKICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAucHJvZ3Jlc3Nkb3QuY29tcGxldGVkIHsgYmFja2dyb3VuZDogdmFyKC0tdGVhbCk7IH0KICAgICAgICAucHJvZ3Jlc3Nkb3QuY3VycmVudCB7IGJhY2tncm91bmQ6IHZhcigtLWdvbGQpOyBib3gtc2hhZG93OiAwIDAgMTBweCByZ2JhKDIxMiwgMTc1LCA1NSwgMC41KTsgfQogICAgICAgIC5wcm9ncmVzc2RvdC51cGNvbWluZyB7IGJhY2tncm91bmQ6IHJnYmEoMjEyLCAxNzUsIDU1LCAwLjIpOyB9CiAgICAgICAgCiAgICAgICAgLyogSGVybyBTZWN0aW9uICovCiAgICAgICAgLmhlcm8gewogICAgICAgICAgICBtaW4taGVpZ2h0OiAxMDB2aDsKICAgICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICAgICAgcGFkZGluZzogMTIwcHggNDBweCA4MHB4OwogICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgICAgIHotaW5kZXg6IDE7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5oZXJvYmFkZ2UgewogICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1nb2xkKTsKICAgICAgICAgICAgY29sb3I6IHZhcigtLWdvbGQpOwogICAgICAgICAgICBwYWRkaW5nOiAxMHB4IDMwcHg7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMC43cmVtOwogICAgICAgICAgICBsZXR0ZXItc3BhY2luZzogNHB4OwogICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwogICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAzMHB4OwogICAgICAgICAgICBhbmltYXRpb246IGZhZGVJblVwIDFzIGVhc2UgZm9yd2FyZHMgMC4zczsKICAgICAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLmhlcm90aXRsZSB7CiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAnUGxheWZhaXIgRGlzcGxheScsIHNlcmlmOwogICAgICAgICAgICBmb250LXNpemU6IGNsYW1wKDIuNXJlbSwgNnZ3LCA0LjVyZW0pOwogICAgICAgICAgICBmb250LXdlaWdodDogNDAwOwogICAgICAgICAgICBsaW5lLWhlaWdodDogMS4xOwogICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAyMHB4OwogICAgICAgICAgICBhbmltYXRpb246IGZhZGVJblVwIDFzIGVhc2UgZm9yd2FyZHMgMC41czsKICAgICAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLmhlcm90aXRsZSBzcGFuIHsKICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHZhcigtLWdvbGQpLCB2YXIoLS1saWdodGdvbGQpLCB2YXIoLS1nb2xkKSk7CiAgICAgICAgICAgIC13ZWJraXQtYmFja2dyb3VuZC1jbGlwOiB0ZXh0OwogICAgICAgICAgICAtd2Via2l0LXRleHQtZmlsbC1jb2xvcjogdHJhbnNwYXJlbnQ7CiAgICAgICAgICAgIGJhY2tncm91bmQtY2xpcDogdGV4dDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLmhlcm9zdWJ0aXRsZSB7CiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAnQ29ybW9yYW50IEdhcmFtb25kJywgc2VyaWY7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogY2xhbXAoMS4ycmVtLCAyLjV2dywgMS42cmVtKTsKICAgICAgICAgICAgZm9udC1zdHlsZTogaXRhbGljOwogICAgICAgICAgICBjb2xvcjogdmFyKC0tcm9zZWdvbGQpOwogICAgICAgICAgICBtYXgtd2lkdGg6IDgwMHB4OwogICAgICAgICAgICBtYXJnaW4tYm90dG9tOiA1MHB4OwogICAgICAgICAgICBhbmltYXRpb246IGZhZGVJblVwIDFzIGVhc2UgZm9yd2FyZHMgMC43czsKICAgICAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgQGtleWZyYW1lcyBmYWRlSW5VcCB7CiAgICAgICAgICAgIGZyb20geyBvcGFjaXR5OiAwOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMzBweCk7IH0KICAgICAgICAgICAgdG8geyBvcGFjaXR5OiAxOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7IH0KICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLyogU2VjdGlvbiBTdHlsaW5nICovCiAgICAgICAgc2VjdGlvbiB7CiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICAgICAgei1pbmRleDogMTsKICAgICAgICAgICAgcGFkZGluZzogMTAwcHggNDBweDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLmNvbnRhaW5lciB7CiAgICAgICAgICAgIG1heC13aWR0aDogMTEwMHB4OwogICAgICAgICAgICBtYXJnaW46IDAgYXV0bzsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLnNlY3Rpb25oZWFkZXIgewogICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDYwcHg7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5zZWN0aW9ubGFiZWwgewogICAgICAgICAgICBmb250LXNpemU6IDAuN3JlbTsKICAgICAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDRweDsKICAgICAgICAgICAgY29sb3I6IHZhcigtLWdvbGQpOwogICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwogICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxNXB4OwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuc2VjdGlvbnRpdGxlIHsKICAgICAgICAgICAgZm9udC1mYW1pbHk6ICdQbGF5ZmFpciBEaXNwbGF5Jywgc2VyaWY7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogY2xhbXAoMnJlbSwgNHZ3LCAzcmVtKTsKICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDsKICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMjBweDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLnNlY3Rpb25zdWJ0aXRsZSB7CiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAnQ29ybW9yYW50IEdhcmFtb25kJywgc2VyaWY7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4ycmVtOwogICAgICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7CiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1yb3NlZ29sZCk7CiAgICAgICAgICAgIG1heC13aWR0aDogNzAwcHg7CiAgICAgICAgICAgIG1hcmdpbjogMCBhdXRvOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAvKiBQcm9ibGVtIFNlY3Rpb24gKi8KICAgICAgICAucHJvYmxlbXNlY3Rpb24gewogICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCB0cmFuc3BhcmVudCAwJSwgcmdiYSgyOCwgMzEsIDc0LCAwLjMpIDUwJSwgdHJhbnNwYXJlbnQgMTAwJSk7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5wcm9ibGVtY2FyZCB7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxNDVkZWcsIHJnYmEoMTMsIDI3LCA0MiwgMC44KSwgcmdiYSgyOCwgMzEsIDc0LCAwLjQpKTsKICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyMTIsIDE3NSwgNTUsIDAuMTUpOwogICAgICAgICAgICBib3JkZXItbGVmdDogNHB4IHNvbGlkIHZhcigtLXJvc2Vnb2xkKTsKICAgICAgICAgICAgcGFkZGluZzogNDBweDsKICAgICAgICAgICAgZm9udC1zaXplOiAxcmVtOwogICAgICAgICAgICBsaW5lLWhlaWdodDogMS45OwogICAgICAgICAgICBjb2xvcjogcmdiYSgyNDgsIDI0NCwgMjM2LCAwLjg1KTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLnByb2JsZW1jYXJkIHAgewogICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAyMHB4OwogICAgICAgIH0KICAgICAgICAKICAgICAgICAucHJvYmxlbWNhcmQgcDpsYXN0LWNoaWxkIHsKICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDsKICAgICAgICAgICAgY29sb3I6IHZhcigtLWdvbGQpOwogICAgICAgICAgICBmb250LXdlaWdodDogNTAwOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAvKiBUaWVyIENhcmRzICovCiAgICAgICAgLnRpZXJzZWN0aW9uIHsKICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgdmFyKC0taW5kaWdvKSAwJSwgdmFyKC0tbmF2eSkgMTAwJSk7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC50aWVyZ3JpZCB7CiAgICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZml0LCBtaW5tYXgoMzIwcHgsIDFmcikpOwogICAgICAgICAgICBnYXA6IDMwcHg7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC50aWVyY2FyZCB7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxNDVkZWcsIHJnYmEoMTMsIDI3LCA0MiwgMC45KSwgcmdiYSgyOCwgMzEsIDc0LCAwLjUpKTsKICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyMTIsIDE3NSwgNTUsIDAuMTUpOwogICAgICAgICAgICBwYWRkaW5nOiAwOwogICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjRzIGVhc2U7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC50aWVyY2FyZDpob3ZlciB7CiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogcmdiYSgyMTIsIDE3NSwgNTUsIDAuNCk7CiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNXB4KTsKICAgICAgICAgICAgYm94LXNoYWRvdzogMCAyMHB4IDUwcHggcmdiYSgwLCAwLCAwLCAwLjMpOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAudGllcmhlYWRlciB7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHZhcigtLWdvbGQpLCB2YXIoLS1kZWVwZ29sZCkpOwogICAgICAgICAgICBwYWRkaW5nOiAyMHB4IDMwcHg7CiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLnRpZXJudW1iZXIgewogICAgICAgICAgICBmb250LWZhbWlseTogJ1BsYXlmYWlyIERpc3BsYXknLCBzZXJpZjsKICAgICAgICAgICAgZm9udC1zaXplOiAwLjhyZW07CiAgICAgICAgICAgIGxldHRlci1zcGFjaW5nOiAzcHg7CiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1uYXZ5KTsKICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogNXB4OwogICAgICAgIH0KICAgICAgICAKICAgICAgICAudGllcnRpdGxlIHsKICAgICAgICAgICAgZm9udC1mYW1pbHk6ICdQbGF5ZmFpciBEaXNwbGF5Jywgc2VyaWY7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4zcmVtOwogICAgICAgICAgICBjb2xvcjogdmFyKC0tbmF2eSk7CiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC50aWVydGFnbGluZSB7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMC43NXJlbTsKICAgICAgICAgICAgY29sb3I6IHJnYmEoMTMsIDI3LCA0MiwgMC43KTsKICAgICAgICAgICAgZm9udC1zdHlsZTogaXRhbGljOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAudGllcmJvZHkgewogICAgICAgICAgICBwYWRkaW5nOiAzMHB4OwogICAgICAgIH0KICAgICAgICAKICAgICAgICAudGllcmRlc2NyaXB0aW9uIHsKICAgICAgICAgICAgZm9udC1zaXplOiAwLjlyZW07CiAgICAgICAgICAgIGNvbG9yOiByZ2JhKDI0OCwgMjQ0LCAyMzYsIDAuOCk7CiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDI1cHg7CiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjc7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC50aWVyaW5jbHVkZXMgewogICAgICAgICAgICBsaXN0LXN0eWxlOiBub25lOwogICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAyNXB4OwogICAgICAgIH0KICAgICAgICAKICAgICAgICAudGllcmluY2x1ZGVzIGxpIHsKICAgICAgICAgICAgcGFkZGluZzogMTBweCAwOwogICAgICAgICAgICBmb250LXNpemU6IDAuODVyZW07CiAgICAgICAgICAgIGNvbG9yOiByZ2JhKDI0OCwgMjQ0LCAyMzYsIDAuNzUpOwogICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgcmdiYSgyMTIsIDE3NSwgNTUsIDAuMSk7CiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0OwogICAgICAgICAgICBnYXA6IDEycHg7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC50aWVyaW5jbHVkZXMgbGk6OmJlZm9yZSB7CiAgICAgICAgICAgIGNvbnRlbnQ6ICfinKYnOwogICAgICAgICAgICBjb2xvcjogdmFyKC0tZ29sZCk7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMC43cmVtOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAudGllcnByaWNpbmcgewogICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDIxMiwgMTc1LCA1NSwgMC4xKTsKICAgICAgICAgICAgcGFkZGluZzogMjBweDsKICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgICAgICBtYXJnaW4tdG9wOiBhdXRvOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAucHJpY2VsYWJlbCB7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMC42NXJlbTsKICAgICAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDJweDsKICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICAgICAgICAgICAgY29sb3I6IHZhcigtLXJvc2Vnb2xkKTsKICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogNXB4OwogICAgICAgIH0KICAgICAgICAKICAgICAgICAucHJpY2VhbW91bnQgewogICAgICAgICAgICBmb250LWZhbWlseTogJ1BsYXlmYWlyIERpc3BsYXknLCBzZXJpZjsKICAgICAgICAgICAgZm9udC1zaXplOiAxLjhyZW07CiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1nb2xkKTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLnByaWNlcmVnaW9uIHsKICAgICAgICAgICAgZm9udC1zaXplOiAwLjdyZW07CiAgICAgICAgICAgIGNvbG9yOiByZ2JhKDI0OCwgMjQ0LCAyMzYsIDAuNSk7CiAgICAgICAgICAgIG1hcmdpbi10b3A6IDVweDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLyogUHJpY2luZyBUYWJsZSAqLwogICAgICAgIC5wcmljaW5nc2VjdGlvbiB7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxODBkZWcsIHZhcigtLW5hdnkpIDAlLCByZ2JhKDI4LCAzMSwgNzQsIDAuNCkgMTAwJSk7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5wcmljaW5ndGFibGUgewogICAgICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxZnI7CiAgICAgICAgICAgIGdhcDogNDBweDsKICAgICAgICAgICAgbWF4LXdpZHRoOiA5MDBweDsKICAgICAgICAgICAgbWFyZ2luOiAwIGF1dG87CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5wcmljaW5nY29sdW1uIHsKICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDE0NWRlZywgcmdiYSgxMywgMjcsIDQyLCAwLjgpLCByZ2JhKDI4LCAzMSwgNzQsIDAuNCkpOwogICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDIxMiwgMTc1LCA1NSwgMC4xNSk7CiAgICAgICAgICAgIHBhZGRpbmc6IDQwcHg7CiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLnByaWNpbmdjb2x1bW4gaDMgewogICAgICAgICAgICBmb250LWZhbWlseTogJ1BsYXlmYWlyIERpc3BsYXknLCBzZXJpZjsKICAgICAgICAgICAgZm9udC1zaXplOiAxLjVyZW07CiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1nb2xkKTsKICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMzBweDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLnByaWNpbmdpdGVtIHsKICAgICAgICAgICAgcGFkZGluZzogMTVweCAwOwogICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgcmdiYSgyMTIsIDE3NSwgNTUsIDAuMSk7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5wcmljaW5naXRlbTpsYXN0LWNoaWxkIHsKICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLnByaWNpbmd0aWVybGFiZWwgewogICAgICAgICAgICBmb250LXNpemU6IDAuNzVyZW07CiAgICAgICAgICAgIGxldHRlci1zcGFjaW5nOiAycHg7CiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1yb3NlZ29sZCk7CiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDVweDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLnByaWNpbmdwcmljZSB7CiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAnUGxheWZhaXIgRGlzcGxheScsIHNlcmlmOwogICAgICAgICAgICBmb250LXNpemU6IDEuNXJlbTsKICAgICAgICAgICAgY29sb3I6IHZhcigtLWl2b3J5KTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLyogUHJvb2YgU2VjdGlvbiAqLwogICAgICAgIC5wcm9vZnNlY3Rpb24gewogICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCByZ2JhKDI4LCAzMSwgNzQsIDAuNSkgMCUsIHZhcigtLW5hdnkpIDEwMCUpOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAucHJvb2ZncmlkIHsKICAgICAgICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maXQsIG1pbm1heCg0MDBweCwgMWZyKSk7CiAgICAgICAgICAgIGdhcDogNDBweDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLnByb29mY2FyZCB7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxNDVkZWcsIHJnYmEoMTMsIDI3LCA0MiwgMC45KSwgcmdiYSgyOCwgMzEsIDc0LCAwLjUpKTsKICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyMTIsIDE3NSwgNTUsIDAuMik7CiAgICAgICAgICAgIHBhZGRpbmc6IDQwcHg7CiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLnByb29mYmFkZ2UgewogICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWdvbGQpOwogICAgICAgICAgICBjb2xvcjogdmFyKC0tbmF2eSk7CiAgICAgICAgICAgIHBhZGRpbmc6IDZweCAxNXB4OwogICAgICAgICAgICBmb250LXNpemU6IDAuNjVyZW07CiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgICAgIGxldHRlci1zcGFjaW5nOiAycHg7CiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5wcm9vZmNhcmQgaDQgewogICAgICAgICAgICBmb250LWZhbWlseTogJ1BsYXlmYWlyIERpc3BsYXknLCBzZXJpZjsKICAgICAgICAgICAgZm9udC1zaXplOiAxLjRyZW07CiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDE1cHg7CiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1pdm9yeSk7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5wcm9vZmNhcmQgcCB7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMC45cmVtOwogICAgICAgICAgICBjb2xvcjogcmdiYSgyNDgsIDI0NCwgMjM2LCAwLjc1KTsKICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMjVweDsKICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNzsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLnByb29mbGluayB7CiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgICAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1nb2xkKTsKICAgICAgICAgICAgcGFkZGluZzogMTJweCAyNXB4OwogICAgICAgICAgICBmb250LXNpemU6IDAuNzVyZW07CiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgICAgIGxldHRlci1zcGFjaW5nOiAycHg7CiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsKICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tZ29sZCk7CiAgICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5wcm9vZmxpbms6aG92ZXIgewogICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1nb2xkKTsKICAgICAgICAgICAgY29sb3I6IHZhcigtLW5hdnkpOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAvKiBBZGRlbmR1bSBTZWN0aW9uICovCiAgICAgICAgLmFkZGVuZHVtc2VjdGlvbiB7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxODBkZWcsIHRyYW5zcGFyZW50LCByZ2JhKDI4LCAzMSwgNzQsIDAuMykpOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuYWRkZW5kdW1jYXJkIHsKICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDE0NWRlZywgcmdiYSgxMywgMjcsIDQyLCAwLjcpLCByZ2JhKDI4LCAzMSwgNzQsIDAuMykpOwogICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDIxMiwgMTc1LCA1NSwgMC4xKTsKICAgICAgICAgICAgYm9yZGVyLWxlZnQ6IDRweCBzb2xpZCB2YXIoLS1nb2xkKTsKICAgICAgICAgICAgcGFkZGluZzogNDBweDsKICAgICAgICAgICAgbWF4LXdpZHRoOiA5MDBweDsKICAgICAgICAgICAgbWFyZ2luOiAwIGF1dG87CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5hZGRlbmR1bWNhcmQgaDMgewogICAgICAgICAgICBmb250LWZhbWlseTogJ1BsYXlmYWlyIERpc3BsYXknLCBzZXJpZjsKICAgICAgICAgICAgZm9udC1zaXplOiAxLjNyZW07CiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1nb2xkKTsKICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMjBweDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLmFkZGVuZHVtY2FyZCBwIHsKICAgICAgICAgICAgZm9udC1zaXplOiAwLjlyZW07CiAgICAgICAgICAgIGNvbG9yOiByZ2JhKDI0OCwgMjQ0LCAyMzYsIDAuNzUpOwogICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxNXB4OwogICAgICAgICAgICBsaW5lLWhlaWdodDogMS44OwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuYWRkZW5kdW1jYXJkIHA6bGFzdC1jaGlsZCB7CiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5hZGRlbmR1bWNhcmQgc3Ryb25nIHsKICAgICAgICAgICAgY29sb3I6IHZhcigtLXJvc2Vnb2xkKTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLyogQm90dG9tIE5hdmlnYXRpb24gKi8KICAgICAgICAucGFnZW5hdiB7CiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgICAgICBnYXA6IDI1cHg7CiAgICAgICAgICAgIHBhZGRpbmc6IDUwcHggMzBweDsKICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDE4MGRlZywgdHJhbnNwYXJlbnQsIHJnYmEoMTMsIDI3LCA0MiwgMC4zKSk7CiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICAgICAgei1pbmRleDogMTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLnBhZ2VuYXZjYXJkIHsKICAgICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgICAgZ2FwOiAxNXB4OwogICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTQ1ZGVnLCByZ2JhKDI4LCAzMSwgNzQsIDAuNiksIHJnYmEoMTMsIDI3LCA0MiwgMC44KSk7CiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjEyLCAxNzUsIDU1LCAwLjIpOwogICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxNXB4OwogICAgICAgICAgICBwYWRkaW5nOiAxOHB4IDI1cHg7CiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsKICAgICAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuNHMgZWFzZTsKICAgICAgICAgICAgbWluLXdpZHRoOiAxODBweDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLnBhZ2VuYXZjYXJkOmhvdmVyIHsKICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1nb2xkKTsKICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01cHgpOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAucGFnZW5hdmNhcmQuZGlzYWJsZWQgewogICAgICAgICAgICBvcGFjaXR5OiAwLjQ7CiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAucGFnZW5hdmFycm93IHsKICAgICAgICAgICAgZm9udC1zaXplOiAxLjRyZW07CiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1nb2xkKTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLnBhZ2VuYXZpbmZvIHsKICAgICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgICAgZ2FwOiAzcHg7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5wYWdlbmF2bGFiZWwgewogICAgICAgICAgICBmb250LXNpemU6IDAuNnJlbTsKICAgICAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDJweDsKICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICAgICAgICAgICAgY29sb3I6IHZhcigtLXJvc2Vnb2xkKTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLnBhZ2VuYXZ0aXRsZSB7CiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAnUGxheWZhaXIgRGlzcGxheScsIHNlcmlmOwogICAgICAgICAgICBmb250LXNpemU6IDAuOTVyZW07CiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1pdm9yeSk7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5wYWdlbmF2aG9tZSB7CiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgICAgIGdhcDogNnB4OwogICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCB2YXIoLS1nb2xkKSwgdmFyKC0tZGVlcGdvbGQpKTsKICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTVweDsKICAgICAgICAgICAgcGFkZGluZzogMThweCAzMHB4OwogICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7CiAgICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjRzIGVhc2U7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5wYWdlbmF2aG9tZTpob3ZlciB7CiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNXB4KTsKICAgICAgICAgICAgYm94LXNoYWRvdzogMCAxNXB4IDQwcHggcmdiYSgyMTIsIDE3NSwgNTUsIDAuMyk7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5wYWdlbmF2aG9tZSAucGFnZW5hdmFycm93IHsKICAgICAgICAgICAgY29sb3I6IHZhcigtLW5hdnkpOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAucGFnZW5hdmhvbWUgLnBhZ2VuYXZsYWJlbCB7CiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1uYXZ5KTsKICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLyogRm9vdGVyICovCiAgICAgICAgLmZvb3RlcnNlY3Rpb24gewogICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1uYXZ5KTsKICAgICAgICAgICAgcGFkZGluZzogNjBweCA0MHB4IDMwcHg7CiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHJnYmEoMjEyLCAxNzUsIDU1LCAwLjEpOwogICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgICAgIHotaW5kZXg6IDE7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5mb290ZXJsb2dvIHsKICAgICAgICAgICAgZm9udC1mYW1pbHk6ICdQbGF5ZmFpciBEaXNwbGF5Jywgc2VyaWY7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS41cmVtOwogICAgICAgICAgICBjb2xvcjogdmFyKC0tZ29sZCk7CiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5mb290ZXJ0YWdsaW5lIHsKICAgICAgICAgICAgZm9udC1mYW1pbHk6ICdDb3Jtb3JhbnQgR2FyYW1vbmQnLCBzZXJpZjsKICAgICAgICAgICAgZm9udC1zdHlsZTogaXRhbGljOwogICAgICAgICAgICBjb2xvcjogdmFyKC0tcm9zZWdvbGQpOwogICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAyNXB4OwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuZm9vdGVyZGl2aWRlciB7CiAgICAgICAgICAgIHdpZHRoOiAxMDBweDsKICAgICAgICAgICAgaGVpZ2h0OiAxcHg7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCg5MGRlZywgdHJhbnNwYXJlbnQsIHZhcigtLWdvbGQpLCB0cmFuc3BhcmVudCk7CiAgICAgICAgICAgIG1hcmdpbjogMjVweCBhdXRvOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuZm9vdGVyY29weXJpZ2h0IHsKICAgICAgICAgICAgZm9udC1zaXplOiAwLjdyZW07CiAgICAgICAgICAgIGNvbG9yOiByZ2JhKDI0OCwgMjQ0LCAyMzYsIDAuNCk7CiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjg7CiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDMwcHg7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5zaGFyZWN0YXNlY3Rpb24gewogICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDI4LCAzMSwgNzQsIDAuNCk7CiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjEyLCAxNzUsIDU1LCAwLjE1KTsKICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTVweDsKICAgICAgICAgICAgcGFkZGluZzogMjVweCAzMHB4OwogICAgICAgICAgICBtYXgtd2lkdGg6IDQ1MHB4OwogICAgICAgICAgICBtYXJnaW46IDAgYXV0byAzMHB4OwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuc2hhcmVjdGFoZWFkbGluZSB7CiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAnUGxheWZhaXIgRGlzcGxheScsIHNlcmlmOwogICAgICAgICAgICBmb250LXNpemU6IDEuMXJlbTsKICAgICAgICAgICAgY29sb3I6IHZhcigtLWl2b3J5KTsKICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogOHB4OwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuc2hhcmVjdGFzdWJ0ZXh0IHsKICAgICAgICAgICAgZm9udC1zaXplOiAwLjhyZW07CiAgICAgICAgICAgIGNvbG9yOiByZ2JhKDI0OCwgMjQ0LCAyMzYsIDAuNik7CiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5zaGFyZWJ0bmdyb3VwIHsKICAgICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgICAgZ2FwOiAxMnB4OwogICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgICAgICAgICAgZmxleC13cmFwOiB3cmFwOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAuc2hhcmVidG4gewogICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgICAgZ2FwOiA4cHg7CiAgICAgICAgICAgIHBhZGRpbmc6IDEycHggMjBweDsKICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMjVweDsKICAgICAgICAgICAgZm9udC1zaXplOiAwLjhyZW07CiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7CiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsKICAgICAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTsKICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgICAgICBib3JkZXI6IG5vbmU7CiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAnTW9udHNlcnJhdCcsIHNhbnMtc2VyaWY7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC5zaGFyZWJ0bi53aGF0c2FwcCB7IGJhY2tncm91bmQ6IHJnYmEoMzcsIDIxMSwgMTAyLCAwLjE1KTsgY29sb3I6ICMyNUQzNjY7IGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMzcsIDIxMSwgMTAyLCAwLjMpOyB9CiAgICAgICAgLnNoYXJlYnRuLndoYXRzYXBwOmhvdmVyIHsgYmFja2dyb3VuZDogIzI1RDM2NjsgY29sb3I6IHdoaXRlOyB9CiAgICAgICAgLnNoYXJlYnRuLmxpbmtlZGluIHsgYmFja2dyb3VuZDogcmdiYSgxMCwgMTAyLCAxOTQsIDAuMTUpOyBjb2xvcjogIzBBNjZDMjsgYm9yZGVyOiAxcHggc29saWQgcmdiYSgxMCwgMTAyLCAxOTQsIDAuMyk7IH0KICAgICAgICAuc2hhcmVidG4ubGlua2VkaW46aG92ZXIgeyBiYWNrZ3JvdW5kOiAjMEE2NkMyOyBjb2xvcjogd2hpdGU7IH0KICAgICAgICAuc2hhcmVidG4uY29weSB7IGJhY2tncm91bmQ6IHJnYmEoMjEyLCAxNzUsIDU1LCAwLjEpOyBjb2xvcjogdmFyKC0tZ29sZCk7IGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjEyLCAxNzUsIDU1LCAwLjMpOyB9CiAgICAgICAgLnNoYXJlYnRuLmNvcHk6aG92ZXIgeyBiYWNrZ3JvdW5kOiB2YXIoLS1nb2xkKTsgY29sb3I6IHZhcigtLW5hdnkpOyB9CiAgICAgICAgCiAgICAgICAgLmZvb3RlcmluZm8gewogICAgICAgICAgICBmb250LXNpemU6IDAuNzVyZW07CiAgICAgICAgICAgIGNvbG9yOiByZ2JhKDI0OCwgMjQ0LCAyMzYsIDAuNSk7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC8qIFJlc3BvbnNpdmUgKi8KICAgICAgICBAbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHsKICAgICAgICAgICAgc2VjdGlvbiB7IHBhZGRpbmc6IDYwcHggMjBweDsgfQogICAgICAgICAgICAuaGVybyB7IHBhZGRpbmc6IDEwMHB4IDIwcHggNjBweDsgfQogICAgICAgICAgICAudGllcmdyaWQgeyBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjsgfQogICAgICAgICAgICAucHJpY2luZ3RhYmxlIHsgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7IH0KICAgICAgICAgICAgLnByb29mZ3JpZCB7IGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyOyB9CiAgICAgICAgICAgIC5uYXZjZW50ZXIgeyBkaXNwbGF5OiBub25lOyB9CiAgICAgICAgICAgIC5wYWdlbmF2IHsgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgZ2FwOiAxNXB4OyB9CiAgICAgICAgICAgIC5zaGFyZWJ0bmdyb3VwIHsgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgfQogICAgICAgIH0KICAgICAgICAKICAgICAgICAvKiBBbmltYXRpb25zICovCiAgICAgICAgLnJldmVhbCB7CiAgICAgICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSg0MHB4KTsKICAgICAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuOHMgZWFzZTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLnJldmVhbC5hY3RpdmUgewogICAgICAgICAgICBvcGFjaXR5OiAxOwogICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7CiAgICAgICAgfQogICAgPC9zdHlsZT4KPC9oZWFkPgo8Ym9keT4KICAgIDwhLS0gV2F0ZXJtYXJrIC0tPgogICAgPGRpdiBjbGFzcz0id2F0ZXJtYXJrIj48L2Rpdj4KICAgIAogICAgPCEtLSBCYWNrZ3JvdW5kIC0tPgogICAgPGRpdiBjbGFzcz0iZ2VvcGF0dGVybiI+PC9kaXY+CiAgICA8ZGl2IGNsYXNzPSJvcmIgb3JiMSI+PC9kaXY+CiAgICA8ZGl2IGNsYXNzPSJvcmIgb3JiMiI+PC9kaXY+CiAgICA8ZGl2IGNsYXNzPSJvcmIgb3JiMyI+PC9kaXY+CiAgICAKICAgIDwhLS0gTmF2aWdhdGlvbiAtLT4KICAgIDxuYXYgY2xhc3M9InNvdmVyZWlnbm5hdiI+CiAgICAgICAgPGEgaHJlZj0iaHR0cHM6Ly9keW5hbWljcGFyYWRpZ21zYWNhZGVteS5jb20vdWJ1bnR1aHViIiBjbGFzcz0ibmF2bG9nbyI+VEhFIFNPVkVSRUlHTiBBUkNISVRFQ1TihKI8L2E+CiAgICAgICAgCiAgICAgICAgPGRpdiBjbGFzcz0ibmF2Y2VudGVyIj4KICAgICAgICAgICAgPGEgaHJlZj0iaHR0cHM6Ly9keW5hbWljcGFyYWRpZ21zYWNhZGVteS5jb20vd2VlazMiIGNsYXNzPSJuYXZidG4iPgogICAgICAgICAgICAgICAgPHNwYW4+4oaQPC9zcGFuPgogICAgICAgICAgICAgICAgPHNwYW4+V2VlayAzPC9zcGFuPgogICAgICAgICAgICA8L2E+CiAgICAgICAgICAgIDxhIGhyZWY9Imh0dHBzOi8vZHluYW1pY3BhcmFkaWdtc2FjYWRlbXkuY29tL3VidW50dWh1YiIgY2xhc3M9Im5hdmJ0biBob21lYnRuIj4KICAgICAgICAgICAgICAgIDxzcGFuPuKXiDwvc3Bhbj4KICAgICAgICAgICAgICAgIDxzcGFuPkh1Yjwvc3Bhbj4KICAgICAgICAgICAgPC9hPgogICAgICAgICAgICA8YSBocmVmPSJodHRwczovL2R5bmFtaWNwYXJhZGlnbXNhY2FkZW15LmNvbS93ZWVrNSIgY2xhc3M9Im5hdmJ0biBkaXNhYmxlZCI+CiAgICAgICAgICAgICAgICA8c3Bhbj5XZWVrIDU8L3NwYW4+CiAgICAgICAgICAgICAgICA8c3Bhbj7ihpI8L3NwYW4+CiAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ibmF2cHJvZ3Jlc3MiPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJvZ3Jlc3Nkb3QgY29tcGxldGVkIj48L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InByb2dyZXNzZG90IGNvbXBsZXRlZCI+PC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcm9ncmVzc2RvdCBjb21wbGV0ZWQiPjwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJvZ3Jlc3Nkb3QgY3VycmVudCI+PC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcm9ncmVzc2RvdCB1cGNvbWluZyI+PC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcm9ncmVzc2RvdCB1cGNvbWluZyI+PC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcm9ncmVzc2RvdCB1cGNvbWluZyI+PC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcm9ncmVzc2RvdCB1cGNvbWluZyI+PC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgIAogICAgICAgIDxkaXYgY2xhc3M9Im5hdmJhZGdlIj5XZWVrIDQgb2YgODwvZGl2PgogICAgPC9uYXY+CiAgICAKICAgIDwhLS0gSGVybyBTZWN0aW9uIC0tPgogICAgPHNlY3Rpb24gY2xhc3M9Imhlcm8iPgogICAgICAgIDxkaXYgY2xhc3M9Imhlcm9iYWRnZSI+VWJ1bnR1IENvaG9ydCAoVEFTTikg4oCiIFdlZWsgNCBBc3NpZ25tZW50PC9kaXY+CiAgICAgICAgPGgxIGNsYXNzPSJoZXJvdGl0bGUiPgogICAgICAgICAgICA8c3Bhbj5XZWJpbmFyIEFyY2hpdGVjdHVyZTwvc3Bhbj4KICAgICAgICAgICAgJiBEZWxpdmVyeSBQcm9wb3NhbAogICAgICAgIDwvaDE+CiAgICAgICAgPHAgY2xhc3M9Imhlcm9zdWJ0aXRsZSI+UHJvZmVzc2lvbmFsIHdlYmluYXIgc29sdXRpb25zIGZvciBvcmdhbml6YXRpb25zIHNlZWtpbmcgcG9saXNoZWQsIGVuZ2FnaW5nLCBhbmQgZXZlcmdyZWVuIGVkdWNhdGlvbmFsIGV4cGVyaWVuY2VzPC9wPgogICAgPC9zZWN0aW9uPgogICAgCiAgICA8IS0tIFByb2JsZW0gU2VjdGlvbiAtLT4KICAgIDxzZWN0aW9uIGNsYXNzPSJwcm9ibGVtc2VjdGlvbiI+CiAgICAgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbmhlYWRlciByZXZlYWwiPgogICAgICAgICAgICAgICAgPHAgY2xhc3M9InNlY3Rpb25sYWJlbCI+VGhlIFByb2JsZW08L3A+CiAgICAgICAgICAgICAgICA8aDIgY2xhc3M9InNlY3Rpb250aXRsZSI+V2h5IE9yZ2FuaXphdGlvbnMgU3RydWdnbGUgd2l0aCBXZWJpbmFyczwvaDI+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAKICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJvYmxlbWNhcmQgcmV2ZWFsIj4KICAgICAgICAgICAgICAgIDxwPk1hbnkgcHJvZmVzc2lvbmFsIGdyb3VwcywgYnVzaW5lc3MgbmV0d29ya3MsIGNoYW1iZXJzLCBhbmQgY29hY2hpbmcgY29tbXVuaXRpZXMgd2FudCB0byBvZmZlciBoaWdoLXF1YWxpdHkgZWR1Y2F0aW9uYWwgd2ViaW5hcnMgdG8gdGhlaXIgbWVtYmVycy4gSG93ZXZlciwgbW9zdCBsYWNrIHRoZSB0ZWNobmljYWwgcHJvZHVjdGlvbiBza2lsbHMsIGluc3RydWN0aW9uYWwgZGVzaWduIGNhcGFiaWxpdHksIGFuZCBkaWdpdGFsIGluZnJhc3RydWN0dXJlIHJlcXVpcmVkIHRvIGRlbGl2ZXIgYSBwb2xpc2hlZCwgZW5nYWdpbmcsIGFuZCBldmVyZ3JlZW4gd2ViaW5hciBleHBlcmllbmNlLjwvcD4KICAgICAgICAgICAgICAgIDxwPlRoZXkgb2Z0ZW4gc3RydWdnbGUgdG8gb3JnYW5pemUgY29udGVudCwgZGVzaWduIGJyYW5kZWQgdmlzdWFscywgcmVjb3JkIGhpZ2gtcXVhbGl0eSB2aWRlb3MsIGNyZWF0ZSByZXBsYXkgZnVubmVscywgb3IgbWFuYWdlIHRoZSBmdWxsIGRlbGl2ZXJ5IHByb2Nlc3MuPC9wPgogICAgICAgICAgICAgICAgPHA+V2l0aG91dCB0aGVzZSBlbGVtZW50cywgd2ViaW5hcnMgdW5kZXJwZXJmb3JtLCByZWR1Y2UgZW5nYWdlbWVudCwgYW5kIGZhaWwgdG8gYWNoaWV2ZSB0aGUgaW50ZW5kZWQgZWR1Y2F0aW9uYWwgb3IgYnVzaW5lc3Mgb3V0Y29tZXMuPC9wPgogICAgICAgICAgICAgICAgPHA+SSBjcmVhdGVkIG15IHdlYmluYXIgYXJjaGl0ZWN0dXJlIHNvbHV0aW9ucyB0byBzb2x2ZSB0aGlzIHByb2JsZW0gd2l0aCBjbGFyaXR5LCBjb25zaXN0ZW5jeSwgYW5kIHByb2Zlc3Npb25hbGlzbS48L3A+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgPC9zZWN0aW9uPgogICAgCiAgICA8IS0tIFRpZXIgQ2FyZHMgU2VjdGlvbiAtLT4KICAgIDxzZWN0aW9uIGNsYXNzPSJ0aWVyc2VjdGlvbiI+CiAgICAgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbmhlYWRlciByZXZlYWwiPgogICAgICAgICAgICAgICAgPHAgY2xhc3M9InNlY3Rpb25sYWJlbCI+TXkgRml4PC9wPgogICAgICAgICAgICAgICAgPGgyIGNsYXNzPSJzZWN0aW9udGl0bGUiPlRocmVlIFNlcnZpY2UgVGllcnM8L2gyPgogICAgICAgICAgICAgICAgPHAgY2xhc3M9InNlY3Rpb25zdWJ0aXRsZSI+SGlnaC1xdWFsaXR5LCBmdWxseSBzdHJ1Y3R1cmVkIHdlYmluYXJzIHdpdGggY29udGVudCBhcmNoaXRlY3R1cmUsIGRpZ2l0YWwgZGVzaWduLCB0ZWNobmljYWwgcHJvZHVjdGlvbiwgYW5kIHJlcGxheSBtYW5hZ2VtZW50PC9wPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgCiAgICAgICAgICAgIDxkaXYgY2xhc3M9InRpZXJncmlkIj4KICAgICAgICAgICAgICAgIDwhLS0gVGllciBPbmUgLS0+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0aWVyY2FyZCByZXZlYWwiPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRpZXJoZWFkZXIiPgogICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0idGllcm51bWJlciI+VGllciBPbmU8L3A+CiAgICAgICAgICAgICAgICAgICAgICAgIDxoMyBjbGFzcz0idGllcnRpdGxlIj5Eb25lLUZvci1Zb3UgTGljZW5zaW5nPC9oMz4KICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9InRpZXJ0YWdsaW5lIj5NeSBFdmVyZ3JlZW4gV2ViaW5hcnMgKG5vIGNvbnRlbnQgbmVlZGVkKTwvcD4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0aWVyYm9keSI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJ0aWVyZGVzY3JpcHRpb24iPlRoZSBvcmdhbml6YXRpb24gbGljZW5zZXMgb25lIG9mIG15IHByb2Zlc3Npb25hbGx5IGRldmVsb3BlZCBldmVyZ3JlZW4gd2ViaW5hcnMgdG8gdXNlIHdpdGggdGhlaXIgZ3JvdXAuIFRoZXNlIHdlYmluYXJzIGFyZSBmdWxseSBwcm9kdWNlZCwgc3RydWN0dXJlZCwgYW5kIHJlYWR5IGZvciBpbW1lZGlhdGUgZGVsaXZlcnkuPC9wPgogICAgICAgICAgICAgICAgICAgICAgICA8dWwgY2xhc3M9InRpZXJpbmNsdWRlcyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+T25lIGNvbXBsZXRlIHdlYmluYXIgbW9kdWxlPC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5CcmFuZGVkIHNsaWRlIGRlY2s8L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPlJlY29yZGVkIG1haW4gc2Vzc2lvbjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+UHJlLWxhdW5jaCB2aWRlbzwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+UHJvbW90aW9uYWwgdmlkZW88L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPldhaXRpbmcgcm9vbSBsb29wIHZpZGVvPC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5SZXBsYXkgcGFnZSBhY2Nlc3MgZm9yIGRlZmluZWQgdGltZSB3aW5kb3c8L2xpPgogICAgICAgICAgICAgICAgICAgICAgICA8L3VsPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0aWVycHJpY2luZyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0icHJpY2VsYWJlbCI+U3RhcnRpbmcgQXQ8L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0icHJpY2VhbW91bnQiPiQyOTcgLSAkNDk3PC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9InByaWNlcmVnaW9uIj5BZnJpY2EgLyBVU0E8L3A+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIDwhLS0gVGllciBUd28gLS0+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0aWVyY2FyZCByZXZlYWwiPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRpZXJoZWFkZXIiPgogICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0idGllcm51bWJlciI+VGllciBUd288L3A+CiAgICAgICAgICAgICAgICAgICAgICAgIDxoMyBjbGFzcz0idGllcnRpdGxlIj5DbGllbnQgQ29udGVudCBQcm9kdWN0aW9uPC9oMz4KICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9InRpZXJ0YWdsaW5lIj5Zb3VyIGNvbnRlbnQsIG15IHByb2R1Y3Rpb24gZXhwZXJ0aXNlPC9wPgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRpZXJib2R5Ij4KICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9InRpZXJkZXNjcmlwdGlvbiI+VGhlIG9yZ2FuaXphdGlvbiBwcm92aWRlcyB0aGUgY29udGVudCBvdXRsaW5lLCBrZXkgbWVzc2FnZXMsIG9yIHRyYWluaW5nIG1hdGVyaWFsLiBJIHRyYW5zZm9ybSB0aGVpciBtYXRlcmlhbCBpbnRvIGEgcG9saXNoZWQsIHN0cnVjdHVyZWQgd2ViaW5hciBleHBlcmllbmNlIHdpdGggYWxsIHZpc3VhbHMsIHByb2R1Y3Rpb24gZWxlbWVudHMsIGFuZCBkZWxpdmVyeSBhc3NldHMuPC9wPgogICAgICAgICAgICAgICAgICAgICAgICA8dWwgY2xhc3M9InRpZXJpbmNsdWRlcyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+RnVsbCB3ZWJpbmFyIHN0cnVjdHVyZTwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+U2xpZGUgZGVjayBkZXNpZ248L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPk9uZSBtYWluIHRlYWNoaW5nIHZpZGVvPC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5PbmUgcHJvbW8gdmlkZW88L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPk9uZSB3YWl0aW5nIHJvb20gdmlkZW88L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPlJlcGxheSBmb3JtYXR0aW5nPC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5UZWNobmljYWwgc2V0dXA8L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPkJyYW5kaW5nIGFsaWdubWVudDwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRpZXJwcmljaW5nIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJwcmljZWxhYmVsIj5TdGFydGluZyBBdDwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJwcmljZWFtb3VudCI+JDQ5NyAtICQ3OTc8L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0icHJpY2VyZWdpb24iPkFmcmljYSAvIFVTQTwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgPCEtLSBUaWVyIFRocmVlIC0tPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idGllcmNhcmQgcmV2ZWFsIj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0aWVyaGVhZGVyIj4KICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9InRpZXJudW1iZXIiPlRpZXIgVGhyZWU8L3A+CiAgICAgICAgICAgICAgICAgICAgICAgIDxoMyBjbGFzcz0idGllcnRpdGxlIj5GdWxsIEFyY2hpdGVjdHVyZSAmIERlbGl2ZXJ5PC9oMz4KICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9InRpZXJ0YWdsaW5lIj5Db25jZXB0IHRocm91Z2ggSG9zdGluZzwvcD4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0aWVyYm9keSI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJ0aWVyZGVzY3JpcHRpb24iPkkgZGVzaWduIHRoZSBlbnRpcmUgd2ViaW5hciBmcm9tIHNjcmF0Y2guIEkgY3JlYXRlIHRoZSB0b3BpYywgb3V0bGluZSwgY29udGVudCBzdHJ1Y3R1cmUsIHRlYWNoaW5nIG5hcnJhdGl2ZSwgdmlzdWFscywgYW5kIGFsbCBwcm9kdWN0aW9uIGFzc2V0cy4gSSBhbHNvIGhvc3QgdGhlIHdlYmluYXIgaWYgZGVzaXJlZCBhbmQgbWFuYWdlIHRoZSByZXBsYXkgZnVubmVsLjwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJ0aWVyaW5jbHVkZXMiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPkNvbmNlcHQgY3JlYXRpb248L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPkNvbnRlbnQgYXJjaGl0ZWN0dXJlPC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5CcmFuZC1hbGlnbmVkIHNsaWRlIGRlc2lnbjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+VGhyZWUgdmlkZW8gYXNzZXRzIChtYWluLCBwcm9tbywgd2FpdGluZyByb29tKTwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+UmVwbGF5IGZ1bm5lbDwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+RXZlbnQgaG9zdGluZyBvciBmYWNpbGl0YXRpb248L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPkVuZ2FnZW1lbnQgZGVzaWduPC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgPC91bD4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idGllcnByaWNpbmciPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9InByaWNlbGFiZWwiPlN0YXJ0aW5nIEF0PC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9InByaWNlYW1vdW50Ij4kNzk3IC0gJDk5Nys8L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0icHJpY2VyZWdpb24iPkFmcmljYSAvIFVTQTwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICA8L3NlY3Rpb24+CiAgICAKICAgIDwhLS0gUHJpY2luZyBTZWN0aW9uIC0tPgogICAgPHNlY3Rpb24gY2xhc3M9InByaWNpbmdzZWN0aW9uIj4KICAgICAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uaGVhZGVyIHJldmVhbCI+CiAgICAgICAgICAgICAgICA8cCBjbGFzcz0ic2VjdGlvbmxhYmVsIj5SZWdpb25hbCBQcmljaW5nPC9wPgogICAgICAgICAgICAgICAgPGgyIGNsYXNzPSJzZWN0aW9udGl0bGUiPk9wdGltaXplZCBmb3IgR2xvYmFsIFJlYWNoPC9oMj4KICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJzZWN0aW9uc3VidGl0bGUiPlJlZ2lvbmFsIHByaWNpbmcgcmVmbGVjdHMgbG9jYWwgZWNvbm9taWNzIHdoaWxlIG1haW50YWluaW5nIHRoZSBzYW1lIHByb2R1Y3Rpb24gcXVhbGl0eTwvcD4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIAogICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcmljaW5ndGFibGUgcmV2ZWFsIj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InByaWNpbmdjb2x1bW4iPgogICAgICAgICAgICAgICAgICAgIDxoMz7wn4e68J+HuCBVbml0ZWQgU3RhdGVzPC9oMz4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcmljaW5naXRlbSI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJwcmljaW5ndGllcmxhYmVsIj5UaWVyIE9uZTwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9InByaWNpbmdwcmljZSI+JDQ5NzwvcD4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcmljaW5naXRlbSI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJwcmljaW5ndGllcmxhYmVsIj5UaWVyIFR3bzwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9InByaWNpbmdwcmljZSI+JDc5NzwvcD4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcmljaW5naXRlbSI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJwcmljaW5ndGllcmxhYmVsIj5UaWVyIFRocmVlPC9wPgogICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0icHJpY2luZ3ByaWNlIj4kOTk3KzwvcD4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcmljaW5nY29sdW1uIj4KICAgICAgICAgICAgICAgICAgICA8aDM+8J+MjSBBZnJpY2E8L2gzPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InByaWNpbmdpdGVtIj4KICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9InByaWNpbmd0aWVybGFiZWwiPlRpZXIgT25lPC9wPgogICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0icHJpY2luZ3ByaWNlIj4kMjk3PC9wPgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InByaWNpbmdpdGVtIj4KICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9InByaWNpbmd0aWVybGFiZWwiPlRpZXIgVHdvPC9wPgogICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0icHJpY2luZ3ByaWNlIj4kNDk3PC9wPgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InByaWNpbmdpdGVtIj4KICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9InByaWNpbmd0aWVybGFiZWwiPlRpZXIgVGhyZWU8L3A+CiAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJwcmljaW5ncHJpY2UiPiQ3OTcrPC9wPgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgPC9zZWN0aW9uPgogICAgCiAgICA8IS0tIFByb29mIFNlY3Rpb24gLS0+CiAgICA8c2VjdGlvbiBjbGFzcz0icHJvb2ZzZWN0aW9uIj4KICAgICAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uaGVhZGVyIHJldmVhbCI+CiAgICAgICAgICAgICAgICA8cCBjbGFzcz0ic2VjdGlvbmxhYmVsIj5Qcm9vZiBvZiBDYXBhYmlsaXR5PC9wPgogICAgICAgICAgICAgICAgPGgyIGNsYXNzPSJzZWN0aW9udGl0bGUiPkxpdmUgV2ViaW5hciBFeGFtcGxlczwvaDI+CiAgICAgICAgICAgICAgICA8cCBjbGFzcz0ic2VjdGlvbnN1YnRpdGxlIj5Ud28gd2ViaW5hciBleGFtcGxlcyBkZW1vbnN0cmF0aW5nIHRoZSByYW5nZSBvZiBteSB3b3JrPC9wPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgCiAgICAgICAgICAgIDxkaXYgY2xhc3M9InByb29mZ3JpZCI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcm9vZmNhcmQgcmV2ZWFsIj4KICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0icHJvb2ZiYWRnZSI+Q2xpZW50IFdlYmluYXI8L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgPGg0PlRoZSBCcmFuZCBDb2FjaCBOZXR3b3JrPC9oND4KICAgICAgICAgICAgICAgICAgICA8cD5JIGNyZWF0ZWQgYW5kIGRlbGl2ZXJlZCBhIGxpdmUgd2ViaW5hciBmb3IgVGhlIEJyYW5kIENvYWNoIE5ldHdvcmsgdXNpbmcgbXkgcHJvcHJpZXRhcnkgbWV0aG9kIGFuZCBjb250ZW50IGZvciBwZXJzb25hbCBicmFuZGluZy4gVGhpcyBkZW1vbnN0cmF0ZXMgbXkgYWJpbGl0eSB0byB3b3JrIHdpdGggY2xpZW50LXBhcnRuZXJzaGlwIG1hdGVyaWFscyBhbmQgcHJvZHVjZSBhIGNvaGVzaXZlLCBwcm9mZXNzaW9uYWwsIGhpZ2gtdmFsdWUgZXhwZXJpZW5jZS48L3A+CiAgICAgICAgICAgICAgICAgICAgPHA+PGVtPlRoaXMgcmVwbGF5IGlzIHRpbWUtbGltaXRlZCBiZWNhdXNlIGl0IGlzIHBhcnQgb2YgYSBjbGllbnQgZGVsaXZlcnkgYW5kIG11c3QgcmVtYWluIHByb3RlY3RlZC48L2VtPjwvcD4KICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSJodHRwczovL2R5bmFtaWNwYXJhZGlnbXNhY2FkZW15LmNvbS9icmFuZGNvYWNoLXNpbWJhLW1ldGhvZC1yZXBsYXkiIGNsYXNzPSJwcm9vZmxpbmsiPlZpZXcgUmVwbGF5IOKGkjwvYT4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcm9vZmNhcmQgcmV2ZWFsIj4KICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0icHJvb2ZiYWRnZSI+RXZlcmdyZWVuIFdlYmluYXI8L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgPGg0PlRoZSBJbnZpbmNpYmxlIE1pbmRzZXQgTW9kdWxlPC9oND4KICAgICAgICAgICAgICAgICAgICA8cD5UaGlzIGlzIG9uZSBvZiBteSBmdWxseSBzZWxmLXByb2R1Y2VkIGV2ZXJncmVlbiB3ZWJpbmFycyBkZW1vbnN0cmF0aW5nIGVuZC10by1lbmQgY2FwYWJpbGl0eSBpbmNsdWRpbmcgc3RydWN0dXJlLCBkZXNpZ24sIG1lc3NhZ2luZywgdmlzdWFsIHByb2R1Y3Rpb24sIGFuZCByZXBsYXkgZm9ybWF0LiBJdCBpcyBhbiBleGFtcGxlIG9mIHdoYXQgb3JnYW5pemF0aW9ucyByZWNlaXZlIHdoZW4gbGljZW5zaW5nIG15IGV4aXN0aW5nIHdlYmluYXJzLjwvcD4KICAgICAgICAgICAgICAgICAgICA8cD48ZW0+R2F0ZWQgdG8gbWFpbnRhaW4gY29udGVudCBwcm90ZWN0aW9uIGJ1dCBhdmFpbGFibGUgZm9yIGFzc2lnbm1lbnQgcmV2aWV3LjwvZW0+PC9wPgogICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Imh0dHBzOi8vc2hlZWJvc3Nzb2x1dGlvbmlzdC5jb20vaW52aW5jaWJsZS1taW5kc2V0LW1vZHVsZSIgY2xhc3M9InByb29mbGluayI+QWNjZXNzIE1vZHVsZSDihpI8L2E+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICA8L3NlY3Rpb24+CiAgICAKICAgIDwhLS0gQWRkZW5kdW0gU2VjdGlvbiAtLT4KICAgIDxzZWN0aW9uIGNsYXNzPSJhZGRlbmR1bXNlY3Rpb24iPgogICAgICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImFkZGVuZHVtY2FyZCByZXZlYWwiPgogICAgICAgICAgICAgICAgPGgzPvCfk4sgQWRkZW5kdW08L2gzPgogICAgICAgICAgICAgICAgPHA+SSBjb21wbGV0ZWQgdGhpcyBhc3NpZ25tZW50IGluIGFsaWdubWVudCB3aXRoIHRoZSByZXF1aXJlZCBzdHJ1Y3R1cmUsIGJ1dCBJIHVzZSBteSBvd24gcHJvcG9zYWwgZnJhbWV3b3JrIGJlY2F1c2UgSSBvcGVyYXRlIGFzIGEgc3RyYXRlZ2lzdCBhbmQgd2ViaW5hciBhcmNoaXRlY3QuIFRoaXMgcmVmbGVjdHMgdGhlIHdheSBJIGRlbGl2ZXIgc2VydmljZXMgaW4gcmVhbCBwcm9mZXNzaW9uYWwgc2V0dGluZ3MuPC9wPgogICAgICAgICAgICAgICAgPHA+SSBjYW5ub3QgaW5jbHVkZSBwcm9wcmlldGFyeSBhc3NldHMsIGludGVybmFsIGRvY3VtZW50cywgb3IgbWF0ZXJpYWxzIGZyb20gbXkgY29tcGFueSBvciBmcm9tIHBsYXRmb3JtcyBJIGxpY2Vuc2UuIFRoZXNlIG1hdGVyaWFscyBhcmUgPHN0cm9uZz5jb25maWRlbnRpYWwgYW5kIHByb3RlY3RlZCB1bmRlciB1c2FnZSByaWdodHM8L3N0cm9uZz4uIEkgdGhlcmVmb3JlIHByb3ZpZGVkIGRlc2NyaXB0aXZlIHByb29mIGFuZCBnYXRlZCB3ZWJpbmFyIGV4YW1wbGVzIGluc3RlYWQgb2YgcmVzdHJpY3RlZCBtYXRlcmlhbHMuPC9wPgogICAgICAgICAgICAgICAgPHA+QWxsIHdlYmluYXIgY29udGVudCwgc3RydWN0dXJlcywgdmlkZW8gYXNzZXRzLCBmcmFtZXdvcmtzLCBhbmQgcHJvcG9zYWwgZWxlbWVudHMgd2l0aGluIHRoaXMgc3VibWlzc2lvbiByZW1haW4gbXkgPHN0cm9uZz5pbnRlbGxlY3R1YWwgcHJvcGVydHk8L3N0cm9uZz4uIFRoZXkgbWF5IG5vdCBiZSBjb3BpZWQsIGFkYXB0ZWQsIHJlcHVycG9zZWQsIG9yIHVzZWQgd2l0aG91dCBteSB3cml0dGVuIHBlcm1pc3Npb24uIEFueSB1c2FnZSByaWdodHMgZm9yIGNsaWVudHMgYXJlIGFsd2F5cyBkZWZpbmVkIGJ5IG1lIHdpdGhpbiBmb3JtYWwgYWdyZWVtZW50cy48L3A+CiAgICAgICAgICAgICAgICA8cD5UaGlzIGFkZGVuZHVtIHByb3RlY3RzIHRoZSBpbnRlZ3JpdHkgb2YgbXkgd29yayB3aGlsZSBzdGlsbCBjb21wbGV0aW5nIHRoZSBhc3NpZ25tZW50IGZ1bGx5IGFuZCBhY2N1cmF0ZWx5LjwvcD4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICA8L3NlY3Rpb24+CiAgICAKICAgIDwhLS0gQm90dG9tIE5hdmlnYXRpb24gLS0+CiAgICA8bmF2IGNsYXNzPSJwYWdlbmF2Ij4KICAgICAgICA8YSBocmVmPSJodHRwczovL2R5bmFtaWNwYXJhZGlnbXNhY2FkZW15LmNvbS93ZWVrMyIgY2xhc3M9InBhZ2VuYXZjYXJkIj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9InBhZ2VuYXZhcnJvdyI+4oaQPC9zcGFuPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJwYWdlbmF2aW5mbyI+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0icGFnZW5hdmxhYmVsIj5QcmV2aW91czwvc3Bhbj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJwYWdlbmF2dGl0bGUiPldlZWsgMzogVmlzaWJpbGl0eTwvc3Bhbj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9hPgogICAgICAgIAogICAgICAgIDxhIGhyZWY9Imh0dHBzOi8vZHluYW1pY3BhcmFkaWdtc2FjYWRlbXkuY29tL3VidW50dWh1YiIgY2xhc3M9InBhZ2VuYXZob21lIj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9InBhZ2VuYXZhcnJvdyI+4peIPC9zcGFuPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0icGFnZW5hdmxhYmVsIj5SZXR1cm4gdG8gSHViPC9zcGFuPgogICAgICAgIDwvYT4KICAgICAgICAKICAgICAgICA8YSBocmVmPSJodHRwczovL2R5bmFtaWNwYXJhZGlnbXNhY2FkZW15LmNvbS93ZWVrNSIgY2xhc3M9InBhZ2VuYXZjYXJkIGRpc2FibGVkIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0icGFnZW5hdmluZm8iIHN0eWxlPSJ0ZXh0LWFsaWduOiByaWdodDsiPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InBhZ2VuYXZsYWJlbCI+TmV4dDwvc3Bhbj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJwYWdlbmF2dGl0bGUiPldlZWsgNTogRGlnaXRhbCBMYW5kPC9zcGFuPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9InBhZ2VuYXZhcnJvdyI+4oaSPC9zcGFuPgogICAgICAgIDwvYT4KICAgIDwvbmF2PgogICAgCiAgICA8IS0tIEZvb3RlciAtLT4KICAgIDxmb290ZXIgY2xhc3M9ImZvb3RlcnNlY3Rpb24iPgogICAgICAgIDxkaXYgY2xhc3M9ImZvb3RlcmxvZ28iPlRIRSBTT1ZFUkVJR04gQVJDSElURUNU4oSiPC9kaXY+CiAgICAgICAgPHAgY2xhc3M9ImZvb3RlcnRhZ2xpbmUiPldoZXJlIElkZW50aXR5IE1lZXRzIERpZ2l0YWwgUG93ZXI8L3A+CiAgICAgICAgPGRpdiBjbGFzcz0iZm9vdGVyZGl2aWRlciI+PC9kaXY+CiAgICAgICAgCiAgICAgICAgPHAgY2xhc3M9ImZvb3RlcmNvcHlyaWdodCI+CiAgICAgICAgICAgIMKpIDIwMjQgPHN0cm9uZz5EeW5hbWljIFBhcmFkaWdtcyAmIE1lbnRvcnNoaXAgU3VjY2VzcyBBY2FkZW1pZXPihKI8L3N0cm9uZz48YnI+CiAgICAgICAgICAgIFRoZSBTb3ZlcmVpZ24gQXJjaGl0ZWN0IEZyYW1ld29ya+KEoiBpcyBwcm9wcmlldGFyeSBpbnRlbGxlY3R1YWwgcHJvcGVydHkuPGJyPgogICAgICAgICAgICBBbGwgcmlnaHRzIHJlc2VydmVkLiBVbmF1dGhvcml6ZWQgcmVwcm9kdWN0aW9uIHByb2hpYml0ZWQuCiAgICAgICAgPC9wPgogICAgICAgIAogICAgICAgIDxkaXYgY2xhc3M9InNoYXJlY3Rhc2VjdGlvbiI+CiAgICAgICAgICAgIDxoMyBjbGFzcz0ic2hhcmVjdGFoZWFkbGluZSI+S25vdyBzb21lb25lIHdobyB3b3VsZCBiZW5lZml0IGZyb20gdGhpcz88L2gzPgogICAgICAgICAgICA8cCBjbGFzcz0ic2hhcmVjdGFzdWJ0ZXh0Ij5TaGFyZSB0aGlzIHJlc291cmNlIHdpdGggYSBjb2xsZWFndWUgb3IgZnJpZW5kPC9wPgogICAgICAgICAgICAKICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2hhcmVidG5ncm91cCI+CiAgICAgICAgICAgICAgICA8YSBocmVmPSIjIiBjbGFzcz0ic2hhcmVidG4gd2hhdHNhcHAiIGlkPSJzaGFyZVdoYXRzQXBwIj4KICAgICAgICAgICAgICAgICAgICA8c3Bhbj7wn5KsPC9zcGFuPgogICAgICAgICAgICAgICAgICAgIDxzcGFuPlNoYXJlIHZpYSBXaGF0c0FwcDwvc3Bhbj4KICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgICAgIDxhIGhyZWY9IiMiIGNsYXNzPSJzaGFyZWJ0biBsaW5rZWRpbiIgaWQ9InNoYXJlTGlua2VkSW4iPgogICAgICAgICAgICAgICAgICAgIDxzcGFuPvCfkrw8L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgPHNwYW4+U2hhcmUgb24gTGlua2VkSW48L3NwYW4+CiAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJzaGFyZWJ0biBjb3B5IiBpZD0ic2hhcmVDb3B5Ij4KICAgICAgICAgICAgICAgICAgICA8c3Bhbj7wn5OLPC9zcGFuPgogICAgICAgICAgICAgICAgICAgIDxzcGFuPkNvcHkgTGluazwvc3Bhbj4KICAgICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgICAKICAgICAgICA8cCBjbGFzcz0iZm9vdGVyaW5mbyI+CiAgICAgICAgICAgIFVidW50dSBDb2hvcnQgKFRBU04pIFdlZWsgNCBIb21ld29yayBBc3NpZ25tZW50PGJyPgogICAgICAgICAgICBQcmVwYXJlZCBieSA8c3Ryb25nPk5pZ2h0aW5nYWxlIE11a2FzYSB8IER5bmFtaWMgUGFyYWRpZ21zICYgTWVudG9yc2hpcCBTdWNjZXNzIEFjYWRlbWllczwvc3Ryb25nPjxicj4KICAgICAgICAgICAgQ01PIOKAoiBCcmFuZCAmIE1lZGlhIFN0cmF0ZWdpc3Qg4oCiIERpZ2l0YWwgRWNvc3lzdGVtIEFyY2hpdGVjdAogICAgICAgIDwvcD4KICAgIDwvZm9vdGVyPgogICAgCiAgICA8c2NyaXB0PgogICAgICAgIC8vIElQIFByb3RlY3Rpb24KICAgICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdjb250ZXh0bWVudScsIGUgPT4geyBlLnByZXZlbnREZWZhdWx0KCk7IHJldHVybiBmYWxzZTsgfSk7CiAgICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigna2V5ZG93bicsIGZ1bmN0aW9uKGUpIHsKICAgICAgICAgICAgaWYgKChlLmN0cmxLZXkgJiYgWydjJywnQycsJ3YnLCdWJywncycsJ1MnLCdwJywnUCcsJ3UnLCdVJ10uaW5jbHVkZXMoZS5rZXkpKSB8fAogICAgICAgICAgICAgICAgKGUuY3RybEtleSAmJiBlLnNoaWZ0S2V5ICYmIFsnaScsJ0knLCdqJywnSiddLmluY2x1ZGVzKGUua2V5KSkgfHwgZS5rZXkgPT09ICdGMTInKSB7CiAgICAgICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7CiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgIH0KICAgICAgICB9KTsKICAgICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdkcmFnc3RhcnQnLCBlID0+IHsgZS5wcmV2ZW50RGVmYXVsdCgpOyByZXR1cm4gZmFsc2U7IH0pOwogICAgICAgIAogICAgICAgIC8vIFNoYXJlIENvbmZpZ3VyYXRpb24KICAgICAgICBjb25zdCBTSEFSRV9DT05GSUcgPSB7CiAgICAgICAgICAgIHNoYXJlVXJsOiAnaHR0cHM6Ly9keW5hbWljcGFyYWRpZ21zYWNhZGVteS5jb20vJywKICAgICAgICAgICAgd2hhdHNhcHBNZXNzYWdlOiAiSSBqdXN0IGRpc2NvdmVyZWQgdGhpcyBhbWF6aW5nIGJ1c2luZXNzIGZyYW1ld29yayBieSBOaWdodGluZ2FsZSBNdWthc2EgYXQgRHluYW1pYyBQYXJhZGlnbXMgQWNhZGVteS4gQ2hlY2sgaXQgb3V0OiAiCiAgICAgICAgfTsKICAgICAgICAKICAgICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIGNvbnN0IHdoYXRzYXBwQnRuID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3NoYXJlV2hhdHNBcHAnKTsKICAgICAgICAgICAgaWYgKHdoYXRzYXBwQnRuKSB7CiAgICAgICAgICAgICAgICB3aGF0c2FwcEJ0bi5ocmVmID0gYGh0dHBzOi8vd2EubWUvP3RleHQ9JHtlbmNvZGVVUklDb21wb25lbnQoU0hBUkVfQ09ORklHLndoYXRzYXBwTWVzc2FnZSArIFNIQVJFX0NPTkZJRy5zaGFyZVVybCl9YDsKICAgICAgICAgICAgICAgIHdoYXRzYXBwQnRuLnRhcmdldCA9ICdfYmxhbmsnOwogICAgICAgICAgICB9CiAgICAgICAgICAgIAogICAgICAgICAgICBjb25zdCBsaW5rZWRpbkJ0biA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzaGFyZUxpbmtlZEluJyk7CiAgICAgICAgICAgIGlmIChsaW5rZWRpbkJ0bikgewogICAgICAgICAgICAgICAgbGlua2VkaW5CdG4uaHJlZiA9IGBodHRwczovL3d3dy5saW5rZWRpbi5jb20vc2hhcmluZy9zaGFyZS1vZmZzaXRlLz91cmw9JHtlbmNvZGVVUklDb21wb25lbnQoU0hBUkVfQ09ORklHLnNoYXJlVXJsKX1gOwogICAgICAgICAgICAgICAgbGlua2VkaW5CdG4udGFyZ2V0ID0gJ19ibGFuayc7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgCiAgICAgICAgICAgIGNvbnN0IGNvcHlCdG4gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc2hhcmVDb3B5Jyk7CiAgICAgICAgICAgIGlmIChjb3B5QnRuKSB7CiAgICAgICAgICAgICAgICBjb3B5QnRuLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgICAgICAgbmF2aWdhdG9yLmNsaXBib2FyZC53cml0ZVRleHQoU0hBUkVfQ09ORklHLnNoYXJlVXJsKS50aGVuKGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBvcmlnaW5hbFRleHQgPSBjb3B5QnRuLmlubmVySFRNTDsKICAgICAgICAgICAgICAgICAgICAgICAgY29weUJ0bi5pbm5lckhUTUwgPSAnPHNwYW4+4pyTPC9zcGFuPjxzcGFuPkxpbmsgQ29waWVkITwvc3Bhbj4nOwogICAgICAgICAgICAgICAgICAgICAgICBjb3B5QnRuLnN0eWxlLmJhY2tncm91bmQgPSAncmdiYSgzOCwgMTY2LCAxNTQsIDAuMiknOwogICAgICAgICAgICAgICAgICAgICAgICBjb3B5QnRuLnN0eWxlLmNvbG9yID0gJyMyNkE2OUEnOwogICAgICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgY29weUJ0bi5pbm5lckhUTUwgPSBvcmlnaW5hbFRleHQ7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb3B5QnRuLnN0eWxlLmJhY2tncm91bmQgPSAnJzsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvcHlCdG4uc3R5bGUuY29sb3IgPSAnJzsKICAgICAgICAgICAgICAgICAgICAgICAgfSwgMjAwMCk7CiAgICAgICAgICAgICAgICAgICAgfSkuY2F0Y2goZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGFsZXJ0KCdMaW5rOiAnICsgU0hBUkVfQ09ORklHLnNoYXJlVXJsKTsKICAgICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICB9CiAgICAgICAgfSk7CiAgICAgICAgCiAgICAgICAgLy8gU2Nyb2xsIEFuaW1hdGlvbnMKICAgICAgICBmdW5jdGlvbiByZXZlYWwoKSB7CiAgICAgICAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy5yZXZlYWwnKS5mb3JFYWNoKGVsZW1lbnQgPT4gewogICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkudG9wIDwgd2luZG93LmlubmVySGVpZ2h0IC0gMTUwKSB7CiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5jbGFzc0xpc3QuYWRkKCdhY3RpdmUnKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSk7CiAgICAgICAgfQogICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdzY3JvbGwnLCByZXZlYWwpOwogICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgcmV2ZWFsKTsKICAgIDwvc2NyaXB0Pgo8L2JvZHk+CjwvaHRtbD4=","embed":""}
Week 4: Webinar Architecture & Delivery Proposal | Ubuntu Cohort | Nightingale Mukasa
THE SOVEREIGN ARCHITECT™
← Week 3 ◈ Hub Week 5 →
Week 4 of 8
Ubuntu Cohort (TASN) • Week 4 Assignment

Webinar Architecture & Delivery Proposal

Professional webinar solutions for organizations seeking polished, engaging, and evergreen educational experiences

The Problem

Why Organizations Struggle with Webinars

Many professional groups, business networks, chambers, and coaching communities want to offer high-quality educational webinars to their members. However, most lack the technical production skills, instructional design capability, and digital infrastructure required to deliver a polished, engaging, and evergreen webinar experience.

They often struggle to organize content, design branded visuals, record high-quality videos, create replay funnels, or manage the full delivery process.

Without these elements, webinars underperform, reduce engagement, and fail to achieve the intended educational or business outcomes.

I created my webinar architecture solutions to solve this problem with clarity, consistency, and professionalism.

My Fix

Three Service Tiers

High-quality, fully structured webinars with content architecture, digital design, technical production, and replay management

Tier One

Done-For-You Licensing

My Evergreen Webinars (no content needed)

The organization licenses one of my professionally developed evergreen webinars to use with their group. These webinars are fully produced, structured, and ready for immediate delivery.

  • One complete webinar module
  • Branded slide deck
  • Recorded main session
  • Pre-launch video
  • Promotional video
  • Waiting room loop video
  • Replay page access for defined time window

Starting At

$297 - $497

Africa / USA

Tier Two

Client Content Production

Your content, my production expertise

The organization provides the content outline, key messages, or training material. I transform their material into a polished, structured webinar experience with all visuals, production elements, and delivery assets.

  • Full webinar structure
  • Slide deck design
  • One main teaching video
  • One promo video
  • One waiting room video
  • Replay formatting
  • Technical setup
  • Branding alignment

Starting At

$497 - $797

Africa / USA

Tier Three

Full Architecture & Delivery

Concept through Hosting

I design the entire webinar from scratch. I create the topic, outline, content structure, teaching narrative, visuals, and all production assets. I also host the webinar if desired and manage the replay funnel.

  • Concept creation
  • Content architecture
  • Brand-aligned slide design
  • Three video assets (main, promo, waiting room)
  • Replay funnel
  • Event hosting or facilitation
  • Engagement design

Starting At

$797 - $997+

Africa / USA

Regional Pricing

Optimized for Global Reach

Regional pricing reflects local economics while maintaining the same production quality

🇺🇸 United States

Tier One

$497

Tier Two

$797

Tier Three

$997+

🌍 Africa

Tier One

$297

Tier Two

$497

Tier Three

$797+

Proof of Capability

Live Webinar Examples

Two webinar examples demonstrating the range of my work

Client Webinar

The Brand Coach Network

I created and delivered a live webinar for The Brand Coach Network using my proprietary method and content for personal branding. This demonstrates my ability to work with client-partnership materials and produce a cohesive, professional, high-value experience.

This replay is time-limited because it is part of a client delivery and must remain protected.

View Replay →
Evergreen Webinar

The Invincible Mindset Module

This is one of my fully self-produced evergreen webinars demonstrating end-to-end capability including structure, design, messaging, visual production, and replay format. It is an example of what organizations receive when licensing my existing webinars.

Gated to maintain content protection but available for assignment review.

Access Module →

📋 Addendum

I completed this assignment in alignment with the required structure, but I use my own proposal framework because I operate as a strategist and webinar architect. This reflects the way I deliver services in real professional settings.

I cannot include proprietary assets, internal documents, or materials from my company or from platforms I license. These materials are confidential and protected under usage rights. I therefore provided descriptive proof and gated webinar examples instead of restricted materials.

All webinar content, structures, video assets, frameworks, and proposal elements within this submission remain my intellectual property. They may not be copied, adapted, repurposed, or used without my written permission. Any usage rights for clients are always defined by me within formal agreements.

This addendum protects the integrity of my work while still completing the assignment fully and accurately.

←
Previous Week 3: Visibility
◈ Return to Hub
Next Week 5: Digital Land
→
THE SOVEREIGN ARCHITECT™

Where Identity Meets Digital Power

© 2024 Dynamic Paradigms & Mentorship Success Academies™
The Sovereign Architect Framework™ is proprietary intellectual property.
All rights reserved. Unauthorized reproduction prohibited.

Know someone who would benefit from this?

Share this resource with a colleague or friend

💬 Share via WhatsApp 💼 Share on LinkedIn

Ubuntu Cohort (TASN) Week 4 Homework Assignment
Prepared by Nightingale Mukasa | Dynamic Paradigms & Mentorship Success Academies
CMO • Brand & Media Strategist • Digital Ecosystem Architect

Image Gallery Grid
T
Please Check Your Email
We Will Be Following Up Shortly
*
*
*

warning