1752026097 waR3U4bTeM%3A42a48311cf32334ea05131c0ca437ee6-a5a1ca93b6e3b2a84457e7d59fba0de3 s:154372:"TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlIjoxNDp7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6NDM6IlRlc3QgY2xhc3MgZm9yIGhvbGRzLXJlbGF0ZWQgZnVuY3Rpb25hbGl0eS4iO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6Njc2OiJQSFAgdmVyc2lvbiA4CgpDb3B5cmlnaHQgKEMpIFZpbGxhbm92YSBVbml2ZXJzaXR5IDIwMjEuCgpUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQppdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMiwKYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24uCgpUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQpHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgoKWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAgMDIxMTAtMTMwMSAgVVNBIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6NTp7aTowO086NDY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXEdlbmVyaWMiOjI6e3M6NzoiACoAbmFtZSI7czo4OiJjYXRlZ29yeSI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6NjoiVnVGaW5kIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19aToxO086NDY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXEdlbmVyaWMiOjI6e3M6NzoiACoAbmFtZSI7czo3OiJwYWNrYWdlIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czo1OiJUZXN0cyI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fWk6MjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xBdXRob3IiOjQ6e3M6NzoiACoAbmFtZSI7czo2OiJhdXRob3IiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtOO3M6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xBdXRob3IAYXV0aG9yTmFtZSI7czoxMToiRGVtaWFuIEthdHoiO3M6NTg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xBdXRob3IAYXV0aG9yRW1haWwiO3M6MjU6ImRlbWlhbi5rYXR6QHZpbGxhbm92YS5lZHUiO31pOjM7Tzo0NjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcR2VuZXJpYyI6Mjp7czo3OiIAKgBuYW1lIjtzOjc6ImxpY2Vuc2UiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjY5OiJodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvZ3BsLTIuMC5waHAgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX1pOjQ7Tzo0MzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcTGluayI6Mzp7czo3OiIAKgBuYW1lIjtzOjQ6ImxpbmsiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjk6Ik1haW4gUGFnZSI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXExpbmsAbGluayI7czoxODoiaHR0cHM6Ly92dWZpbmQub3JnIjt9fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbnRleHQiOjI6e3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29udGV4dABuYW1lc3BhY2UiO3M6MDoiIjtzOjU2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbnRleHQAbmFtZXNwYWNlQWxpYXNlcyI7YTowOnt9fXM6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBoYXNoIjtzOjMyOiJhNWExY2E5M2I2ZTNiMmE4NDQ1N2U3ZDU5ZmJhMGRlMyI7czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBuYW1lIjtzOjEzOiJIb2xkc1Rlc3QucGhwIjtzOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAHBhdGgiO3M6NjQ6IlZ1RmluZC90ZXN0cy9pbnRlZ3JhdGlvbi10ZXN0cy9zcmMvVnVGaW5kVGVzdC9NaW5rL0hvbGRzVGVzdC5waHAiO3M6NDE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAc291cmNlIjtzOjMxNzg2OiI8P3BocAoKLyoqCiAqIFRlc3QgY2xhc3MgZm9yIGhvbGRzLXJlbGF0ZWQgZnVuY3Rpb25hbGl0eS4KICoKICogUEhQIHZlcnNpb24gOAogKgogKiBDb3B5cmlnaHQgKEMpIFZpbGxhbm92YSBVbml2ZXJzaXR5IDIwMjEuCiAqCiAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyLAogKiBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbi4KICoKICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKICogR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KICoKICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKICogRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAgMDIxMTAtMTMwMSAgVVNBCiAqCiAqIEBjYXRlZ29yeSBWdUZpbmQKICogQHBhY2thZ2UgIFRlc3RzCiAqIEBhdXRob3IgICBEZW1pYW4gS2F0eiA8ZGVtaWFuLmthdHpAdmlsbGFub3ZhLmVkdT4KICogQGxpY2Vuc2UgIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9ncGwtMi4wLnBocCBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQogKiBAbGluayAgICAgaHR0cHM6Ly92dWZpbmQub3JnIE1haW4gUGFnZQogKi8KCm5hbWVzcGFjZSBWdUZpbmRUZXN0XE1pbms7Cgp1c2UgQmVoYXRcTWlua1xFbGVtZW50XERvY3VtZW50RWxlbWVudDsKdXNlIEJlaGF0XE1pbmtcRWxlbWVudFxFbGVtZW50OwoKLyoqCiAqIFRlc3QgY2xhc3MgZm9yIGhvbGRzLXJlbGF0ZWQgZnVuY3Rpb25hbGl0eS4KICoKICogQ2xhc3MgbXVzdCBiZSBmaW5hbCBkdWUgdG8gdXNlIG9mICJuZXcgc3RhdGljKCkiIGJ5IExpdmVEYXRhYmFzZVRyYWl0LgogKgogKiBAY2F0ZWdvcnkgVnVGaW5kCiAqIEBwYWNrYWdlICBUZXN0cwogKiBAYXV0aG9yICAgRGVtaWFuIEthdHogPGRlbWlhbi5rYXR6QHZpbGxhbm92YS5lZHU+CiAqIEBsaWNlbnNlICBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvZ3BsLTIuMC5waHAgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKICogQGxpbmsgICAgIGh0dHBzOi8vdnVmaW5kLm9yZyBNYWluIFBhZ2UKICovCmZpbmFsIGNsYXNzIEhvbGRzVGVzdCBleHRlbmRzIFxWdUZpbmRUZXN0XEludGVncmF0aW9uXE1pbmtUZXN0Q2FzZQp7CiAgICB1c2UgXFZ1RmluZFRlc3RcRmVhdHVyZVxEZW1vRHJpdmVyVGVzdFRyYWl0OwogICAgdXNlIFxWdUZpbmRUZXN0XEZlYXR1cmVcTGl2ZURhdGFiYXNlVHJhaXQ7CiAgICB1c2UgXFZ1RmluZFRlc3RcRmVhdHVyZVxVc2VyQ3JlYXRpb25UcmFpdDsKCiAgICAvKioKICAgICAqIFN0YW5kYXJkIHNldHVwIG1ldGhvZC4KICAgICAqCiAgICAgKiBAcmV0dXJuIHZvaWQKICAgICAqLwogICAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBzZXRVcEJlZm9yZUNsYXNzKCk6IHZvaWQKICAgIHsKICAgICAgICBzdGF0aWM6OmZhaWxJZkRhdGFFeGlzdHMoKTsKICAgIH0KCiAgICAvKioKICAgICAqIEdldCBjb25maWcuaW5pIG92ZXJyaWRlIHNldHRpbmdzIGZvciB0ZXN0aW5nIElMUyBmdW5jdGlvbnMuCiAgICAgKgogICAgICogQHJldHVybiBhcnJheQogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0Q29uZmlnSW5pT3ZlcnJpZGVzKCk6IGFycmF5CiAgICB7CiAgICAgICAgcmV0dXJuIFsKICAgICAgICAgICAgJ0NhdGFsb2cnID0+IFsKICAgICAgICAgICAgICAgICdkcml2ZXInID0+ICdEZW1vJywKICAgICAgICAgICAgICAgICdob2xkc19tb2RlJyA9PiAnZHJpdmVyJywKICAgICAgICAgICAgICAgICd0aXRsZV9sZXZlbF9ob2xkc19tb2RlJyA9PiAnZHJpdmVyJywKICAgICAgICAgICAgXSwKICAgICAgICBdOwogICAgfQoKICAgIC8qKgogICAgICogTW92ZSB0aGUgY3VycmVudCBwYWdlIHRvIGEgcmVjb3JkIHdpdGggYSBkaXJlY3QgbGluay4KICAgICAqCiAgICAgKiBAcGFyYW0gc3RyaW5nICRpZCBJRCBvZiByZWNvcmQgdG8gYWNjZXNzLgogICAgICoKICAgICAqIEByZXR1cm4gRG9jdW1lbnRFbGVtZW50CiAgICAgKi8KICAgIHByb3RlY3RlZCBmdW5jdGlvbiBnb3RvUmVjb3JkQnlJZChzdHJpbmcgJGlkID0gJ3Rlc3RzYW1wbGUxJyk6IERvY3VtZW50RWxlbWVudAogICAgewogICAgICAgICRzZXNzaW9uID0gJHRoaXMtPmdldE1pbmtTZXNzaW9uKCk7CiAgICAgICAgJHNlc3Npb24tPnZpc2l0KCR0aGlzLT5nZXRWdUZpbmRVcmwoKSAuICcvUmVjb3JkLycgLiB1cmxlbmNvZGUoJGlkKSk7CiAgICAgICAgJHBhZ2UgPSAkc2Vzc2lvbi0+Z2V0UGFnZSgpOwogICAgICAgICR0aGlzLT53YWl0Rm9yUGFnZUxvYWQoJHBhZ2UpOwogICAgICAgIHJldHVybiAkcGFnZTsKICAgIH0KCiAgICAvKioKICAgICAqIE1vdmUgdGhlIGN1cnJlbnQgcGFnZSB0byBhIHJlY29yZCBieSBwZXJmb3JtaW5nIGEgc2VhcmNoLgogICAgICoKICAgICAqIEBwYXJhbSBzdHJpbmcgJGlkIElEIG9mIHJlY29yZCB0byBhY2Nlc3MuCiAgICAgKgogICAgICogQHJldHVybiBEb2N1bWVudEVsZW1lbnQKICAgICAqLwogICAgcHJvdGVjdGVkIGZ1bmN0aW9uIGdvdG9SZWNvcmRXaXRoU2VhcmNoKAogICAgICAgIHN0cmluZyAkaWQgPSAndGVzdHNhbXBsZTEnCiAgICApOiBEb2N1bWVudEVsZW1lbnQgewogICAgICAgICRzZXNzaW9uID0gJHRoaXMtPmdldE1pbmtTZXNzaW9uKCk7CiAgICAgICAgJHNlc3Npb24tPnZpc2l0KAogICAgICAgICAgICAkdGhpcy0+Z2V0VnVGaW5kVXJsKCkgLiAnL1NlYXJjaC9SZXN1bHRzP2xvb2tmb3I9JwogICAgICAgICAgICAuIHVybGVuY29kZSgiaWQ6KCRpZCkiKQogICAgICAgICk7CiAgICAgICAgJHBhZ2UgPSAkc2Vzc2lvbi0+Z2V0UGFnZSgpOwogICAgICAgICR0aGlzLT5jbGlja0NzcygkcGFnZSwgJyNyZXN1bHQwIGEucmVjb3JkLWNvdmVyLWxpbmsnKTsKICAgICAgICAkdGhpcy0+d2FpdEZvclBhZ2VMb2FkKCRwYWdlKTsKICAgICAgICByZXR1cm4gJHBhZ2U7CiAgICB9CgogICAgLyoqCiAgICAgKiBTdXBwb3J0IG1ldGhvZCB0byBwbGFjZSBhIGhvbGQgYW5kIGNsaWNrIHRocm91Z2ggdG8gIllvdXIgSG9sZHMgYW5kIFJlY2FsbHMuIgogICAgICoKICAgICAqIEBwYXJhbSBFbGVtZW50ICRwYWdlICAgUGFnZSBlbGVtZW50LgogICAgICogQHBhcmFtIGFycmF5ICAgJGV4dHJhcyBBc3NvY2lhdGl2ZSBhcnJheSBvZiBzZWxlY3RvciA9PiB2YWx1ZSBmb3IgYWRkaXRpb25hbAogICAgICogZm9ybSB2YWx1ZXMgdG8gc2V0LgogICAgICoKICAgICAqIEByZXR1cm4gdm9pZAogICAgICovCiAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gcGxhY2VIb2xkKAogICAgICAgIEVsZW1lbnQgJHBhZ2UsCiAgICAgICAgYXJyYXkgJGV4dHJhcyA9IFtdCiAgICApOiB2b2lkIHsKICAgICAgICAkdGhpcy0+d2FpdEZvclBhZ2VMb2FkKCRwYWdlKTsKICAgICAgICAvLyBXYWl0IGZvciByZXF1ZXN0IGNoZWNrcyB0byBjb21wbGV0ZSAodGhleSBtYXkgYWZmZWN0IGxheW91dCk6CiAgICAgICAgJHRoaXMtPnVuRmluZENzcygkcGFnZSwgJy5yZXF1ZXN0LWNoZWNrJyk7CiAgICAgICAgLy8gT3BlbiB0aGUgInBsYWNlIGhvbGQiIGRpYWxvZwogICAgICAgICR0aGlzLT5jbGlja0NzcygkcGFnZSwgJ2EucGxhY2Vob2xkJyk7CgogICAgICAgIC8vIFNldCBwaWNrdXAgbG9jYXRpb24gdG8gYSBub24tZGVmYXVsdCB2YWx1ZSBzbyB3ZSBjYW4gY29uZmlybSB0aGF0CiAgICAgICAgLy8gdGhlIGVsZW1lbnQgaXMgYmVpbmcgcGFzc2VkIHRocm91Z2ggY29ycmVjdGx5LCB0aGVuIHN1Ym1pdCBmb3JtOgogICAgICAgIGlmICghaXNzZXQoJGV4dHJhc1snI3BpY2tVcExvY2F0aW9uJ10pKSB7CiAgICAgICAgICAgICRleHRyYXNbJyNwaWNrVXBMb2NhdGlvbiddID0gJ0InOwogICAgICAgIH0KICAgICAgICAvLyBBZGQgZXh0cmEgZm9ybSBmaWVsZCB2YWx1ZXM6CiAgICAgICAgJHRoaXMtPndhaXRGb3JQYWdlTG9hZCgkcGFnZSk7CiAgICAgICAgZm9yZWFjaCAoJGV4dHJhcyBhcyAkc2VsZWN0b3IgPT4gJHZhbHVlKSB7CiAgICAgICAgICAgICR0aGlzLT5maW5kQ3NzQW5kU2V0VmFsdWUoJHBhZ2UsICRzZWxlY3RvciwgJHZhbHVlKTsKICAgICAgICB9CiAgICAgICAgJHRoaXMtPmNsaWNrQ3NzKCRwYWdlLCAnLm1vZGFsLWJvZHkgLmJ0bi5idG4tcHJpbWFyeScpOwogICAgfQoKICAgIC8qKgogICAgICogU3VwcG9ydCBtZXRob2QgdG8gcGxhY2UgYSBob2xkIGFuZCBjbGljayB0aHJvdWdoIHRvICJZb3VyIEhvbGRzIGFuZCBSZWNhbGxzLiIKICAgICAqCiAgICAgKiBAcGFyYW0gRWxlbWVudCAkcGFnZSAgIFBhZ2UgZWxlbWVudC4KICAgICAqIEBwYXJhbSBhcnJheSAgICRleHRyYXMgQXNzb2NpYXRpdmUgYXJyYXkgb2Ygc2VsZWN0b3IgPT4gdmFsdWUgZm9yIGFkZGl0aW9uYWwKICAgICAqIGZvcm0gdmFsdWVzIHRvIHNldC4KICAgICAqCiAgICAgKiBAcmV0dXJuIHZvaWQKICAgICAqLwogICAgcHJvdGVjdGVkIGZ1bmN0aW9uIHBsYWNlSG9sZEFuZEdvVG9Ib2xkc1NjcmVlbigKICAgICAgICBFbGVtZW50ICRwYWdlLAogICAgICAgIGFycmF5ICRleHRyYXMgPSBbXQogICAgKTogdm9pZCB7CiAgICAgICAgJHRoaXMtPnBsYWNlSG9sZCgkcGFnZSwgJGV4dHJhcyk7CgogICAgICAgIC8vIElmIHN1Y2Nlc3NmdWwsIHdlIHNob3VsZCBub3cgaGF2ZSBhIGxpbmsgdG8gcmV2aWV3IHRoZSBob2xkOgogICAgICAgICRsaW5rID0gJHRoaXMtPmZpbmRDc3MoJHBhZ2UsICcubW9kYWwtYm9keSBhJyk7CiAgICAgICAgJHRoaXMtPmFzc2VydEVxdWFscygnWW91ciBIb2xkcyBhbmQgUmVjYWxscycsICRsaW5rLT5nZXRUZXh0KCkpOwogICAgICAgICRsaW5rLT5jbGljaygpOwoKICAgICAgICAvLyBNYWtlIHN1cmUgd2UgYXJyaXZlZCB3aGVyZSB3ZSBleHBlY3RlZCB0bzoKICAgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzKAogICAgICAgICAgICAnWW91ciBIb2xkcyBhbmQgUmVjYWxscycsCiAgICAgICAgICAgICR0aGlzLT5maW5kQ3NzQW5kR2V0VGV4dCgkcGFnZSwgJ2gyJykKICAgICAgICApOwogICAgfQoKICAgIC8qKgogICAgICogVGVzdCBwbGFjaW5nIGEgaG9sZAogICAgICoKICAgICAqIEByZXR1cm4gdm9pZAogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gdGVzdFBsYWNlSG9sZCgpOiB2b2lkCiAgICB7CiAgICAgICAgJHRoaXMtPmNoYW5nZUNvbmZpZ3MoCiAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICdjb25maWcnID0+ICR0aGlzLT5nZXRDb25maWdJbmlPdmVycmlkZXMoKSwKICAgICAgICAgICAgICAgICdEZW1vJyA9PiAkdGhpcy0+Z2V0RGVtb0luaU92ZXJyaWRlcygpLAogICAgICAgICAgICBdCiAgICAgICAgKTsKICAgICAgICAvLyBVc2Ugc2VhcmNoIHRvIGZpbmQgYSByZWNvcmQgdG8gc2ltdWxhdGUgYSB0eXBpY2FsIHVzZSBjYXNlOgogICAgICAgICRwYWdlID0gJHRoaXMtPmdvdG9SZWNvcmRXaXRoU2VhcmNoKCk7CiAgICAgICAgJGVsZW1lbnQgPSAkdGhpcy0+ZmluZENzcygkcGFnZSwgJy5hbGVydC5hbGVydC1pbmZvIGEnKTsKICAgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzKCdMb2dpbiBmb3IgaG9sZCBhbmQgcmVjYWxsIGluZm9ybWF0aW9uJywgJGVsZW1lbnQtPmdldFRleHQoKSk7CiAgICAgICAgJGVsZW1lbnQtPmNsaWNrKCk7CiAgICAgICAgJHRoaXMtPmNsaWNrQ3NzKCRwYWdlLCAnLmNyZWF0ZUFjY291bnRMaW5rJyk7CiAgICAgICAgJHRoaXMtPmZpbGxJbkFjY291bnRGb3JtKCRwYWdlKTsKICAgICAgICAkdGhpcy0+Y2xpY2tDc3MoJHBhZ2UsICdpbnB1dC5idG4uYnRuLXByaW1hcnknKTsKCiAgICAgICAgLy8gU3RhcnQgZXN0YWJsaXNoaW5nIGxpYnJhcnkgY2F0YWxvZyBwcm9maWxlCiAgICAgICAgJHRoaXMtPndhaXRGb3JQYWdlTG9hZCgkcGFnZSk7CgogICAgICAgIC8vIFRlc3QgaW52YWxpZCBwYXRyb24gbG9naW4KICAgICAgICAkdGhpcy0+c3VibWl0Q2F0YWxvZ0xvZ2luRm9ybSgkcGFnZSwgJ2JhZCcsICdpbmNvcnJlY3QnKTsKICAgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzKAogICAgICAgICAgICAnSW52YWxpZCBQYXRyb24gTG9naW4nLAogICAgICAgICAgICAkdGhpcy0+ZmluZENzc0FuZEdldFRleHQoJHBhZ2UsICcuYWxlcnQuYWxlcnQtZGFuZ2VyJykKICAgICAgICApOwoKICAgICAgICAvLyBUZXN0IHZhbGlkIHBhdHJvbiBsb2dpbgogICAgICAgICR0aGlzLT5zdWJtaXRDYXRhbG9nTG9naW5Gb3JtKCRwYWdlLCAnY2F0dXNlcicsICdjYXRwYXNzJyk7CgogICAgICAgIC8vIFRlc3QgcGxhY2luZyBhIGhvbGQgd2l0aCBhbiBlbXB0eSAicmVxdWlyZWQgYnkiIGRhdGU6CiAgICAgICAgJHRoaXMtPnBsYWNlSG9sZCgkcGFnZSwgWycjcmVxdWlyZWRCeURhdGUnID0+ICcnXSk7CiAgICAgICAgJHRoaXMtPmFzc2VydEVxdWFscygKICAgICAgICAgICAgIlBsZWFzZSBlbnRlciBhIHZhbGlkICdyZXF1aXJlZCBieScgZGF0ZSIsCiAgICAgICAgICAgICR0aGlzLT5maW5kQ3NzQW5kR2V0VGV4dCgkcGFnZSwgJy5hbGVydC5hbGVydC1kYW5nZXInKQogICAgICAgICk7CiAgICAgICAgJHRoaXMtPmNsb3NlTGlnaHRib3goJHBhZ2UpOwoKICAgICAgICAvLyBUZXN0IHBsYWNpbmcgYSBob2xkIHdpdGggYW4gaW52YWxpZCAicmVxdWlyZWQgYnkiIGRhdGU6CiAgICAgICAgJHRoaXMtPnBsYWNlSG9sZCgkcGFnZSwgWycjcmVxdWlyZWRCeURhdGUnID0+ICcwMS0wMS0yMDIzJ10pOwogICAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMoCiAgICAgICAgICAgICJQbGVhc2UgZW50ZXIgYSB2YWxpZCAncmVxdWlyZWQgYnknIGRhdGUiLAogICAgICAgICAgICAkdGhpcy0+ZmluZENzc0FuZEdldFRleHQoJHBhZ2UsICcuYWxlcnQuYWxlcnQtZGFuZ2VyJykKICAgICAgICApOwogICAgICAgIC8vIFZlcmlmeSB0aGUgbGFiZWwgZm9yIHRoZSAicmVxdWlyZWQgYnkiIGZpZWxkOgogICAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMoCiAgICAgICAgICAgICdObyBsb25nZXIgcmVxdWlyZWQgYWZ0ZXI6JywKICAgICAgICAgICAgJHRoaXMtPmZpbmRDc3NBbmRHZXRUZXh0KCRwYWdlLCAnLmhvbGQtcmVxdWlyZWQtYnkgbGFiZWwnKQogICAgICAgICk7CiAgICAgICAgJHRoaXMtPmNsb3NlTGlnaHRib3goJHBhZ2UpOwoKICAgICAgICAvLyBDcmVhdGUgdGhlIGhvbGQgYW5kIGdvIHRvIHRoZSBob2xkcyBzY3JlZW46CiAgICAgICAgJHRoaXMtPnBsYWNlSG9sZEFuZEdvVG9Ib2xkc1NjcmVlbigkcGFnZSk7CgogICAgICAgIC8vIFZlcmlmeSB0aGUgaG9sZCBpcyBjb3JyZWN0OgogICAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMoCiAgICAgICAgICAgICdKb3VybmFsIG9mIHJhdGlvbmFsIGVtb3RpdmUgdGhlcmFweSA6JwogICAgICAgICAgICAuICcgdGhlIGpvdXJuYWwgb2YgdGhlIEluc3RpdHV0ZSBmb3IgUmF0aW9uYWwtRW1vdGl2ZSBUaGVyYXB5LicsCiAgICAgICAgICAgICR0aGlzLT5maW5kQ3NzQW5kR2V0VGV4dCgkcGFnZSwgJ2EudGl0bGUnKQogICAgICAgICk7CiAgICAgICAgJHBhZ2VDb250ZW50ID0gJHBhZ2UtPmdldENvbnRlbnQoKTsKICAgICAgICAkdGhpcy0+YXNzZXJ0U3RyaW5nQ29udGFpbnNTdHJpbmcoJ0NhbXB1cyBCJywgJHBhZ2VDb250ZW50KTsKICAgICAgICAkdGhpcy0+YXNzZXJ0U3RyaW5nQ29udGFpbnNTdHJpbmcoJ0NyZWF0ZWQ6JywgJHBhZ2VDb250ZW50KTsKICAgICAgICAkdGhpcy0+YXNzZXJ0U3RyaW5nQ29udGFpbnNTdHJpbmcoJ0V4cGlyZXM6JywgJHBhZ2VDb250ZW50KTsKCiAgICAgICAgLy8gQ29uZmlybSB0aGF0IG5vIGNhbmNlbCBidXR0b25zIGFwcGVhciwgc2luY2UgdGhleSBhcmUgbm90IGNvbmZpZ3VyZWQ6CiAgICAgICAgJHRoaXMtPmFzc2VydE51bGwoJHBhZ2UtPmZpbmQoJ2NzcycsICcjY2FuY2VsU2VsZWN0ZWQnKSk7CiAgICAgICAgJHRoaXMtPmFzc2VydE51bGwoJHBhZ2UtPmZpbmQoJ2NzcycsICcjY2FuY2VsQWxsJykpOwogICAgfQoKICAgIC8qKgogICAgICogVGVzdCBwbGFjaW5nIGEgaG9sZCB1c2luZyBTU08KICAgICAqCiAgICAgKiBAcmV0dXJuIHZvaWQKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIHRlc3RQbGFjZUhvbGRXaXRoU1NPKCk6IHZvaWQKICAgIHsKICAgICAgICAkdGhpcy0+Y2hhbmdlQ29uZmlncygKICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgJ2NvbmZpZycgPT4gJHRoaXMtPmdldENvbmZpZ0luaU92ZXJyaWRlcygpICsgWwogICAgICAgICAgICAgICAgICAgICdBdXRoZW50aWNhdGlvbicgPT4gWwogICAgICAgICAgICAgICAgICAgICAgICAnbWV0aG9kJyA9PiAnU2ltdWxhdGVkU1NPJywKICAgICAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgICdEZW1vJyA9PiAkdGhpcy0+Z2V0RGVtb0luaU92ZXJyaWRlcygpLAogICAgICAgICAgICBdCiAgICAgICAgKTsKICAgICAgICAvLyBVc2Ugc2VhcmNoIHRvIGZpbmQgYSByZWNvcmQgdG8gc2ltdWxhdGUgYSB0eXBpY2FsIHVzZSBjYXNlOgogICAgICAgICRwYWdlID0gJHRoaXMtPmdvdG9SZWNvcmRXaXRoU2VhcmNoKCk7CiAgICAgICAgJGVsZW1lbnQgPSAkdGhpcy0+ZmluZENzcygkcGFnZSwgJy5hbGVydC5hbGVydC1pbmZvIGEnKTsKICAgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzKCdMb2dpbiBmb3IgaG9sZCBhbmQgcmVjYWxsIGluZm9ybWF0aW9uJywgJGVsZW1lbnQtPmdldFRleHQoKSk7CiAgICAgICAgJGVsZW1lbnQtPmNsaWNrKCk7CgogICAgICAgIC8vIExvZyBpbjoKICAgICAgICAkdGhpcy0+d2FpdEZvclBhZ2VMb2FkKCRwYWdlKTsKICAgICAgICAkZWxlbWVudCA9ICR0aGlzLT5maW5kQ3NzKCRwYWdlLCAnLm1vZGFsLWJvZHkgLmJ0bicpOwogICAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMoJ0luc3RpdHV0aW9uYWwgTG9naW4nLCAkZWxlbWVudC0+Z2V0VGV4dCgpKTsKICAgICAgICAkZWxlbWVudC0+Y2xpY2soKTsKCiAgICAgICAgLy8gU3RhcnQgZXN0YWJsaXNoaW5nIGxpYnJhcnkgY2F0YWxvZyBwcm9maWxlCiAgICAgICAgJHRoaXMtPndhaXRGb3JQYWdlTG9hZCgkcGFnZSk7CiAgICAgICAgJHRoaXMtPnN1Ym1pdENhdGFsb2dMb2dpbkZvcm0oJHBhZ2UsICdjYXR1c2VyJywgJ2NhdHBhc3MnKTsKCiAgICAgICAgLy8gQ3JlYXRlIHRoZSBob2xkIGFuZCBnbyB0byB0aGUgaG9sZHMgc2NyZWVuOgogICAgICAgICR0aGlzLT5wbGFjZUhvbGRBbmRHb1RvSG9sZHNTY3JlZW4oJHBhZ2UpOwoKICAgICAgICAvLyBWZXJpZnkgdGhlIGhvbGQgaXMgY29ycmVjdDoKICAgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzKAogICAgICAgICAgICAnSm91cm5hbCBvZiByYXRpb25hbCBlbW90aXZlIHRoZXJhcHkgOicKICAgICAgICAgICAgLiAnIHRoZSBqb3VybmFsIG9mIHRoZSBJbnN0aXR1dGUgZm9yIFJhdGlvbmFsLUVtb3RpdmUgVGhlcmFweS4nLAogICAgICAgICAgICAkdGhpcy0+ZmluZENzc0FuZEdldFRleHQoJHBhZ2UsICdhLnRpdGxlJykKICAgICAgICApOwogICAgICAgICRwYWdlQ29udGVudCA9ICRwYWdlLT5nZXRDb250ZW50KCk7CiAgICAgICAgJHRoaXMtPmFzc2VydFRydWUoZmFsc2UgIT09IHN0cnN0cigkcGFnZUNvbnRlbnQsICdDYW1wdXMgQicpKTsKICAgICAgICAkdGhpcy0+YXNzZXJ0VHJ1ZShmYWxzZSAhPT0gc3Ryc3RyKCRwYWdlQ29udGVudCwgJ0NyZWF0ZWQ6JykpOwogICAgICAgICR0aGlzLT5hc3NlcnRUcnVlKGZhbHNlICE9PSBzdHJzdHIoJHBhZ2VDb250ZW50LCAnRXhwaXJlczonKSk7CiAgICB9CgogICAgLyoqCiAgICAgKiBUZXN0IHBsYWNpbmcgYSBob2xkIHVzaW5nIFNTTyBhbmQgYW4gZXhpc3RpbmcgY2F0YWxvZyBhY2NvdW50CiAgICAgKgogICAgICogQGRlcGVuZHMgdGVzdFBsYWNlSG9sZFdpdGhTU08KICAgICAqCiAgICAgKiBAcmV0dXJuIHZvaWQKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIHRlc3RQbGFjZVNlY29uZEhvbGRXaXRoU1NPKCk6IHZvaWQKICAgIHsKICAgICAgICAkdGhpcy0+Y2hhbmdlQ29uZmlncygKICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgJ2NvbmZpZycgPT4gJHRoaXMtPmdldENvbmZpZ0luaU92ZXJyaWRlcygpICsgWwogICAgICAgICAgICAgICAgICAgICdBdXRoZW50aWNhdGlvbicgPT4gWwogICAgICAgICAgICAgICAgICAgICAgICAnbWV0aG9kJyA9PiAnU2ltdWxhdGVkU1NPJywKICAgICAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgICdEZW1vJyA9PiAkdGhpcy0+Z2V0RGVtb0luaU92ZXJyaWRlcygpLAogICAgICAgICAgICBdCiAgICAgICAgKTsKICAgICAgICAvLyBVc2Ugc2VhcmNoIHRvIGZpbmQgYSByZWNvcmQgdG8gc2ltdWxhdGUgYSB0eXBpY2FsIHVzZSBjYXNlOgogICAgICAgICRwYWdlID0gJHRoaXMtPmdvdG9SZWNvcmRXaXRoU2VhcmNoKCd0ZXN0c2FtcGxlMicpOwogICAgICAgICRlbGVtZW50ID0gJHRoaXMtPmZpbmRDc3MoJHBhZ2UsICcuYWxlcnQuYWxlcnQtaW5mbyBhJyk7CiAgICAgICAgJHRoaXMtPmFzc2VydEVxdWFscygnTG9naW4gZm9yIGhvbGQgYW5kIHJlY2FsbCBpbmZvcm1hdGlvbicsICRlbGVtZW50LT5nZXRUZXh0KCkpOwogICAgICAgICRlbGVtZW50LT5jbGljaygpOwoKICAgICAgICAvLyBMb2cgaW46CiAgICAgICAgJHRoaXMtPndhaXRGb3JQYWdlTG9hZCgkcGFnZSk7CiAgICAgICAgJGVsZW1lbnQgPSAkdGhpcy0+ZmluZENzcygkcGFnZSwgJy5tb2RhbC1ib2R5IC5idG4nKTsKICAgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzKCdJbnN0aXR1dGlvbmFsIExvZ2luJywgJGVsZW1lbnQtPmdldFRleHQoKSk7CiAgICAgICAgJGVsZW1lbnQtPmNsaWNrKCk7CiAgICAgICAgJHRoaXMtPndhaXRGb3JQYWdlTG9hZCgkcGFnZSk7CgogICAgICAgIC8vIENoZWNrIHRvIGJlIHN1cmUgd2UgZG9uJ3QgaGF2ZSBhIGdhcmJsZWQgbGlnaHRib3ggYXQgdGhpcyBzdGFnZTsgcGFzdCBidWdzCiAgICAgICAgLy8gY291bGQgY2F1c2UgdGhlIHdob2xlIHJlY29yZCB0byBvcGVuIGluIHRoZSBsaWdodGJveCBoZXJlLgogICAgICAgICR0aGlzLT53YWl0Rm9yUGFnZUxvYWQoJHBhZ2UpOwogICAgICAgICR0aGlzLT51bkZpbmRDc3MoJHBhZ2UsICcubW9kYWwtYm9keSBuYXYnKTsKCiAgICAgICAgLy8gQ3JlYXRlIHRoZSBob2xkIGFuZCBnbyB0byB0aGUgaG9sZHMgc2NyZWVuOgogICAgICAgICR0aGlzLT5wbGFjZUhvbGRBbmRHb1RvSG9sZHNTY3JlZW4oJHBhZ2UpOwoKICAgICAgICAvLyBWZXJpZnkgdGhlIGhvbGQgaXMgY29ycmVjdDoKICAgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzKAogICAgICAgICAgICAnUmF0aW9uYWwgbGl2aW5nLicsCiAgICAgICAgICAgICR0aGlzLT5maW5kQ3NzQW5kR2V0VGV4dCgkcGFnZSwgJ2EudGl0bGUnKQogICAgICAgICk7CiAgICAgICAgJHBhZ2VDb250ZW50ID0gJHBhZ2UtPmdldENvbnRlbnQoKTsKICAgICAgICAkdGhpcy0+YXNzZXJ0VHJ1ZShmYWxzZSAhPT0gc3Ryc3RyKCRwYWdlQ29udGVudCwgJ0NhbXB1cyBCJykpOwogICAgICAgICR0aGlzLT5hc3NlcnRUcnVlKGZhbHNlICE9PSBzdHJzdHIoJHBhZ2VDb250ZW50LCAnQ3JlYXRlZDonKSk7CiAgICAgICAgJHRoaXMtPmFzc2VydFRydWUoZmFsc2UgIT09IHN0cnN0cigkcGFnZUNvbnRlbnQsICdFeHBpcmVzOicpKTsKICAgIH0KCiAgICAvKioKICAgICAqIFRlc3QgcGxhY2luZyBhIGhvbGQgd2l0aCBhbiBvcHRpb25hbCAicmVxdWlyZWQgYnkiIGRhdGUKICAgICAqCiAgICAgKiBAcmV0dXJuIHZvaWQKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIHRlc3RQbGFjZUhvbGRXaXRoT3B0aW9uYWxSZXF1aXJlZEJ5KCk6IHZvaWQKICAgIHsKICAgICAgICAkZGVtb0NvbmZpZyA9ICR0aGlzLT5nZXREZW1vSW5pT3ZlcnJpZGVzKCk7CiAgICAgICAgJGRlbW9Db25maWdbJ0hvbGRzJ10gPSBbCiAgICAgICAgICAgICdITUFDS2V5cycgPT4gJ3JlY29yZF9pZDppdGVtX2lkOmxldmVsJywKICAgICAgICAgICAgJ2V4dHJhSG9sZEZpZWxkcycgPT4KICAgICAgICAgICAgICAgICdjb21tZW50czpyZXF1ZXN0R3JvdXA6cGlja1VwTG9jYXRpb246cmVxdWlyZWRCeURhdGVPcHRpb25hbCcsCiAgICAgICAgICAgICdkZWZhdWx0UmVxdWlyZWREYXRlJyA9PiAnJywKICAgICAgICBdOwogICAgICAgICR0aGlzLT5jaGFuZ2VDb25maWdzKAogICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAnY29uZmlnJyA9PiAkdGhpcy0+Z2V0Q29uZmlnSW5pT3ZlcnJpZGVzKCksCiAgICAgICAgICAgICAgICAnRGVtbycgPT4gJGRlbW9Db25maWcsCiAgICAgICAgICAgIF0KICAgICAgICApOwogICAgICAgIC8vIFVzZSBzZWFyY2ggdG8gZmluZCBhIHJlY29yZCB0byBzaW11bGF0ZSBhIHR5cGljYWwgdXNlIGNhc2U6CiAgICAgICAgJHBhZ2UgPSAkdGhpcy0+Z290b1JlY29yZFdpdGhTZWFyY2goKTsKICAgICAgICAkZWxlbWVudCA9ICR0aGlzLT5maW5kQ3NzKCRwYWdlLCAnLmFsZXJ0LmFsZXJ0LWluZm8gYScpOwogICAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMoCiAgICAgICAgICAgICdMb2dpbiBmb3IgaG9sZCBhbmQgcmVjYWxsIGluZm9ybWF0aW9uJywKICAgICAgICAgICAgJGVsZW1lbnQtPmdldFRleHQoKQogICAgICAgICk7CiAgICAgICAgJGVsZW1lbnQtPmNsaWNrKCk7CiAgICAgICAgJHRoaXMtPmNsaWNrQ3NzKCRwYWdlLCAnLmNyZWF0ZUFjY291bnRMaW5rJyk7CiAgICAgICAgJHRoaXMtPmZpbGxJbkFjY291bnRGb3JtKAogICAgICAgICAgICAkcGFnZSwKICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgJ3VzZXJuYW1lJyA9PiAndXNlcm5hbWU0JywKICAgICAgICAgICAgICAgICdlbWFpbCcgPT4gJ3VzZXJuYW1lNEBpZ25vcmUuY29tJywKICAgICAgICAgICAgXQogICAgICAgICk7CiAgICAgICAgJHRoaXMtPmNsaWNrQ3NzKCRwYWdlLCAnaW5wdXQuYnRuLmJ0bi1wcmltYXJ5Jyk7CgogICAgICAgIC8vIFN0YXJ0IGVzdGFibGlzaGluZyBsaWJyYXJ5IGNhdGFsb2cgcHJvZmlsZQogICAgICAgICR0aGlzLT53YWl0Rm9yUGFnZUxvYWQoJHBhZ2UpOwogICAgICAgICR0aGlzLT5zdWJtaXRDYXRhbG9nTG9naW5Gb3JtKCRwYWdlLCAnY2F0dXNlcicsICdjYXRwYXNzJyk7CgogICAgICAgIC8vIFRlc3QgcGxhY2luZyBhIGhvbGQgd2l0aCBhbiBpbnZhbGlkICJyZXF1aXJlZCBieSIgZGF0ZToKICAgICAgICAkdGhpcy0+cGxhY2VIb2xkKCRwYWdlLCBbJyNyZXF1aXJlZEJ5RGF0ZScgPT4gJzAxLTAxLTIwMjMnXSk7CiAgICAgICAgJHRoaXMtPmFzc2VydEVxdWFscygKICAgICAgICAgICAgIlBsZWFzZSBlbnRlciBhIHZhbGlkICdyZXF1aXJlZCBieScgZGF0ZSIsCiAgICAgICAgICAgICR0aGlzLT5maW5kQ3NzQW5kR2V0VGV4dCgkcGFnZSwgJy5hbGVydC5hbGVydC1kYW5nZXInKQogICAgICAgICk7CiAgICAgICAgLy8gVmVyaWZ5IHRoZSBsYWJlbCBmb3IgdGhlICJyZXF1aXJlZCBieSIgZmllbGQ6CiAgICAgICAgJHRoaXMtPmFzc2VydEVxdWFscygKICAgICAgICAgICAgJ05vIGxvbmdlciByZXF1aXJlZCBhZnRlciAob3B0aW9uYWwpOicsCiAgICAgICAgICAgICR0aGlzLT5maW5kQ3NzQW5kR2V0VGV4dCgkcGFnZSwgJy5ob2xkLXJlcXVpcmVkLWJ5IGxhYmVsJykKICAgICAgICApOwogICAgICAgICR0aGlzLT5jbG9zZUxpZ2h0Ym94KCRwYWdlKTsKCiAgICAgICAgLy8gQ3JlYXRlIHRoZSBob2xkIGFuZCBnbyB0byB0aGUgaG9sZHMgc2NyZWVuOgogICAgICAgICR0aGlzLT5wbGFjZUhvbGRBbmRHb1RvSG9sZHNTY3JlZW4oJHBhZ2UsIFsnI3JlcXVpcmVkQnlEYXRlJyA9PiAnJ10pOwoKICAgICAgICAvLyBWZXJpZnkgdGhlIGhvbGQgaXMgY29ycmVjdDoKICAgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzKAogICAgICAgICAgICAnSm91cm5hbCBvZiByYXRpb25hbCBlbW90aXZlIHRoZXJhcHkgOicKICAgICAgICAgICAgLiAnIHRoZSBqb3VybmFsIG9mIHRoZSBJbnN0aXR1dGUgZm9yIFJhdGlvbmFsLUVtb3RpdmUgVGhlcmFweS4nLAogICAgICAgICAgICAkdGhpcy0+ZmluZENzc0FuZEdldFRleHQoJHBhZ2UsICdhLnRpdGxlJykKICAgICAgICApOwogICAgICAgICRwYWdlQ29udGVudCA9ICRwYWdlLT5nZXRDb250ZW50KCk7CiAgICAgICAgJHRoaXMtPmFzc2VydFRydWUoZmFsc2UgIT09IHN0cnN0cigkcGFnZUNvbnRlbnQsICdDYW1wdXMgQicpKTsKICAgICAgICAkdGhpcy0+YXNzZXJ0VHJ1ZShmYWxzZSAhPT0gc3Ryc3RyKCRwYWdlQ29udGVudCwgJ0NyZWF0ZWQ6JykpOwogICAgICAgICR0aGlzLT5hc3NlcnRGYWxzZShzdHJzdHIoJHBhZ2VDb250ZW50LCAnRXhwaXJlczonKSk7CgogICAgICAgIC8vIENvbmZpcm0gdGhhdCBubyBjYW5jZWwgYnV0dG9ucyBhcHBlYXIsIHNpbmNlIHRoZXkgYXJlIG5vdCBjb25maWd1cmVkOgogICAgICAgICR0aGlzLT5hc3NlcnROdWxsKCRwYWdlLT5maW5kKCdjc3MnLCAnI2NhbmNlbFNlbGVjdGVkJykpOwogICAgICAgICR0aGlzLT5hc3NlcnROdWxsKCRwYWdlLT5maW5kKCdjc3MnLCAnI2NhbmNlbEFsbCcpKTsKICAgIH0KCiAgICAvKioKICAgICAqIENsaWNrIGEgbGluayBpbnNpZGUgYSBkcm9wIGRvd24gYnV0dG9uIGdyb3VwLgogICAgICoKICAgICAqIEBwYXJhbSBFbGVtZW50ICRwYWdlIFBhZ2UgZWxlbWVudC4KICAgICAqIEBwYXJhbSBzdHJpbmcgICR0ZXh0IFRleHQgdG8gbWF0Y2ggb24gbGluay4KICAgICAqCiAgICAgKiBAcmV0dXJuIHZvaWQKICAgICAqLwogICAgcHJvdGVjdGVkIGZ1bmN0aW9uIGNsaWNrQnV0dG9uR3JvdXBMaW5rKEVsZW1lbnQgJHBhZ2UsIHN0cmluZyAkdGV4dCk6IHZvaWQKICAgIHsKICAgICAgICAkbGluayA9ICR0aGlzLT5maW5kQ3NzKCRwYWdlLCAkdGhpcy0+YnRuR3JvdXBEcm9wZG93bk1lbnVTZWxlY3RvciktPmZpbmRMaW5rKCR0ZXh0KTsKICAgICAgICAkdGhpcy0+YXNzZXJ0SXNPYmplY3QoJGxpbmspOwogICAgICAgICRsaW5rLT5jbGljaygpOwogICAgfQoKICAgIC8qKgogICAgICogVGVzdCBjYW5jZWxpbmcgYSByZXF1ZXN0LgogICAgICoKICAgICAqIEBwYXJhbSBFbGVtZW50ICRwYWdlIFBhZ2UgZWxlbWVudC4KICAgICAqIEBwYXJhbSBzdHJpbmcgICR0eXBlIFJlcXVlc3QgdHlwZSBiZWluZyB0ZXN0ZWQuCiAgICAgKgogICAgICogQHJldHVybiB2b2lkCiAgICAgKi8KICAgIHByb3RlY3RlZCBmdW5jdGlvbiBjYW5jZWxQcm9jZWR1cmUoRWxlbWVudCAkcGFnZSwgc3RyaW5nICR0eXBlKTogdm9pZAogICAgewogICAgICAgIC8vIFRlc3QgdGhhdCBjb250cm9sIGlzIGRpc2FibGVkIHVwb24gZW1wdHkgc2VsZWN0aW9uCiAgICAgICAgJHRoaXMtPmNsaWNrQ3NzKCRwYWdlLCAnI2NhbmNlbFNlbGVjdGVkJyk7CiAgICAgICAgJHRoaXMtPmFzc2VydE51bGwoJHBhZ2UtPmZpbmQoJ2NzcycsICcuYnRuLWdyb3VwLm9wZW4nKSk7CgogICAgICAgIC8vIFRlc3QgImNhbmNlbCBhbGwiIGJ1dHRvbiAtLSBmaXJzdCBtYWtlIHN1cmUgaXRlbSBpcyB0aGVyZSBiZWZvcmUKICAgICAgICAvLyBjYW5jZWwgaXMgcHVzaGVkOgogICAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMoCiAgICAgICAgICAgICdKb3VybmFsIG9mIHJhdGlvbmFsIGVtb3RpdmUgdGhlcmFweSA6JwogICAgICAgICAgICAuICcgdGhlIGpvdXJuYWwgb2YgdGhlIEluc3RpdHV0ZSBmb3IgUmF0aW9uYWwtRW1vdGl2ZSBUaGVyYXB5LicsCiAgICAgICAgICAgICR0aGlzLT5maW5kQ3NzQW5kR2V0VGV4dCgkcGFnZSwgJ2EudGl0bGUnKQogICAgICAgICk7CgogICAgICAgIC8vIENsaWNrIGNhbmNlbCBidXQgYmFpbCBvdXQgd2l0aCBuby4uLiBpdGVtIHNob3VsZCBzdGlsbCBiZSB0aGVyZS4KICAgICAgICAkdGhpcy0+Y2xpY2tDc3MoJHBhZ2UsICcjY2FuY2VsQWxsJyk7CiAgICAgICAgJHRoaXMtPmNsaWNrQnV0dG9uR3JvdXBMaW5rKCRwYWdlLCAnTm8nKTsKICAgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzKAogICAgICAgICAgICAnSm91cm5hbCBvZiByYXRpb25hbCBlbW90aXZlIHRoZXJhcHkgOicKICAgICAgICAgICAgLiAnIHRoZSBqb3VybmFsIG9mIHRoZSBJbnN0aXR1dGUgZm9yIFJhdGlvbmFsLUVtb3RpdmUgVGhlcmFweS4nLAogICAgICAgICAgICAkdGhpcy0+ZmluZENzc0FuZEdldFRleHQoJHBhZ2UsICdhLnRpdGxlJykKICAgICAgICApOwoKICAgICAgICAvLyBOb3cgY2FuY2VsIGZvciByZWFsOgogICAgICAgICR0aGlzLT5jbGlja0NzcygkcGFnZSwgJyNjYW5jZWxBbGwnKTsKICAgICAgICAkdGhpcy0+Y2xpY2tCdXR0b25Hcm91cExpbmsoJHBhZ2UsICdZZXMnKTsKICAgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzKAogICAgICAgICAgICAnMSByZXF1ZXN0KHMpIHdlcmUgc3VjY2Vzc2Z1bGx5IGNhbmNlbGVkJywKICAgICAgICAgICAgJHRoaXMtPmZpbmRDc3NBbmRHZXRUZXh0KCRwYWdlLCAnLmFsZXJ0LmFsZXJ0LXN1Y2Nlc3MnKQogICAgICAgICk7CiAgICAgICAgJHRoaXMtPmFzc2VydE51bGwoJHBhZ2UtPmZpbmQoJ2NzcycsICdhLnRpdGxlJykpOwogICAgfQoKICAgIC8qKgogICAgICogVGVzdCBjYW5jZWxpbmcgYSBob2xkLgogICAgICoKICAgICAqIEBkZXBlbmRzIHRlc3RQbGFjZUhvbGQKICAgICAqCiAgICAgKiBAcmV0dXJuIHZvaWQKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIHRlc3RDYW5jZWxIb2xkKCk6IHZvaWQKICAgIHsKICAgICAgICAvLyBUdXJuIG9uICJjYW5jZWwgaG9sZHMiIGluIGFkZGl0aW9uIHRvIG5vcm1hbCBkZWZhdWx0czoKICAgICAgICAkY29uZmlnID0gJHRoaXMtPmdldENvbmZpZ0luaU92ZXJyaWRlcygpOwogICAgICAgICRjb25maWdbJ0NhdGFsb2cnXVsnY2FuY2VsX2hvbGRzX2VuYWJsZWQnXSA9IDE7CiAgICAgICAgJHRoaXMtPmNoYW5nZUNvbmZpZ3MoCiAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICdjb25maWcnID0+ICRjb25maWcsCiAgICAgICAgICAgICAgICAnRGVtbycgPT4gJHRoaXMtPmdldERlbW9JbmlPdmVycmlkZXMoKSwKICAgICAgICAgICAgXQogICAgICAgICk7CgogICAgICAgIC8vIExvZyBpbiB0aGUgdXNlciBvbiB0aGUgcmVjb3JkIHBhZ2U6CiAgICAgICAgJHBhZ2UgPSAkdGhpcy0+Z290b1JlY29yZEJ5SWQoKTsKICAgICAgICAkZWxlbWVudCA9ICR0aGlzLT5maW5kQ3NzKCRwYWdlLCAnLmFsZXJ0LmFsZXJ0LWluZm8gYScpOwogICAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMoJ0xvZ2luIGZvciBob2xkIGFuZCByZWNhbGwgaW5mb3JtYXRpb24nLCAkZWxlbWVudC0+Z2V0VGV4dCgpKTsKICAgICAgICAkZWxlbWVudC0+Y2xpY2soKTsKICAgICAgICAkdGhpcy0+ZmlsbEluTG9naW5Gb3JtKCRwYWdlLCAndXNlcm5hbWUxJywgJ3Rlc3QnLCBmYWxzZSk7CiAgICAgICAgJHRoaXMtPnN1Ym1pdExvZ2luRm9ybSgkcGFnZSwgZmFsc2UpOwoKICAgICAgICAvLyBQbGFjZSB0aGUgaG9sZDoKICAgICAgICAkdGhpcy0+cGxhY2VIb2xkQW5kR29Ub0hvbGRzU2NyZWVuKCRwYWdlKTsKCiAgICAgICAgLy8gVGVzdCBjYW5jZWxpbmcgdGhlIGhvbGQ6CiAgICAgICAgJHRoaXMtPmNhbmNlbFByb2NlZHVyZSgkcGFnZSwgJ2hvbGRzJyk7CiAgICB9CgogICAgLyoqCiAgICAgKiBDcmVhdGUgYSBmcm96ZW4gaG9sZCBhbmQgbmF2aWdhdGUgdG8gdGhlIGhvbGRzIGxpc3QuIFJldHVybiB0aGUgcGFnZQogICAgICogb2JqZWN0IHRoYXQgd2FzIHNldCB1cCBkdXJpbmcgdGhlIHByb2Nlc3MuCiAgICAgKgogICAgICogQHJldHVybiBEb2N1bWVudEVsZW1lbnQKICAgICAqLwogICAgcHJvdGVjdGVkIGZ1bmN0aW9uIHNldFVwRnJvemVuSG9sZCgpOiBEb2N1bWVudEVsZW1lbnQKICAgIHsKICAgICAgICAvLyBMb2cgaW4gdGhlIHVzZXIgb24gdGhlIHJlY29yZCBwYWdlOgogICAgICAgICRwYWdlID0gJHRoaXMtPmdvdG9SZWNvcmRCeUlkKCk7CiAgICAgICAgJGVsZW1lbnQgPSAkdGhpcy0+ZmluZENzcygkcGFnZSwgJy5hbGVydC5hbGVydC1pbmZvIGEnKTsKICAgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzKCdMb2dpbiBmb3IgaG9sZCBhbmQgcmVjYWxsIGluZm9ybWF0aW9uJywgJGVsZW1lbnQtPmdldFRleHQoKSk7CiAgICAgICAgJGVsZW1lbnQtPmNsaWNrKCk7CiAgICAgICAgJHRoaXMtPmZpbGxJbkxvZ2luRm9ybSgkcGFnZSwgJ3VzZXJuYW1lMScsICd0ZXN0JywgZmFsc2UpOwogICAgICAgICR0aGlzLT5zdWJtaXRMb2dpbkZvcm0oJHBhZ2UsIGZhbHNlKTsKCiAgICAgICAgLy8gUGxhY2UgdGhlIGhvbGQ6CiAgICAgICAgJGZ1dHVyZURhdGUgPSBkYXRlKCdtLWQtWScsIHN0cnRvdGltZSgnKzIgZGF5cycpKTsKICAgICAgICAkZXhwZWN0ZWREYXRlID0gZGF0ZSgnbS1kLVknLCBzdHJ0b3RpbWUoJysxIGRheScpKTsKICAgICAgICAkdGhpcy0+cGxhY2VIb2xkQW5kR29Ub0hvbGRzU2NyZWVuKCRwYWdlLCBbJyNzdGFydERhdGUnID0+ICRmdXR1cmVEYXRlXSk7CgogICAgICAgIC8vIENvbmZpcm0gdGhhdCB0aGUgaG9sZCBpcyBmcm96ZW4sIGFzIGV4cGVjdGVkIChub3RlIHRoYXQgdGhlIGV4cGVjdGVkCiAgICAgICAgLy8gZGF0ZSBkaWZmZXJzIGZyb20gdGhlIGRhdGUgZW50ZXJlZCwgYmVjYXVzZSB0aGUgZGF0ZSBlbnRlcmVkIGluZGljYXRlcwogICAgICAgIC8vIHdoZW4gdGhlIGhvbGQgd2lsbCBzdGFydCwgYW5kIHRoZSBmcmVlemUgZW5kcyBvbiB0aGUgcHJldmlvdXMgZGF5KToKICAgICAgICAkZXhwZWN0ZWQgPSAiRnJvemVuICh0ZW1wb3JhcmlseSBzdXNwZW5kZWQpIHRocm91Z2ggJGV4cGVjdGVkRGF0ZSI7CiAgICAgICAgJGVsZW1lbnRUZXh0ID0gJHRoaXMtPmZpbmRDc3NBbmRHZXRUZXh0KCRwYWdlLCAnLm1lZGlhLWJvZHknKTsKICAgICAgICAkdGhpcy0+YXNzZXJ0VHJ1ZSgKICAgICAgICAgICAgZmFsc2UgIT09IHN0cnN0cigkZWxlbWVudFRleHQsICRleHBlY3RlZCksCiAgICAgICAgICAgICJNaXNzaW5nIGV4cGVjdGVkIHRleHQ6ICckZXhwZWN0ZWQnIGluICckZWxlbWVudFRleHQnIgogICAgICAgICk7CgogICAgICAgIHJldHVybiAkcGFnZTsKICAgIH0KCiAgICAvKioKICAgICAqIFRlc3QgY3JlYXRpbmcgYSBmcm96ZW4gaG9sZC4KICAgICAqCiAgICAgKiBAZGVwZW5kcyB0ZXN0UGxhY2VIb2xkCiAgICAgKgogICAgICogQHJldHVybiB2b2lkCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiB0ZXN0RnJvemVuSG9sZENyZWF0aW9uKCk6IHZvaWQKICAgIHsKICAgICAgICAkdGhpcy0+Y2hhbmdlQ29uZmlncygKICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgJ2NvbmZpZycgPT4gJHRoaXMtPmdldENvbmZpZ0luaU92ZXJyaWRlcygpLAogICAgICAgICAgICAgICAgJ0RlbW8nID0+ICR0aGlzLT5nZXREZW1vSW5pT3ZlcnJpZGVzKCksCiAgICAgICAgICAgIF0KICAgICAgICApOwoKICAgICAgICAkcGFnZSA9ICR0aGlzLT5zZXRVcEZyb3plbkhvbGQoKTsKCiAgICAgICAgLy8gQ29uZmlybSB0aGF0IG5vIGNhbmNlbCBidXR0b25zIGFwcGVhciwgc2luY2UgdGhleSBhcmUgbm90IGNvbmZpZ3VyZWQ6CiAgICAgICAgJHRoaXMtPmFzc2VydE51bGwoJHBhZ2UtPmZpbmQoJ2NzcycsICcjY2FuY2VsU2VsZWN0ZWQnKSk7CiAgICAgICAgJHRoaXMtPmFzc2VydE51bGwoJHBhZ2UtPmZpbmQoJ2NzcycsICcjY2FuY2VsQWxsJykpOwoKICAgICAgICAvLyBDb25maXJtIHRoYXQgdGhlcmUgYXJlIG5vIGVkaXQgY29udHJvbHMgb24gdGhlIHBhZ2UsIHNpbmNlIHdlIGRpZG4ndAogICAgICAgIC8vIGVuYWJsZSB0aGVtOgogICAgICAgICR0aGlzLT5hc3NlcnROdWxsKCRwYWdlLT5maW5kKCdjc3MnLCAnI3VwZGF0ZV9zZWxlY3RlZCcpKTsKICAgICAgICAkdGhpcy0+YXNzZXJ0TnVsbCgkcGFnZS0+ZmluZCgnY3NzJywgJy5ob2xkLWVkaXQnKSk7CiAgICB9CgogICAgLyoqCiAgICAgKiBUZXN0IGNyZWF0aW5nLCBhbmQgdGhlbiBlZGl0aW5nLCBhIGZyb3plbiBob2xkLgogICAgICoKICAgICAqIEBkZXBlbmRzIHRlc3RQbGFjZUhvbGQKICAgICAqCiAgICAgKiBAcmV0dXJuIHZvaWQKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIHRlc3RGcm96ZW5Ib2xkRWRpdGluZygpOiB2b2lkCiAgICB7CiAgICAgICAgJGRlbW9Db25maWcgPSAkdGhpcy0+Z2V0RGVtb0luaU92ZXJyaWRlcygpOwogICAgICAgICRkZW1vQ29uZmlnWydIb2xkcyddID0gWyd1cGRhdGVGaWVsZHMnID0+ICdmcm96ZW46ZnJvemVuVGhyb3VnaDpwaWNrVXBMb2NhdGlvbiddOwogICAgICAgICR0aGlzLT5jaGFuZ2VDb25maWdzKAogICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAnY29uZmlnJyA9PiAkdGhpcy0+Z2V0Q29uZmlnSW5pT3ZlcnJpZGVzKCksCiAgICAgICAgICAgICAgICAnRGVtbycgPT4gJGRlbW9Db25maWcsCiAgICAgICAgICAgIF0KICAgICAgICApOwoKICAgICAgICAkcGFnZSA9ICR0aGlzLT5zZXRVcEZyb3plbkhvbGQoKTsKCiAgICAgICAgLy8gQ29uZmlybSB0aGF0IG5vIGNhbmNlbCBidXR0b25zIGFwcGVhciwgc2luY2UgdGhleSBhcmUgbm90IGNvbmZpZ3VyZWQ6CiAgICAgICAgJHRoaXMtPmFzc2VydE51bGwoJHBhZ2UtPmZpbmQoJ2NzcycsICcjY2FuY2VsU2VsZWN0ZWQnKSk7CiAgICAgICAgJHRoaXMtPmFzc2VydE51bGwoJHBhZ2UtPmZpbmQoJ2NzcycsICcjY2FuY2VsQWxsJykpOwoKICAgICAgICAvLyBDb25maXJtIHRoYXQgdGhlcmUgYXJlIGVkaXQgY29udHJvbHMgb24gdGhlIHBhZ2U6CiAgICAgICAgJHRoaXMtPmFzc2VydE5vdE51bGwoJHBhZ2UtPmZpbmQoJ2NzcycsICcjdXBkYXRlX3NlbGVjdGVkJykpOwoKICAgICAgICAvLyBPcGVuIHRoZSBlZGl0IGRpYWxvZyBib3ggdXNpbmcgdGhlIGxpbms6CiAgICAgICAgJHRoaXMtPmNsaWNrQ3NzKCRwYWdlLCAnLmhvbGQtZWRpdCcpOwoKICAgICAgICAvLyBSZWxlYXNlIHRoZSBob2xkIGFuZCBjaGFuZ2UgdGhlIHBpY2t1cCBsb2NhdGlvbgogICAgICAgICR0aGlzLT5maW5kQ3NzQW5kU2V0VmFsdWUoJHBhZ2UsICcjZnJvemVuJywgJzAnKTsKICAgICAgICAkdGhpcy0+ZmluZENzc0FuZFNldFZhbHVlKCRwYWdlLCAnI3BpY2t1cF9sb2NhdGlvbicsICdBJyk7CiAgICAgICAgJHRoaXMtPmZpbmRDc3MoJHBhZ2UsICcjbW9kYWwgLmJ0bi5idG4tcHJpbWFyeScpLT5jbGljaygpOwoKICAgICAgICAvLyBDb25maXJtIHRoYXQgdGhlIHZhbHVlcyBoYXZlIGNoYW5nZWQKICAgICAgICAkdGhpcy0+d2FpdEZvclBhZ2VMb2FkKCRwYWdlKTsKICAgICAgICAkdGhpcy0+YXNzZXJ0VHJ1ZShmYWxzZSAhPT0gc3Ryc3RyKCRwYWdlLT5nZXRDb250ZW50KCksICdDYW1wdXMgQScpKTsKICAgICAgICAkdGhpcy0+YXNzZXJ0RmFsc2UoCiAgICAgICAgICAgIHN0cnN0cigkcGFnZS0+Z2V0Q29udGVudCgpLCAnRnJvemVuICh0ZW1wb3JhcmlseSBzdXNwZW5kZWQpIHRocm91Z2ggJykKICAgICAgICApOwogICAgfQoKICAgIC8qKgogICAgICogVGVzdCBlZGl0aW5nIHR3byBob2xkcyB3aXRoIGRpZmZlcmVudCBwaWNrdXAgbG9jYXRpb25zLgogICAgICoKICAgICAqIEBkZXBlbmRzIHRlc3RQbGFjZUhvbGQKICAgICAqCiAgICAgKiBAcmV0dXJuIHZvaWQKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIHRlc3RFZGl0aW5nRGlmZmVyZW50UGlja3VwTG9jYXRpb25zKCkKICAgIHsKICAgICAgICAkZGVtb0NvbmZpZyA9ICR0aGlzLT5nZXREZW1vSW5pT3ZlcnJpZGVzKCk7CiAgICAgICAgJGRlbW9Db25maWdbJ0hvbGRzJ10gPSBbJ3VwZGF0ZUZpZWxkcycgPT4gJ2Zyb3plbjpmcm96ZW5UaHJvdWdoOnBpY2tVcExvY2F0aW9uJ107CiAgICAgICAgJHRoaXMtPmNoYW5nZUNvbmZpZ3MoCiAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICdjb25maWcnID0+ICR0aGlzLT5nZXRDb25maWdJbmlPdmVycmlkZXMoKSwKICAgICAgICAgICAgICAgICdEZW1vJyA9PiAkZGVtb0NvbmZpZywKICAgICAgICAgICAgXQogICAgICAgICk7CgogICAgICAgIC8vIFBsYWNlIHRoZSBmaXJzdCBob2xkOgogICAgICAgICR0aGlzLT5zZXRVcEZyb3plbkhvbGQoKTsKCiAgICAgICAgLy8gUGxhY2UgdGhlIHNlY29uZCBob2xkOgogICAgICAgICRwYWdlID0gJHRoaXMtPmdvdG9SZWNvcmRCeUlkKCdkb2xsYXIkaWduL3NsYXNoY29tYm8nKTsKICAgICAgICAkdGhpcy0+cGxhY2VIb2xkQW5kR29Ub0hvbGRzU2NyZWVuKCRwYWdlLCBbJyNwaWNrVXBMb2NhdGlvbicgPT4gJ0MnXSk7CgogICAgICAgIC8vIE9wZW4gdGhlIGVkaXQgZGlhbG9nIGJveCB1c2luZyB0aGUgYnV0dG9uOgogICAgICAgICR0aGlzLT5jbGlja0NzcygkcGFnZSwgJy5jaGVja2JveC1zZWxlY3QtYWxsJyk7CiAgICAgICAgJHRoaXMtPmNsaWNrQ3NzKCRwYWdlLCAnI3VwZGF0ZV9zZWxlY3RlZCcpOwoKICAgICAgICAvLyBDb25maXJtIHRoYXQgdGhlIHBvcHVwIGNvbnRhaW5zIGEgd2FybmluZyBtZXNzYWdlIGFib3V0IG1pc21hdGNoZWQKICAgICAgICAvLyBwaWNrdXAgbG9jYXRpb25zOgogICAgICAgICRleHBlY3RlZE1zZyA9ICdTZWxlY3RlZCBob2xkcyBoYXZlIGRpZmZlcmVudCBvcHRpb25zIGZvciBwaWNrIHVwIGxvY2F0aW9uLiAnCiAgICAgICAgICAgIC4gJ0VkaXQgYSBzaW5nbGUgaG9sZCB0byBjaGFuZ2UgaXRzIHBpY2sgdXAgbG9jYXRpb24uJzsKICAgICAgICAkdGhpcy0+YXNzZXJ0U3RyaW5nQ29udGFpbnNTdHJpbmcoCiAgICAgICAgICAgICRleHBlY3RlZE1zZywKICAgICAgICAgICAgJHRoaXMtPmZpbmRDc3NBbmRHZXRUZXh0KCRwYWdlLCAnI21vZGFsIC5ob2xkLXBpY2t1cC1sb2NhdGlvbicpCiAgICAgICAgKTsKCiAgICAgICAgLy8gQ2xvc2UgdGhlIG1vZGFsOgogICAgICAgICR0aGlzLT5jbG9zZUxpZ2h0Ym94KCRwYWdlKTsKCiAgICAgICAgLy8gQ2hhbmdlIHRoZSBmaXJzdCBob2xkIHRvIGxvY2F0aW9uIEMgc28gaXQgbWF0Y2hlcyB0aGUgc2Vjb25kIG9uZToKICAgICAgICAkdGhpcy0+Y2xpY2tDc3MoJHBhZ2UsICcuaG9sZC1lZGl0Jyk7CiAgICAgICAgJHRoaXMtPmZpbmRDc3NBbmRTZXRWYWx1ZSgkcGFnZSwgJyNwaWNrdXBfbG9jYXRpb24nLCAnQycpOwogICAgICAgICR0aGlzLT5maW5kQ3NzKCRwYWdlLCAnI21vZGFsIC5idG4uYnRuLXByaW1hcnknKS0+Y2xpY2soKTsKCiAgICAgICAgLy8gTG9jYXRpb25zIHNob3VsZCBub3cgbWF0Y2g6CiAgICAgICAgJHRoaXMtPndhaXRGb3JQYWdlTG9hZCgkcGFnZSk7CiAgICAgICAgJHRoaXMtPmFzc2VydFRydWUoZmFsc2UgIT09IHN0cnN0cigkcGFnZS0+Z2V0Q29udGVudCgpLCAnQ2FtcHVzIEMnKSk7CiAgICAgICAgJHRoaXMtPmFzc2VydEZhbHNlKHN0cnN0cigkcGFnZS0+Z2V0Q29udGVudCgpLCAnQ2FtcHVzIEInKSk7CgogICAgICAgIC8vIFBsYWNlIGEgdGhpcmQgaG9sZDoKICAgICAgICAkcGFnZSA9ICR0aGlzLT5nb3RvUmVjb3JkQnlJZCgnZG9sbGFyJGlnbi9zbGFzaGNvbWJvJyk7CiAgICAgICAgJHRoaXMtPnBsYWNlSG9sZEFuZEdvVG9Ib2xkc1NjcmVlbigkcGFnZSwgWycjcGlja1VwTG9jYXRpb24nID0+ICdBJ10pOwoKICAgICAgICAvLyBVcGRhdGUgdGhlIHR3byBob2xkcyB0aGF0IGhhdmUgc2FtZSBwb3NzaWJsZSBwaWNrIHVwIGxvY2F0aW9ucyB0bwogICAgICAgIC8vIGNoYW5nZSB0aGUgcGlja3VwIGxvY2F0aW9ucyB0byBjYW1wdXMgQzoKICAgICAgICAkdGhpcy0+Y2xpY2tDc3MoJHBhZ2UsICcuY2hlY2tib3gtc2VsZWN0LWl0ZW0nLCAxMDAwLCAwKTsKICAgICAgICAkdGhpcy0+Y2xpY2tDc3MoJHBhZ2UsICcuY2hlY2tib3gtc2VsZWN0LWl0ZW0nLCAxMDAwLCAyKTsKICAgICAgICAkdGhpcy0+Y2xpY2tDc3MoJHBhZ2UsICcjdXBkYXRlX3NlbGVjdGVkJyk7CiAgICAgICAgJHRoaXMtPmZpbmRDc3NBbmRTZXRWYWx1ZSgkcGFnZSwgJyNwaWNrdXBfbG9jYXRpb24nLCAnQycpOwogICAgICAgICR0aGlzLT5maW5kQ3NzKCRwYWdlLCAnI21vZGFsIC5idG4uYnRuLXByaW1hcnknKS0+Y2xpY2soKTsKCiAgICAgICAgLy8gQ29uZmlybSB0aGF0IGl0IHdvcmtlZDoKICAgICAgICAkdGhpcy0+d2FpdEZvclBhZ2VMb2FkKCRwYWdlKTsKICAgICAgICAkdGhpcy0+YXNzZXJ0VHJ1ZShmYWxzZSAhPT0gc3Ryc3RyKCRwYWdlLT5nZXRDb250ZW50KCksICdDYW1wdXMgQycpKTsKICAgICAgICAkdGhpcy0+YXNzZXJ0RmFsc2Uoc3Ryc3RyKCRwYWdlLT5nZXRDb250ZW50KCksICdDYW1wdXMgQScpKTsKICAgICAgICAkdGhpcy0+YXNzZXJ0RmFsc2Uoc3Ryc3RyKCRwYWdlLT5nZXRDb250ZW50KCksICdDYW1wdXMgQicpKTsKICAgIH0KCiAgICAvKioKICAgICAqIFRlc3QgY3JlYXRpbmcsIGFuZCB0aGVuIGVkaXRpbmcsIGFuZCB0aGVuIGNhbmNlbGluZywgYSBmcm96ZW4gaG9sZC4KICAgICAqCiAgICAgKiBAZGVwZW5kcyB0ZXN0UGxhY2VIb2xkCiAgICAgKgogICAgICogQHJldHVybiB2b2lkCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiB0ZXN0RnJvemVuSG9sZEVkaXRpbmdXaXRoQ2FuY2VsbGF0aW9uKCk6IHZvaWQKICAgIHsKICAgICAgICAkY29uZmlnID0gJHRoaXMtPmdldENvbmZpZ0luaU92ZXJyaWRlcygpOwogICAgICAgICRjb25maWdbJ0NhdGFsb2cnXVsnY2FuY2VsX2hvbGRzX2VuYWJsZWQnXSA9IDE7CiAgICAgICAgJGRlbW9Db25maWcgPSAkdGhpcy0+Z2V0RGVtb0luaU92ZXJyaWRlcygpOwogICAgICAgICRkZW1vQ29uZmlnWydIb2xkcyddID0gWyd1cGRhdGVGaWVsZHMnID0+ICdmcm96ZW46ZnJvemVuVGhyb3VnaDpwaWNrVXBMb2NhdGlvbiddOwogICAgICAgICR0aGlzLT5jaGFuZ2VDb25maWdzKFsnY29uZmlnJyA9PiAkY29uZmlnLCAnRGVtbycgPT4gJGRlbW9Db25maWddKTsKCiAgICAgICAgJHBhZ2UgPSAkdGhpcy0+c2V0VXBGcm96ZW5Ib2xkKCk7CgogICAgICAgIC8vIE9wZW4gdGhlIGVkaXQgZGlhbG9nIGJveCB1c2luZyB0aGUgYnV0dG9uOgogICAgICAgICR0aGlzLT53YWl0Rm9yUGFnZUxvYWQoJHBhZ2UpOwogICAgICAgICR0aGlzLT5jbGlja0NzcygkcGFnZSwgJy5jaGVja2JveC1zZWxlY3QtYWxsJyk7CiAgICAgICAgJHRoaXMtPmNsaWNrQ3NzKCRwYWdlLCAnI3VwZGF0ZV9zZWxlY3RlZCcpOwoKICAgICAgICAvLyBSZXZpc2UgdGhlIGZyZWV6ZSBkYXRlOgogICAgICAgICRmdXR1cmVEYXRlID0gZGF0ZSgnbS1kLVknLCBzdHJ0b3RpbWUoJyszIGRheXMnKSk7CiAgICAgICAgJHRoaXMtPmZpbmRDc3NBbmRTZXRWYWx1ZSgkcGFnZSwgJyNmcm96ZW4nLCAnMScpOwogICAgICAgICR0aGlzLT5maW5kQ3NzQW5kU2V0VmFsdWUoJHBhZ2UsICcjZnJvemVuX3Rocm91Z2gnLCAkZnV0dXJlRGF0ZSk7CiAgICAgICAgJHRoaXMtPmZpbmRDc3MoJHBhZ2UsICcjbW9kYWwgLmJ0bi5idG4tcHJpbWFyeScpLT5jbGljaygpOwoKICAgICAgICAvLyBDb25maXJtIHRoYXQgdGhlIHZhbHVlcyBoYXZlIGNoYW5nZWQKICAgICAgICAkdGhpcy0+d2FpdEZvclBhZ2VMb2FkKCRwYWdlKTsKICAgICAgICAkZXhwZWN0ZWQgPSAiRnJvemVuICh0ZW1wb3JhcmlseSBzdXNwZW5kZWQpIHRocm91Z2ggJGZ1dHVyZURhdGUiOwogICAgICAgICRlbGVtZW50VGV4dCA9ICR0aGlzLT5maW5kQ3NzQW5kR2V0VGV4dCgkcGFnZSwgJy5tZWRpYS1ib2R5Jyk7CiAgICAgICAgJHRoaXMtPmFzc2VydFRydWUoCiAgICAgICAgICAgIGZhbHNlICE9PSBzdHJzdHIoJGVsZW1lbnRUZXh0LCAkZXhwZWN0ZWQpLAogICAgICAgICAgICAiTWlzc2luZyBleHBlY3RlZCB0ZXh0OiAnJGV4cGVjdGVkJyBpbiAnJGVsZW1lbnRUZXh0JyIKICAgICAgICApOwoKICAgICAgICAvLyBOb3cgY2FuY2VsIHRoZSBob2xkICh1c2luZyB0aGUgY2hlY2tib3hlcywgdG8gdGVzdCBhIHZhcmlhdGlvbiBvbgogICAgICAgIC8vIHdoYXQgd2UgZG8gaW4gdGhlIGNhbmNlbFByb2NlZHVyZSBtZXRob2QpCiAgICAgICAgJHRoaXMtPmNsaWNrQ3NzKCRwYWdlLCAnLmNoZWNrYm94LXNlbGVjdC1hbGwnKTsKICAgICAgICAkdGhpcy0+Y2xpY2tDc3MoJHBhZ2UsICcjY2FuY2VsU2VsZWN0ZWQnKTsKICAgICAgICAkdGhpcy0+Y2xpY2tCdXR0b25Hcm91cExpbmsoJHBhZ2UsICdZZXMnKTsKICAgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzKAogICAgICAgICAgICAnMSByZXF1ZXN0KHMpIHdlcmUgc3VjY2Vzc2Z1bGx5IGNhbmNlbGVkJywKICAgICAgICAgICAgJHRoaXMtPmZpbmRDc3NBbmRHZXRUZXh0KCRwYWdlLCAnLmFsZXJ0LmFsZXJ0LXN1Y2Nlc3MnKQogICAgICAgICk7CiAgICAgICAgJHRoaXMtPmFzc2VydE51bGwoJHBhZ2UtPmZpbmQoJ2NzcycsICdhLnRpdGxlJykpOwogICAgfQoKICAgIC8qKgogICAgICogVGVzdCBjcmVhdGUgYWNjb3VudCBwYXRoIHdoZW4gaW4gaG9sZHNfbW9kZSA9ICJhbGwiCiAgICAgKgogICAgICogSU1QT1JUQU5UOiB0aGlzIHRlc3QgdXNlcyBhbiBJRCB3aXRoIGEgc2xhc2ggaW4gaXQ7IGlmIGl0IGZhaWxzLCBlbnN1cmUKICAgICAqIHRoYXQgQXBhY2hlIGlzIGNvbmZpZ3VyZWQgd2l0aCAiQWxsb3dFbmNvZGVkU2xhc2hlcyBvbiIgaW5zaWRlIHRoZQogICAgICogVmlydHVhbEhvc3QgdXNlZCBmb3IgeW91ciBWdUZpbmQgdGVzdCBpbnN0YW5jZSEKICAgICAqCiAgICAgKiBAcmV0dXJuIHZvaWQKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIHRlc3RIb2xkc0FsbCgpOiB2b2lkCiAgICB7CiAgICAgICAgJGNvbmZpZyA9ICR0aGlzLT5nZXRDb25maWdJbmlPdmVycmlkZXMoKTsKICAgICAgICAkY29uZmlnWydDYXRhbG9nJ11bJ2hvbGRzX21vZGUnXSA9ICdhbGwnOwogICAgICAgICRjb25maWdbJ0NhdGFsb2cnXVsndGl0bGVfbGV2ZWxfaG9sZHNfbW9kZSddID0gJ2Fsd2F5cyc7CiAgICAgICAgJHRoaXMtPmNoYW5nZUNvbmZpZ3MoCiAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICdjb25maWcnID0+ICRjb25maWcsCiAgICAgICAgICAgICAgICAnRGVtbycgPT4gJHRoaXMtPmdldERlbW9JbmlPdmVycmlkZXMoKSwKICAgICAgICAgICAgXQogICAgICAgICk7CiAgICAgICAgJHBhZ2UgPSAkdGhpcy0+Z290b1JlY29yZEJ5SWQoJ2RvbGxhciRpZ24vc2xhc2hjb21ibycpOwogICAgICAgIC8vIE5vIGxvZ2luIGF0IHRvcAogICAgICAgICR0aGlzLT5hc3NlcnROdWxsKCRwYWdlLT5maW5kKCdjc3MnLCAnLmFsZXJ0LmFsZXJ0LWluZm8gYScpKTsKICAgICAgICAvLyBIb2xkIGxpbmtzIHNob3VsZCBiZSB2aXNpYmxlCiAgICAgICAgJGVsZW1lbnQgPSAkdGhpcy0+ZmluZENzcygkcGFnZSwgJ2EucGxhY2Vob2xkJyk7CiAgICAgICAgJGVsZW1lbnQtPmNsaWNrKCk7CiAgICAgICAgLy8gU2luY2Ugd2UncmUgbm90IGxvZ2dlZCBpbi4uLgogICAgICAgICR0aGlzLT5jbGlja0NzcygkcGFnZSwgJy5jcmVhdGVBY2NvdW50TGluaycpOwogICAgICAgICR0aGlzLT5maWxsSW5BY2NvdW50Rm9ybSgKICAgICAgICAgICAgJHBhZ2UsCiAgICAgICAgICAgIFsndXNlcm5hbWUnID0+ICd1c2VybmFtZTInLCAnZW1haWwnID0+ICd1MkB2dWZpbmQub3JnJ10KICAgICAgICApOwogICAgICAgICR0aGlzLT5jbGlja0NzcygkcGFnZSwgJ2lucHV0LmJ0bi5idG4tcHJpbWFyeScpOwoKICAgICAgICAvLyBUZXN0IHZhbGlkIHBhdHJvbiBsb2dpbgogICAgICAgICR0aGlzLT5zdWJtaXRDYXRhbG9nTG9naW5Gb3JtKCRwYWdlLCAnY2F0dXNlcicsICdjYXRwYXNzJyk7CgogICAgICAgIC8vIEdvIGRpcmVjdGx5IHRvIGhvbGRzIHNjcmVlbgogICAgICAgIC8vIFNldCBwaWNrdXAgbG9jYXRpb24gdG8gYSBub24tZGVmYXVsdCB2YWx1ZSBzbyB3ZSBjYW4gY29uZmlybSB0aGF0CiAgICAgICAgLy8gdGhlIGVsZW1lbnQgaXMgYmVpbmcgcGFzc2VkIHRocm91Z2ggY29ycmVjdGx5LCB0aGVuIHN1Ym1pdCBmb3JtOgogICAgICAgICR0aGlzLT53YWl0Rm9yUGFnZUxvYWQoJHBhZ2UpOwogICAgICAgICR0aGlzLT5maW5kQ3NzQW5kU2V0VmFsdWUoJHBhZ2UsICcjcGlja1VwTG9jYXRpb24nLCAnQicpOwogICAgICAgICR0aGlzLT5jbGlja0NzcygkcGFnZSwgJy5tb2RhbC1ib2R5IC5idG4uYnRuLXByaW1hcnknKTsKCiAgICAgICAgLy8gSWYgc3VjY2Vzc2Z1bCwgd2Ugc2hvdWxkIG5vdyBoYXZlIGEgbGluayB0byByZXZpZXcgdGhlIGhvbGQ6CiAgICAgICAgJHRoaXMtPndhaXRGb3JQYWdlTG9hZCgkcGFnZSk7CiAgICAgICAgJGxpbmsgPSAkdGhpcy0+ZmluZENzcygkcGFnZSwgJy5tb2RhbC1ib2R5IGEnKTsKICAgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzKCdZb3VyIEhvbGRzIGFuZCBSZWNhbGxzJywgJGxpbmstPmdldFRleHQoKSk7CiAgICAgICAgJGxpbmstPmNsaWNrKCk7CgogICAgICAgIC8vIE1ha2Ugc3VyZSB3ZSBhcnJpdmVkIHdoZXJlIHdlIGV4cGVjdGVkIHRvOgogICAgICAgICR0aGlzLT53YWl0Rm9yUGFnZUxvYWQoJHBhZ2UpOwogICAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMoCiAgICAgICAgICAgICdZb3VyIEhvbGRzIGFuZCBSZWNhbGxzJywKICAgICAgICAgICAgJHRoaXMtPmZpbmRDc3NBbmRHZXRUZXh0KCRwYWdlLCAnaDInKQogICAgICAgICk7CiAgICB9CgogICAgLyoqCiAgICAgKiBUZXN0IHBsYWNpbmcgYSBob2xkIHdpdGggbm8gdmFsaWQgcGljayB1cCBsb2NhdGlvbnMKICAgICAqCiAgICAgKiBAcmV0dXJuIHZvaWQKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIHRlc3RQbGFjZUhvbGRXaXRob3V0UGlja1VwTG9jYXRpb25zKCk6IHZvaWQKICAgIHsKICAgICAgICAkZGVtb0NvbmZpZyA9ICR0aGlzLT5nZXREZW1vSW5pT3ZlcnJpZGVzKCk7CiAgICAgICAgJGRlbW9Db25maWdbJ0hvbGRzJ11bJ2V4Y2x1ZGVQaWNrdXBMb2NhdGlvbnMnXSA9ICdBOkI6QzpEJzsKICAgICAgICAkdGhpcy0+Y2hhbmdlQ29uZmlncygKICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgJ2NvbmZpZycgPT4gJHRoaXMtPmdldENvbmZpZ0luaU92ZXJyaWRlcygpLAogICAgICAgICAgICAgICAgJ0RlbW8nID0+ICRkZW1vQ29uZmlnLAogICAgICAgICAgICBdCiAgICAgICAgKTsKCiAgICAgICAgLy8gQ3JlYXRlIGFjY291bnQgYW5kIGxvZyBpbiB0aGUgdXNlciBvbiB0aGUgcmVjb3JkIHBhZ2U6CiAgICAgICAgJHBhZ2UgPSAkdGhpcy0+Z290b1JlY29yZEJ5SWQoKTsKICAgICAgICAkZWxlbWVudCA9ICR0aGlzLT5maW5kQ3NzKCRwYWdlLCAnLmFsZXJ0LmFsZXJ0LWluZm8gYScpOwogICAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMoJ0xvZ2luIGZvciBob2xkIGFuZCByZWNhbGwgaW5mb3JtYXRpb24nLCAkZWxlbWVudC0+Z2V0VGV4dCgpKTsKICAgICAgICAkZWxlbWVudC0+Y2xpY2soKTsKICAgICAgICAkdGhpcy0+Y2xpY2tDc3MoJHBhZ2UsICcubW9kYWwtYm9keSAuY3JlYXRlQWNjb3VudExpbmsnKTsKICAgICAgICAkdGhpcy0+ZmlsbEluQWNjb3VudEZvcm0oCiAgICAgICAgICAgICRwYWdlLAogICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAndXNlcm5hbWUnID0+ICd1c2VybmFtZTMnLAogICAgICAgICAgICAgICAgJ2VtYWlsJyA9PiAndXNlcm5hbWUzQGlnbm9yZS5jb20nLAogICAgICAgICAgICBdCiAgICAgICAgKTsKICAgICAgICAkdGhpcy0+Y2xpY2tDc3MoJHBhZ2UsICdpbnB1dC5idG4uYnRuLXByaW1hcnknKTsKCiAgICAgICAgLy8gU3RhcnQgZXN0YWJsaXNoaW5nIGxpYnJhcnkgY2F0YWxvZyBwcm9maWxlCiAgICAgICAgJHRoaXMtPndhaXRGb3JQYWdlTG9hZCgkcGFnZSk7CiAgICAgICAgJHRoaXMtPnN1Ym1pdENhdGFsb2dMb2dpbkZvcm0oJHBhZ2UsICdjYXR1c2VyJywgJ2NhdHBhc3MnKTsKCiAgICAgICAgLy8gT3BlbiB0aGUgInBsYWNlIGhvbGQiIGRpYWxvZyBhbmQgY2hlY2sgZm9yIGVycm9yIG1lc3NhZ2U6CiAgICAgICAgJHRoaXMtPndhaXRGb3JQYWdlTG9hZCgkcGFnZSk7CiAgICAgICAgJHRoaXMtPmNsaWNrQ3NzKCRwYWdlLCAnYS5wbGFjZWhvbGQnKTsKICAgICAgICAkdGhpcy0+d2FpdEZvclBhZ2VMb2FkKCRwYWdlKTsKICAgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzKAogICAgICAgICAgICAnTm8gcGlja3VwIGxvY2F0aW9ucyBhdmFpbGFibGUnLAogICAgICAgICAgICAkdGhpcy0+ZmluZENzc0FuZEdldFRleHQoJHBhZ2UsICcuYWxlcnQuYWxlcnQtZGFuZ2VyJykKICAgICAgICApOwogICAgfQoKICAgIC8qKgogICAgICogVGVzdCBwbGFjaW5nIGEgaG9sZCBmb3IgYSBwcm94eSB1c2VyCiAgICAgKgogICAgICogQGRlcGVuZHMgdGVzdFBsYWNlSG9sZFdpdGhvdXRQaWNrVXBMb2NhdGlvbnMKICAgICAqCiAgICAgKiBAcmV0dXJuIHZvaWQKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIHRlc3RQbGFjZUhvbGRGb3JQcm94eVVzZXIoKTogdm9pZAogICAgewogICAgICAgICRkZW1vQ29uZmlnID0gJHRoaXMtPmdldERlbW9JbmlPdmVycmlkZXMoKTsKICAgICAgICAkZGVtb0NvbmZpZ1snUHJveGllZFVzZXJzJ10gPSBbCiAgICAgICAgICAgICd1c2VyMScgPT4gJ1Byb3h5IFVzZXIgMScsCiAgICAgICAgICAgICd1c2VyMicgPT4gJ1Byb3h5IFVzZXIgMicsCiAgICAgICAgXTsKICAgICAgICAkdGhpcy0+Y2hhbmdlQ29uZmlncygKICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgJ2NvbmZpZycgPT4gJHRoaXMtPmdldENvbmZpZ0luaU92ZXJyaWRlcygpLAogICAgICAgICAgICAgICAgJ0RlbW8nID0+ICRkZW1vQ29uZmlnLAogICAgICAgICAgICBdCiAgICAgICAgKTsKCiAgICAgICAgLy8gQ3JlYXRlIGFjY291bnQgYW5kIGxvZyBpbiB0aGUgdXNlciBvbiB0aGUgcmVjb3JkIHBhZ2U6CiAgICAgICAgJHBhZ2UgPSAkdGhpcy0+Z290b1JlY29yZEJ5SWQoKTsKICAgICAgICAkZWxlbWVudCA9ICR0aGlzLT5maW5kQ3NzKCRwYWdlLCAnLmFsZXJ0LmFsZXJ0LWluZm8gYScpOwogICAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMoJ0xvZ2luIGZvciBob2xkIGFuZCByZWNhbGwgaW5mb3JtYXRpb24nLCAkZWxlbWVudC0+Z2V0VGV4dCgpKTsKICAgICAgICAkZWxlbWVudC0+Y2xpY2soKTsKICAgICAgICAkdGhpcy0+ZmlsbEluTG9naW5Gb3JtKCRwYWdlLCAndXNlcm5hbWUzJywgJ3Rlc3QnKTsKICAgICAgICAkdGhpcy0+c3VibWl0TG9naW5Gb3JtKCRwYWdlKTsKCiAgICAgICAgLy8gUGxhY2UgdGhlIGhvbGQgd2l0aCB0aGUgcHJveHkgdXNlcjoKICAgICAgICAkdGhpcy0+cGxhY2VIb2xkQW5kR29Ub0hvbGRzU2NyZWVuKCRwYWdlLCBbJyNwcm94aWVkVXNlcicgPT4gJ3VzZXIyJ10pOwoKICAgICAgICAvLyBNYWtlIHN1cmUgdGhlIGl0ZW0gc2hvd3MgdGhlIGFwcHJvcHJpYXRlIHByb3h5IHVzZXI6CiAgICAgICAgJHRoaXMtPmFzc2VydEVxdWFscygKICAgICAgICAgICAgJ1Byb3h5IFVzZXIgMicsCiAgICAgICAgICAgICR0aGlzLT5maW5kQ3NzQW5kR2V0VGV4dCgkcGFnZSwgJy5ob2xkLXByb3hpZWQtZm9yJykKICAgICAgICApOwogICAgfQoKICAgIC8qKgogICAgICogU3RhbmRhcmQgdGVhcmRvd24gbWV0aG9kLgogICAgICoKICAgICAqIEByZXR1cm4gdm9pZAogICAgICovCiAgICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIHRlYXJEb3duQWZ0ZXJDbGFzcygpOiB2b2lkCiAgICB7CiAgICAgICAgc3RhdGljOjpyZW1vdmVVc2VycyhbJ3VzZXJuYW1lMScsICd1c2VybmFtZTInLCAndXNlcm5hbWUzJywgJ3VzZXJuYW1lNCcsICdmYWtldXNlcjEnXSk7CiAgICB9Cn0KIjtzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAG5hbWVzcGFjZXMiO2E6MTp7czoxNjoiXFZ1RmluZFRlc3RcTWluayI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjE2OiJcVnVGaW5kVGVzdFxNaW5rIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6NDoiTWluayI7fX1zOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAGluY2x1ZGVzIjthOjA6e31zOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAGZ1bmN0aW9ucyI7YTowOnt9czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBjb25zdGFudHMiO2E6MDp7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAY2xhc3NlcyI7YToxOntzOjI2OiJcVnVGaW5kVGVzdFxNaW5rXEhvbGRzVGVzdCI7TzozNToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18iOjEzOntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czoyNjoiXFZ1RmluZFRlc3RcTWlua1xIb2xkc1Rlc3QiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czo5OiJIb2xkc1Rlc3QiO31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AZG9jQmxvY2siO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jayI6Nzp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBzdW1tYXJ5IjtzOjQzOiJUZXN0IGNsYXNzIGZvciBob2xkcy1yZWxhdGVkIGZ1bmN0aW9uYWxpdHkuIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjcwOiJDbGFzcyBtdXN0IGJlIGZpbmFsIGR1ZSB0byB1c2Ugb2YgIm5ldyBzdGF0aWMoKSIgYnkgTGl2ZURhdGFiYXNlVHJhaXQuIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6NTp7aTowO086NDY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXEdlbmVyaWMiOjI6e3M6NzoiACoAbmFtZSI7czo4OiJjYXRlZ29yeSI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6NjoiVnVGaW5kIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19aToxO086NDY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXEdlbmVyaWMiOjI6e3M6NzoiACoAbmFtZSI7czo3OiJwYWNrYWdlIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czo1OiJUZXN0cyI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fWk6MjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xBdXRob3IiOjQ6e3M6NzoiACoAbmFtZSI7czo2OiJhdXRob3IiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtOO3M6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xBdXRob3IAYXV0aG9yTmFtZSI7czoxMToiRGVtaWFuIEthdHoiO3M6NTg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xBdXRob3IAYXV0aG9yRW1haWwiO3M6MjU6ImRlbWlhbi5rYXR6QHZpbGxhbm92YS5lZHUiO31pOjM7Tzo0NjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcR2VuZXJpYyI6Mjp7czo3OiIAKgBuYW1lIjtzOjc6ImxpY2Vuc2UiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjY5OiJodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvZ3BsLTIuMC5waHAgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX1pOjQ7Tzo0MzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcTGluayI6Mzp7czo3OiIAKgBuYW1lIjtzOjQ6ImxpbmsiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjk6Ik1haW4gUGFnZSI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXExpbmsAbGluayI7czoxODoiaHR0cHM6Ly92dWZpbmQub3JnIjt9fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbnRleHQiOjI6e3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29udGV4dABuYW1lc3BhY2UiO3M6MTU6IlZ1RmluZFRlc3RcTWluayI7czo1NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb250ZXh0AG5hbWVzcGFjZUFsaWFzZXMiO2E6Mjp7czoxNToiRG9jdW1lbnRFbGVtZW50IjtzOjM0OiJCZWhhdFxNaW5rXEVsZW1lbnRcRG9jdW1lbnRFbGVtZW50IjtzOjc6IkVsZW1lbnQiO3M6MjY6IkJlaGF0XE1pbmtcRWxlbWVudFxFbGVtZW50Ijt9fXM6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAGFic3RyYWN0IjtiOjA7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAGZpbmFsIjtiOjE7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAHBhcmVudCI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjM2OiJcVnVGaW5kVGVzdFxJbnRlZ3JhdGlvblxNaW5rVGVzdENhc2UiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoxMjoiTWlua1Rlc3RDYXNlIjt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAGltcGxlbWVudHMiO2E6MDp7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBjb25zdGFudHMiO2E6MDp7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBwcm9wZXJ0aWVzIjthOjA6e31zOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AbWV0aG9kcyI7YToyMjp7czo0NjoiXFZ1RmluZFRlc3RcTWlua1xIb2xkc1Rlc3Q6OnNldFVwQmVmb3JlQ2xhc3MoKSI7TzozNToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QiOjEyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZG9jQmxvY2siO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jayI6Nzp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBzdW1tYXJ5IjtzOjIyOiJTdGFuZGFyZCBzZXR1cCBtZXRob2QuIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjE6e2k6MDtPOjQ2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xSZXR1cm5fIjozOntzOjc6IgAqAG5hbWUiO3M6NjoicmV0dXJuIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6NzoiACoAdHlwZSI7TzozNjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFZvaWRfIjowOnt9fX1zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO3I6ODg7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TjtzOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVTdGFydCI7YjowO3M6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZUVuZCI7YjowO31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo0NjoiXFZ1RmluZFRlc3RcTWlua1xIb2xkc1Rlc3Q6OnNldFVwQmVmb3JlQ2xhc3MoKSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjE2OiJzZXRVcEJlZm9yZUNsYXNzIjt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFic3RyYWN0IjtiOjA7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZpbmFsIjtiOjA7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHN0YXRpYyI7YjoxO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAB2aXNpYmlsaXR5IjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkiOjE6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkAdmlzaWJpbGl0eSI7czo2OiJwdWJsaWMiO31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYXJndW1lbnRzIjthOjA6e31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjU3O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABlbmRMb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6NjA7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHJldHVyblR5cGUiO086MzY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xWb2lkXyI6MDp7fXM6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABoYXNSZXR1cm5CeVJlZmVyZW5jZSI7YjowO3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABtZXRhZGF0YSI7YTowOnt9fXM6NTE6IlxWdUZpbmRUZXN0XE1pbmtcSG9sZHNUZXN0OjpnZXRDb25maWdJbmlPdmVycmlkZXMoKSI7TzozNToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QiOjEyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZG9jQmxvY2siO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jayI6Nzp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBzdW1tYXJ5IjtzOjU5OiJHZXQgY29uZmlnLmluaSBvdmVycmlkZSBzZXR0aW5ncyBmb3IgdGVzdGluZyBJTFMgZnVuY3Rpb25zLiI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAdGFncyI7YToxOntpOjA7Tzo0NjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUmV0dXJuXyI6Mzp7czo3OiIAKgBuYW1lIjtzOjY6InJldHVybiI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjc6IgAqAHR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBcnJheV8iOjM6e3M6MTI6IgAqAHZhbHVlVHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE1peGVkXyI6MDp7fXM6MTA6IgAqAGtleVR5cGUiO047czoxNzoiACoAZGVmYXVsdEtleVR5cGUiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb21wb3VuZCI6Mjp7czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0eXBlcyI7YToyOntpOjA7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFN0cmluZ18iOjA6e31pOjE7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEludGVnZXIiOjA6e319czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0b2tlbiI7czoxOiJ8Ijt9fX19czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtyOjg4O3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NTE6IlxWdUZpbmRUZXN0XE1pbmtcSG9sZHNUZXN0OjpnZXRDb25maWdJbmlPdmVycmlkZXMoKSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjIxOiJnZXRDb25maWdJbmlPdmVycmlkZXMiO31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYWJzdHJhY3QiO2I6MDtzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZmluYWwiO2I6MDtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAc3RhdGljIjtiOjA7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHZpc2liaWxpdHkiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eSI6MTp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eQB2aXNpYmlsaXR5IjtzOjY6InB1YmxpYyI7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhcmd1bWVudHMiO2E6MDp7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6Njc7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGVuZExvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo3NjtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAcmV0dXJuVHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFycmF5XyI6Mzp7czoxMjoiACoAdmFsdWVUeXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTWl4ZWRfIjowOnt9czoxMDoiACoAa2V5VHlwZSI7TjtzOjE3OiIAKgBkZWZhdWx0S2V5VHlwZSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbXBvdW5kIjoyOntzOjUyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFnZ3JlZ2F0ZWRUeXBlAHR5cGVzIjthOjI6e2k6MDtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcU3RyaW5nXyI6MDp7fWk6MTtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcSW50ZWdlciI6MDp7fX1zOjUyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFnZ3JlZ2F0ZWRUeXBlAHRva2VuIjtzOjE6InwiO319czo1NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGhhc1JldHVybkJ5UmVmZXJlbmNlIjtiOjA7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAG1ldGFkYXRhIjthOjA6e319czo0NDoiXFZ1RmluZFRlc3RcTWlua1xIb2xkc1Rlc3Q6OmdvdG9SZWNvcmRCeUlkKCkiO086MzU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kIjoxMjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGRvY0Jsb2NrIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2siOjc6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAc3VtbWFyeSI7czo1MzoiTW92ZSB0aGUgY3VycmVudCBwYWdlIHRvIGEgcmVjb3JkIHdpdGggYSBkaXJlY3QgbGluay4iO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6Mjp7aTowO086NDQ6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFBhcmFtIjo2OntzOjc6IgAqAG5hbWUiO3M6NToicGFyYW0iO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjIzOiJJRCBvZiByZWNvcmQgdG8gYWNjZXNzLiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czo3OiIAKgB0eXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcU3RyaW5nXyI6MDp7fXM6NTg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xQYXJhbQB2YXJpYWJsZU5hbWUiO3M6MjoiaWQiO3M6NTY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xQYXJhbQBpc1ZhcmlhZGljIjtiOjA7czo1NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFBhcmFtAGlzUmVmZXJlbmNlIjtiOjA7fWk6MTtPOjQ2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xSZXR1cm5fIjozOntzOjc6IgAqAG5hbWUiO3M6NjoicmV0dXJuIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6NzoiACoAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8iOjE6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XwBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjM1OiJcQmVoYXRcTWlua1xFbGVtZW50XERvY3VtZW50RWxlbWVudCI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjE1OiJEb2N1bWVudEVsZW1lbnQiO319fX1zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO3I6ODg7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TjtzOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVTdGFydCI7YjowO3M6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZUVuZCI7YjowO31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo0NDoiXFZ1RmluZFRlc3RcTWlua1xIb2xkc1Rlc3Q6OmdvdG9SZWNvcmRCeUlkKCkiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoxNDoiZ290b1JlY29yZEJ5SWQiO31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYWJzdHJhY3QiO2I6MDtzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZmluYWwiO2I6MDtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAc3RhdGljIjtiOjA7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHZpc2liaWxpdHkiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eSI6MTp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eQB2aXNpYmlsaXR5IjtzOjk6InByb3RlY3RlZCI7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhcmd1bWVudHMiO2E6MTp7aTowO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQiOjU6e3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AG5hbWUiO3M6MjoiaWQiO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xTdHJpbmdfIjowOnt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAZGVmYXVsdCI7czoxMzoiJ3Rlc3RzYW1wbGUxJyI7czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAYnlSZWZlcmVuY2UiO2I6MDtzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABpc1ZhcmlhZGljIjtiOjA7fX1zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjg1O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABlbmRMb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6OTI7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHJldHVyblR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfIjoxOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8AZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czozNToiXEJlaGF0XE1pbmtcRWxlbWVudFxEb2N1bWVudEVsZW1lbnQiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoxNToiRG9jdW1lbnRFbGVtZW50Ijt9fXM6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABoYXNSZXR1cm5CeVJlZmVyZW5jZSI7YjowO3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABtZXRhZGF0YSI7YTowOnt9fXM6NTA6IlxWdUZpbmRUZXN0XE1pbmtcSG9sZHNUZXN0Ojpnb3RvUmVjb3JkV2l0aFNlYXJjaCgpIjtPOjM1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZCI6MTI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6NTc6Ik1vdmUgdGhlIGN1cnJlbnQgcGFnZSB0byBhIHJlY29yZCBieSBwZXJmb3JtaW5nIGEgc2VhcmNoLiI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAdGFncyI7YToyOntpOjA7Tzo0NDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUGFyYW0iOjY6e3M6NzoiACoAbmFtZSI7czo1OiJwYXJhbSI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MjM6IklEIG9mIHJlY29yZCB0byBhY2Nlc3MuIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjc6IgAqAHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xTdHJpbmdfIjowOnt9czo1ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFBhcmFtAHZhcmlhYmxlTmFtZSI7czoyOiJpZCI7czo1NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFBhcmFtAGlzVmFyaWFkaWMiO2I6MDtzOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUGFyYW0AaXNSZWZlcmVuY2UiO2I6MDt9aToxO086NDY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFJldHVybl8iOjM6e3M6NzoiACoAbmFtZSI7czo2OiJyZXR1cm4iO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czo3OiIAKgB0eXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XyI6MTp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6MzU6IlxCZWhhdFxNaW5rXEVsZW1lbnRcRG9jdW1lbnRFbGVtZW50IjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MTU6IkRvY3VtZW50RWxlbWVudCI7fX19fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7cjo4ODtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjUwOiJcVnVGaW5kVGVzdFxNaW5rXEhvbGRzVGVzdDo6Z290b1JlY29yZFdpdGhTZWFyY2goKSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjIwOiJnb3RvUmVjb3JkV2l0aFNlYXJjaCI7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhYnN0cmFjdCI7YjowO3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmaW5hbCI7YjowO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABzdGF0aWMiO2I6MDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6OToicHJvdGVjdGVkIjt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFyZ3VtZW50cyI7YToxOntpOjA7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudCI6NTp7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAbmFtZSI7czoyOiJpZCI7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFN0cmluZ18iOjA6e31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABkZWZhdWx0IjtzOjEzOiIndGVzdHNhbXBsZTEnIjtzOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABieVJlZmVyZW5jZSI7YjowO3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGlzVmFyaWFkaWMiO2I6MDt9fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MTAxO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABlbmRMb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MTEzO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAByZXR1cm5UeXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XyI6MTp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6MzU6IlxCZWhhdFxNaW5rXEVsZW1lbnRcRG9jdW1lbnRFbGVtZW50IjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MTU6IkRvY3VtZW50RWxlbWVudCI7fX1zOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAaGFzUmV0dXJuQnlSZWZlcmVuY2UiO2I6MDtzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbWV0YWRhdGEiO2E6MDp7fX1zOjM5OiJcVnVGaW5kVGVzdFxNaW5rXEhvbGRzVGVzdDo6cGxhY2VIb2xkKCkiO086MzU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kIjoxMjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGRvY0Jsb2NrIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2siOjc6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAc3VtbWFyeSI7czo3NzoiU3VwcG9ydCBtZXRob2QgdG8gcGxhY2UgYSBob2xkIGFuZCBjbGljayB0aHJvdWdoIHRvICJZb3VyIEhvbGRzIGFuZCBSZWNhbGxzLiIiO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6Mzp7aTowO086NDQ6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFBhcmFtIjo2OntzOjc6IgAqAG5hbWUiO3M6NToicGFyYW0iO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjEzOiJQYWdlIGVsZW1lbnQuIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjc6IgAqAHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfIjoxOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8AZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czoyNzoiXEJlaGF0XE1pbmtcRWxlbWVudFxFbGVtZW50IjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6NzoiRWxlbWVudCI7fX1zOjU4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUGFyYW0AdmFyaWFibGVOYW1lIjtzOjQ6InBhZ2UiO3M6NTY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xQYXJhbQBpc1ZhcmlhZGljIjtiOjA7czo1NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFBhcmFtAGlzUmVmZXJlbmNlIjtiOjA7fWk6MTtPOjQ0OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xQYXJhbSI6Njp7czo3OiIAKgBuYW1lIjtzOjU6InBhcmFtIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czo3MzoiQXNzb2NpYXRpdmUgYXJyYXkgb2Ygc2VsZWN0b3IgPT4gdmFsdWUgZm9yIGFkZGl0aW9uYWwKZm9ybSB2YWx1ZXMgdG8gc2V0LiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czo3OiIAKgB0eXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQXJyYXlfIjozOntzOjEyOiIAKgB2YWx1ZVR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xNaXhlZF8iOjA6e31zOjEwOiIAKgBrZXlUeXBlIjtOO3M6MTc6IgAqAGRlZmF1bHRLZXlUeXBlIjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29tcG91bmQiOjI6e3M6NTI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQWdncmVnYXRlZFR5cGUAdHlwZXMiO2E6Mjp7aTowO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xTdHJpbmdfIjowOnt9aToxO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xJbnRlZ2VyIjowOnt9fXM6NTI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQWdncmVnYXRlZFR5cGUAdG9rZW4iO3M6MToifCI7fX1zOjU4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUGFyYW0AdmFyaWFibGVOYW1lIjtzOjY6ImV4dHJhcyI7czo1NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFBhcmFtAGlzVmFyaWFkaWMiO2I6MDtzOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUGFyYW0AaXNSZWZlcmVuY2UiO2I6MDt9aToyO086NDY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFJldHVybl8iOjM6e3M6NzoiACoAbmFtZSI7czo2OiJyZXR1cm4iO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czo3OiIAKgB0eXBlIjtPOjM2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcVm9pZF8iOjA6e319fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7cjo4ODtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjM5OiJcVnVGaW5kVGVzdFxNaW5rXEhvbGRzVGVzdDo6cGxhY2VIb2xkKCkiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czo5OiJwbGFjZUhvbGQiO31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYWJzdHJhY3QiO2I6MDtzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZmluYWwiO2I6MDtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAc3RhdGljIjtiOjA7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHZpc2liaWxpdHkiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eSI6MTp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eQB2aXNpYmlsaXR5IjtzOjk6InByb3RlY3RlZCI7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhcmd1bWVudHMiO2E6Mjp7aTowO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQiOjU6e3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AG5hbWUiO3M6NDoicGFnZSI7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8iOjE6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XwBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjI3OiJcQmVoYXRcTWlua1xFbGVtZW50XEVsZW1lbnQiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czo3OiJFbGVtZW50Ijt9fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGRlZmF1bHQiO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAYnlSZWZlcmVuY2UiO2I6MDtzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABpc1ZhcmlhZGljIjtiOjA7fWk6MTtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50Ijo1OntzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABuYW1lIjtzOjY6ImV4dHJhcyI7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAdHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFycmF5XyI6Mzp7czoxMjoiACoAdmFsdWVUeXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTWl4ZWRfIjowOnt9czoxMDoiACoAa2V5VHlwZSI7TjtzOjE3OiIAKgBkZWZhdWx0S2V5VHlwZSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbXBvdW5kIjoyOntzOjUyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFnZ3JlZ2F0ZWRUeXBlAHR5cGVzIjthOjI6e2k6MDtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcU3RyaW5nXyI6MDp7fWk6MTtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcSW50ZWdlciI6MDp7fX1zOjUyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFnZ3JlZ2F0ZWRUeXBlAHRva2VuIjtzOjE6InwiO319czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAZGVmYXVsdCI7czoyOiJbXSI7czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAYnlSZWZlcmVuY2UiO2I6MDtzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABpc1ZhcmlhZGljIjtiOjA7fX1zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjEyNDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZW5kTG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjE0NTtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAcmV0dXJuVHlwZSI7TzozNjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFZvaWRfIjowOnt9czo1NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGhhc1JldHVybkJ5UmVmZXJlbmNlIjtiOjA7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAG1ldGFkYXRhIjthOjA6e319czo1NzoiXFZ1RmluZFRlc3RcTWlua1xIb2xkc1Rlc3Q6OnBsYWNlSG9sZEFuZEdvVG9Ib2xkc1NjcmVlbigpIjtPOjM1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZCI6MTI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6Nzc6IlN1cHBvcnQgbWV0aG9kIHRvIHBsYWNlIGEgaG9sZCBhbmQgY2xpY2sgdGhyb3VnaCB0byAiWW91ciBIb2xkcyBhbmQgUmVjYWxscy4iIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjM6e2k6MDtPOjQ0OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xQYXJhbSI6Njp7czo3OiIAKgBuYW1lIjtzOjU6InBhcmFtIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czoxMzoiUGFnZSBlbGVtZW50LiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czo3OiIAKgB0eXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XyI6MTp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6Mjc6IlxCZWhhdFxNaW5rXEVsZW1lbnRcRWxlbWVudCI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjc6IkVsZW1lbnQiO319czo1ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFBhcmFtAHZhcmlhYmxlTmFtZSI7czo0OiJwYWdlIjtzOjU2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUGFyYW0AaXNWYXJpYWRpYyI7YjowO3M6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xQYXJhbQBpc1JlZmVyZW5jZSI7YjowO31pOjE7Tzo0NDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUGFyYW0iOjY6e3M6NzoiACoAbmFtZSI7czo1OiJwYXJhbSI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6NzM6IkFzc29jaWF0aXZlIGFycmF5IG9mIHNlbGVjdG9yID0+IHZhbHVlIGZvciBhZGRpdGlvbmFsCmZvcm0gdmFsdWVzIHRvIHNldC4iO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6NzoiACoAdHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFycmF5XyI6Mzp7czoxMjoiACoAdmFsdWVUeXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTWl4ZWRfIjowOnt9czoxMDoiACoAa2V5VHlwZSI7TjtzOjE3OiIAKgBkZWZhdWx0S2V5VHlwZSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbXBvdW5kIjoyOntzOjUyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFnZ3JlZ2F0ZWRUeXBlAHR5cGVzIjthOjI6e2k6MDtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcU3RyaW5nXyI6MDp7fWk6MTtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcSW50ZWdlciI6MDp7fX1zOjUyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFnZ3JlZ2F0ZWRUeXBlAHRva2VuIjtzOjE6InwiO319czo1ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFBhcmFtAHZhcmlhYmxlTmFtZSI7czo2OiJleHRyYXMiO3M6NTY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xQYXJhbQBpc1ZhcmlhZGljIjtiOjA7czo1NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFBhcmFtAGlzUmVmZXJlbmNlIjtiOjA7fWk6MjtPOjQ2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xSZXR1cm5fIjozOntzOjc6IgAqAG5hbWUiO3M6NjoicmV0dXJuIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6NzoiACoAdHlwZSI7TzozNjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFZvaWRfIjowOnt9fX1zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO3I6ODg7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TjtzOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVTdGFydCI7YjowO3M6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZUVuZCI7YjowO31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo1NzoiXFZ1RmluZFRlc3RcTWlua1xIb2xkc1Rlc3Q6OnBsYWNlSG9sZEFuZEdvVG9Ib2xkc1NjcmVlbigpIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6Mjc6InBsYWNlSG9sZEFuZEdvVG9Ib2xkc1NjcmVlbiI7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhYnN0cmFjdCI7YjowO3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmaW5hbCI7YjowO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABzdGF0aWMiO2I6MDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6OToicHJvdGVjdGVkIjt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFyZ3VtZW50cyI7YToyOntpOjA7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudCI6NTp7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAbmFtZSI7czo0OiJwYWdlIjtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudAB0eXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XyI6MTp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6Mjc6IlxCZWhhdFxNaW5rXEVsZW1lbnRcRWxlbWVudCI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjc6IkVsZW1lbnQiO319czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAZGVmYXVsdCI7TjtzOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABieVJlZmVyZW5jZSI7YjowO3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGlzVmFyaWFkaWMiO2I6MDt9aToxO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQiOjU6e3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AG5hbWUiO3M6NjoiZXh0cmFzIjtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudAB0eXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQXJyYXlfIjozOntzOjEyOiIAKgB2YWx1ZVR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xNaXhlZF8iOjA6e31zOjEwOiIAKgBrZXlUeXBlIjtOO3M6MTc6IgAqAGRlZmF1bHRLZXlUeXBlIjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29tcG91bmQiOjI6e3M6NTI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQWdncmVnYXRlZFR5cGUAdHlwZXMiO2E6Mjp7aTowO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xTdHJpbmdfIjowOnt9aToxO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xJbnRlZ2VyIjowOnt9fXM6NTI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQWdncmVnYXRlZFR5cGUAdG9rZW4iO3M6MToifCI7fX1zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABkZWZhdWx0IjtzOjI6IltdIjtzOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABieVJlZmVyZW5jZSI7YjowO3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGlzVmFyaWFkaWMiO2I6MDt9fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MTU2O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABlbmRMb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MTcyO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAByZXR1cm5UeXBlIjtPOjM2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcVm9pZF8iOjA6e31zOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAaGFzUmV0dXJuQnlSZWZlcmVuY2UiO2I6MDtzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbWV0YWRhdGEiO2E6MDp7fX1zOjQzOiJcVnVGaW5kVGVzdFxNaW5rXEhvbGRzVGVzdDo6dGVzdFBsYWNlSG9sZCgpIjtPOjM1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZCI6MTI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6MTk6IlRlc3QgcGxhY2luZyBhIGhvbGQiO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6MTp7aTowO086NDY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFJldHVybl8iOjM6e3M6NzoiACoAbmFtZSI7czo2OiJyZXR1cm4iO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czo3OiIAKgB0eXBlIjtPOjM2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcVm9pZF8iOjA6e319fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7cjo4ODtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjQzOiJcVnVGaW5kVGVzdFxNaW5rXEhvbGRzVGVzdDo6dGVzdFBsYWNlSG9sZCgpIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MTM6InRlc3RQbGFjZUhvbGQiO31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYWJzdHJhY3QiO2I6MDtzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZmluYWwiO2I6MDtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAc3RhdGljIjtiOjA7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHZpc2liaWxpdHkiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eSI6MTp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eQB2aXNpYmlsaXR5IjtzOjY6InB1YmxpYyI7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhcmd1bWVudHMiO2E6MDp7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MTc5O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABlbmRMb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MjQ3O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAByZXR1cm5UeXBlIjtPOjM2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcVm9pZF8iOjA6e31zOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAaGFzUmV0dXJuQnlSZWZlcmVuY2UiO2I6MDtzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbWV0YWRhdGEiO2E6MDp7fX1zOjUwOiJcVnVGaW5kVGVzdFxNaW5rXEhvbGRzVGVzdDo6dGVzdFBsYWNlSG9sZFdpdGhTU08oKSI7TzozNToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QiOjEyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZG9jQmxvY2siO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jayI6Nzp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBzdW1tYXJ5IjtzOjI5OiJUZXN0IHBsYWNpbmcgYSBob2xkIHVzaW5nIFNTTyI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAdGFncyI7YToxOntpOjA7Tzo0NjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUmV0dXJuXyI6Mzp7czo3OiIAKgBuYW1lIjtzOjY6InJldHVybiI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjc6IgAqAHR5cGUiO086MzY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xWb2lkXyI6MDp7fX19czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtyOjg4O3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NTA6IlxWdUZpbmRUZXN0XE1pbmtcSG9sZHNUZXN0Ojp0ZXN0UGxhY2VIb2xkV2l0aFNTTygpIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MjA6InRlc3RQbGFjZUhvbGRXaXRoU1NPIjt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFic3RyYWN0IjtiOjA7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZpbmFsIjtiOjA7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHN0YXRpYyI7YjowO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAB2aXNpYmlsaXR5IjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkiOjE6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkAdmlzaWJpbGl0eSI7czo2OiJwdWJsaWMiO31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYXJndW1lbnRzIjthOjA6e31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjI1NDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZW5kTG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjI5NTtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAcmV0dXJuVHlwZSI7TzozNjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFZvaWRfIjowOnt9czo1NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGhhc1JldHVybkJ5UmVmZXJlbmNlIjtiOjA7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAG1ldGFkYXRhIjthOjA6e319czo1NjoiXFZ1RmluZFRlc3RcTWlua1xIb2xkc1Rlc3Q6OnRlc3RQbGFjZVNlY29uZEhvbGRXaXRoU1NPKCkiO086MzU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kIjoxMjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGRvY0Jsb2NrIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2siOjc6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAc3VtbWFyeSI7czo2MToiVGVzdCBwbGFjaW5nIGEgaG9sZCB1c2luZyBTU08gYW5kIGFuIGV4aXN0aW5nIGNhdGFsb2cgYWNjb3VudCI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAdGFncyI7YToyOntpOjA7Tzo0NjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcR2VuZXJpYyI6Mjp7czo3OiIAKgBuYW1lIjtzOjc6ImRlcGVuZHMiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjIwOiJ0ZXN0UGxhY2VIb2xkV2l0aFNTTyI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fWk6MTtPOjQ2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xSZXR1cm5fIjozOntzOjc6IgAqAG5hbWUiO3M6NjoicmV0dXJuIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6NzoiACoAdHlwZSI7TzozNjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFZvaWRfIjowOnt9fX1zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO3I6ODg7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TjtzOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVTdGFydCI7YjowO3M6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZUVuZCI7YjowO31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo1NjoiXFZ1RmluZFRlc3RcTWlua1xIb2xkc1Rlc3Q6OnRlc3RQbGFjZVNlY29uZEhvbGRXaXRoU1NPKCkiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoyNjoidGVzdFBsYWNlU2Vjb25kSG9sZFdpdGhTU08iO31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYWJzdHJhY3QiO2I6MDtzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZmluYWwiO2I6MDtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAc3RhdGljIjtiOjA7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHZpc2liaWxpdHkiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eSI6MTp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eQB2aXNpYmlsaXR5IjtzOjY6InB1YmxpYyI7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhcmd1bWVudHMiO2E6MDp7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MzA0O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABlbmRMb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MzQ2O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAByZXR1cm5UeXBlIjtPOjM2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcVm9pZF8iOjA6e31zOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAaGFzUmV0dXJuQnlSZWZlcmVuY2UiO2I6MDtzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbWV0YWRhdGEiO2E6MDp7fX1zOjY1OiJcVnVGaW5kVGVzdFxNaW5rXEhvbGRzVGVzdDo6dGVzdFBsYWNlSG9sZFdpdGhPcHRpb25hbFJlcXVpcmVkQnkoKSI7TzozNToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QiOjEyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZG9jQmxvY2siO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jayI6Nzp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBzdW1tYXJ5IjtzOjU1OiJUZXN0IHBsYWNpbmcgYSBob2xkIHdpdGggYW4gb3B0aW9uYWwgInJlcXVpcmVkIGJ5IiBkYXRlIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjE6e2k6MDtPOjQ2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xSZXR1cm5fIjozOntzOjc6IgAqAG5hbWUiO3M6NjoicmV0dXJuIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6NzoiACoAdHlwZSI7TzozNjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFZvaWRfIjowOnt9fX1zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO3I6ODg7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TjtzOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVTdGFydCI7YjowO3M6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZUVuZCI7YjowO31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo2NToiXFZ1RmluZFRlc3RcTWlua1xIb2xkc1Rlc3Q6OnRlc3RQbGFjZUhvbGRXaXRoT3B0aW9uYWxSZXF1aXJlZEJ5KCkiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czozNToidGVzdFBsYWNlSG9sZFdpdGhPcHRpb25hbFJlcXVpcmVkQnkiO31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYWJzdHJhY3QiO2I6MDtzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZmluYWwiO2I6MDtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAc3RhdGljIjtiOjA7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHZpc2liaWxpdHkiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eSI6MTp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eQB2aXNpYmlsaXR5IjtzOjY6InB1YmxpYyI7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhcmd1bWVudHMiO2E6MDp7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MzUzO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABlbmRMb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6NDIwO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAByZXR1cm5UeXBlIjtPOjM2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcVm9pZF8iOjA6e31zOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAaGFzUmV0dXJuQnlSZWZlcmVuY2UiO2I6MDtzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbWV0YWRhdGEiO2E6MDp7fX1zOjUwOiJcVnVGaW5kVGVzdFxNaW5rXEhvbGRzVGVzdDo6Y2xpY2tCdXR0b25Hcm91cExpbmsoKSI7TzozNToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QiOjEyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZG9jQmxvY2siO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jayI6Nzp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBzdW1tYXJ5IjtzOjQ1OiJDbGljayBhIGxpbmsgaW5zaWRlIGEgZHJvcCBkb3duIGJ1dHRvbiBncm91cC4iO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6Mzp7aTowO086NDQ6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFBhcmFtIjo2OntzOjc6IgAqAG5hbWUiO3M6NToicGFyYW0iO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjEzOiJQYWdlIGVsZW1lbnQuIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjc6IgAqAHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfIjoxOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8AZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czoyNzoiXEJlaGF0XE1pbmtcRWxlbWVudFxFbGVtZW50IjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6NzoiRWxlbWVudCI7fX1zOjU4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUGFyYW0AdmFyaWFibGVOYW1lIjtzOjQ6InBhZ2UiO3M6NTY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xQYXJhbQBpc1ZhcmlhZGljIjtiOjA7czo1NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFBhcmFtAGlzUmVmZXJlbmNlIjtiOjA7fWk6MTtPOjQ0OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xQYXJhbSI6Njp7czo3OiIAKgBuYW1lIjtzOjU6InBhcmFtIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czoyMjoiVGV4dCB0byBtYXRjaCBvbiBsaW5rLiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czo3OiIAKgB0eXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcU3RyaW5nXyI6MDp7fXM6NTg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xQYXJhbQB2YXJpYWJsZU5hbWUiO3M6NDoidGV4dCI7czo1NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFBhcmFtAGlzVmFyaWFkaWMiO2I6MDtzOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUGFyYW0AaXNSZWZlcmVuY2UiO2I6MDt9aToyO086NDY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFJldHVybl8iOjM6e3M6NzoiACoAbmFtZSI7czo2OiJyZXR1cm4iO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czo3OiIAKgB0eXBlIjtPOjM2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcVm9pZF8iOjA6e319fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7cjo4ODtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjUwOiJcVnVGaW5kVGVzdFxNaW5rXEhvbGRzVGVzdDo6Y2xpY2tCdXR0b25Hcm91cExpbmsoKSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjIwOiJjbGlja0J1dHRvbkdyb3VwTGluayI7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhYnN0cmFjdCI7YjowO3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmaW5hbCI7YjowO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABzdGF0aWMiO2I6MDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6OToicHJvdGVjdGVkIjt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFyZ3VtZW50cyI7YToyOntpOjA7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudCI6NTp7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAbmFtZSI7czo0OiJwYWdlIjtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudAB0eXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XyI6MTp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6Mjc6IlxCZWhhdFxNaW5rXEVsZW1lbnRcRWxlbWVudCI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjc6IkVsZW1lbnQiO319czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAZGVmYXVsdCI7TjtzOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABieVJlZmVyZW5jZSI7YjowO3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGlzVmFyaWFkaWMiO2I6MDt9aToxO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQiOjU6e3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AG5hbWUiO3M6NDoidGV4dCI7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFN0cmluZ18iOjA6e31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABkZWZhdWx0IjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGJ5UmVmZXJlbmNlIjtiOjA7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAaXNWYXJpYWRpYyI7YjowO319czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo0MzA7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGVuZExvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo0MzU7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHJldHVyblR5cGUiO086MzY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xWb2lkXyI6MDp7fXM6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABoYXNSZXR1cm5CeVJlZmVyZW5jZSI7YjowO3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABtZXRhZGF0YSI7YTowOnt9fXM6NDU6IlxWdUZpbmRUZXN0XE1pbmtcSG9sZHNUZXN0OjpjYW5jZWxQcm9jZWR1cmUoKSI7TzozNToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QiOjEyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZG9jQmxvY2siO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jayI6Nzp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBzdW1tYXJ5IjtzOjI1OiJUZXN0IGNhbmNlbGluZyBhIHJlcXVlc3QuIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjM6e2k6MDtPOjQ0OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xQYXJhbSI6Njp7czo3OiIAKgBuYW1lIjtzOjU6InBhcmFtIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czoxMzoiUGFnZSBlbGVtZW50LiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czo3OiIAKgB0eXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XyI6MTp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6Mjc6IlxCZWhhdFxNaW5rXEVsZW1lbnRcRWxlbWVudCI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjc6IkVsZW1lbnQiO319czo1ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFBhcmFtAHZhcmlhYmxlTmFtZSI7czo0OiJwYWdlIjtzOjU2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUGFyYW0AaXNWYXJpYWRpYyI7YjowO3M6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xQYXJhbQBpc1JlZmVyZW5jZSI7YjowO31pOjE7Tzo0NDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUGFyYW0iOjY6e3M6NzoiACoAbmFtZSI7czo1OiJwYXJhbSI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MjY6IlJlcXVlc3QgdHlwZSBiZWluZyB0ZXN0ZWQuIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjc6IgAqAHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xTdHJpbmdfIjowOnt9czo1ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFBhcmFtAHZhcmlhYmxlTmFtZSI7czo0OiJ0eXBlIjtzOjU2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUGFyYW0AaXNWYXJpYWRpYyI7YjowO3M6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xQYXJhbQBpc1JlZmVyZW5jZSI7YjowO31pOjI7Tzo0NjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUmV0dXJuXyI6Mzp7czo3OiIAKgBuYW1lIjtzOjY6InJldHVybiI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjc6IgAqAHR5cGUiO086MzY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xWb2lkXyI6MDp7fX19czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtyOjg4O3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NDU6IlxWdUZpbmRUZXN0XE1pbmtcSG9sZHNUZXN0OjpjYW5jZWxQcm9jZWR1cmUoKSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjE1OiJjYW5jZWxQcm9jZWR1cmUiO31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYWJzdHJhY3QiO2I6MDtzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZmluYWwiO2I6MDtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAc3RhdGljIjtiOjA7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHZpc2liaWxpdHkiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eSI6MTp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eQB2aXNpYmlsaXR5IjtzOjk6InByb3RlY3RlZCI7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhcmd1bWVudHMiO2E6Mjp7aTowO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQiOjU6e3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AG5hbWUiO3M6NDoicGFnZSI7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8iOjE6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XwBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjI3OiJcQmVoYXRcTWlua1xFbGVtZW50XEVsZW1lbnQiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czo3OiJFbGVtZW50Ijt9fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGRlZmF1bHQiO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAYnlSZWZlcmVuY2UiO2I6MDtzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABpc1ZhcmlhZGljIjtiOjA7fWk6MTtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50Ijo1OntzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABuYW1lIjtzOjQ6InR5cGUiO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xTdHJpbmdfIjowOnt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAZGVmYXVsdCI7TjtzOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABieVJlZmVyZW5jZSI7YjowO3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGlzVmFyaWFkaWMiO2I6MDt9fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6NDQ1O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABlbmRMb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6NDc2O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAByZXR1cm5UeXBlIjtPOjM2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcVm9pZF8iOjA6e31zOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAaGFzUmV0dXJuQnlSZWZlcmVuY2UiO2I6MDtzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbWV0YWRhdGEiO2E6MDp7fX1zOjQ0OiJcVnVGaW5kVGVzdFxNaW5rXEhvbGRzVGVzdDo6dGVzdENhbmNlbEhvbGQoKSI7TzozNToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QiOjEyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZG9jQmxvY2siO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jayI6Nzp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBzdW1tYXJ5IjtzOjIyOiJUZXN0IGNhbmNlbGluZyBhIGhvbGQuIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjI6e2k6MDtPOjQ2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xHZW5lcmljIjoyOntzOjc6IgAqAG5hbWUiO3M6NzoiZGVwZW5kcyI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MTM6InRlc3RQbGFjZUhvbGQiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX1pOjE7Tzo0NjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUmV0dXJuXyI6Mzp7czo3OiIAKgBuYW1lIjtzOjY6InJldHVybiI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjc6IgAqAHR5cGUiO086MzY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xWb2lkXyI6MDp7fX19czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtyOjg4O3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NDQ6IlxWdUZpbmRUZXN0XE1pbmtcSG9sZHNUZXN0Ojp0ZXN0Q2FuY2VsSG9sZCgpIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MTQ6InRlc3RDYW5jZWxIb2xkIjt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFic3RyYWN0IjtiOjA7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZpbmFsIjtiOjA7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHN0YXRpYyI7YjowO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAB2aXNpYmlsaXR5IjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkiOjE6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkAdmlzaWJpbGl0eSI7czo2OiJwdWJsaWMiO31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYXJndW1lbnRzIjthOjA6e31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjQ4NTtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZW5kTG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjUxMDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAcmV0dXJuVHlwZSI7TzozNjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFZvaWRfIjowOnt9czo1NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGhhc1JldHVybkJ5UmVmZXJlbmNlIjtiOjA7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAG1ldGFkYXRhIjthOjA6e319czo0NToiXFZ1RmluZFRlc3RcTWlua1xIb2xkc1Rlc3Q6OnNldFVwRnJvemVuSG9sZCgpIjtPOjM1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZCI6MTI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6MTExOiJDcmVhdGUgYSBmcm96ZW4gaG9sZCBhbmQgbmF2aWdhdGUgdG8gdGhlIGhvbGRzIGxpc3QuIFJldHVybiB0aGUgcGFnZQpvYmplY3QgdGhhdCB3YXMgc2V0IHVwIGR1cmluZyB0aGUgcHJvY2Vzcy4iO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6MTp7aTowO086NDY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFJldHVybl8iOjM6e3M6NzoiACoAbmFtZSI7czo2OiJyZXR1cm4iO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czo3OiIAKgB0eXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XyI6MTp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6MzU6IlxCZWhhdFxNaW5rXEVsZW1lbnRcRG9jdW1lbnRFbGVtZW50IjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MTU6IkRvY3VtZW50RWxlbWVudCI7fX19fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7cjo4ODtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjQ1OiJcVnVGaW5kVGVzdFxNaW5rXEhvbGRzVGVzdDo6c2V0VXBGcm96ZW5Ib2xkKCkiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoxNToic2V0VXBGcm96ZW5Ib2xkIjt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFic3RyYWN0IjtiOjA7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZpbmFsIjtiOjA7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHN0YXRpYyI7YjowO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAB2aXNpYmlsaXR5IjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkiOjE6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkAdmlzaWJpbGl0eSI7czo5OiJwcm90ZWN0ZWQiO31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYXJndW1lbnRzIjthOjA6e31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjUxODtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZW5kTG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjU0NDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAcmV0dXJuVHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8iOjE6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XwBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjM1OiJcQmVoYXRcTWlua1xFbGVtZW50XERvY3VtZW50RWxlbWVudCI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjE1OiJEb2N1bWVudEVsZW1lbnQiO319czo1NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGhhc1JldHVybkJ5UmVmZXJlbmNlIjtiOjA7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAG1ldGFkYXRhIjthOjA6e319czo1MjoiXFZ1RmluZFRlc3RcTWlua1xIb2xkc1Rlc3Q6OnRlc3RGcm96ZW5Ib2xkQ3JlYXRpb24oKSI7TzozNToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QiOjEyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZG9jQmxvY2siO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jayI6Nzp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBzdW1tYXJ5IjtzOjI4OiJUZXN0IGNyZWF0aW5nIGEgZnJvemVuIGhvbGQuIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjI6e2k6MDtPOjQ2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xHZW5lcmljIjoyOntzOjc6IgAqAG5hbWUiO3M6NzoiZGVwZW5kcyI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MTM6InRlc3RQbGFjZUhvbGQiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX1pOjE7Tzo0NjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUmV0dXJuXyI6Mzp7czo3OiIAKgBuYW1lIjtzOjY6InJldHVybiI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjc6IgAqAHR5cGUiO086MzY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xWb2lkXyI6MDp7fX19czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtyOjg4O3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NTI6IlxWdUZpbmRUZXN0XE1pbmtcSG9sZHNUZXN0Ojp0ZXN0RnJvemVuSG9sZENyZWF0aW9uKCkiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoyMjoidGVzdEZyb3plbkhvbGRDcmVhdGlvbiI7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhYnN0cmFjdCI7YjowO3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmaW5hbCI7YjowO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABzdGF0aWMiO2I6MDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6NjoicHVibGljIjt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFyZ3VtZW50cyI7YTowOnt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo1NTM7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGVuZExvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo1NzI7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHJldHVyblR5cGUiO086MzY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xWb2lkXyI6MDp7fXM6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABoYXNSZXR1cm5CeVJlZmVyZW5jZSI7YjowO3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABtZXRhZGF0YSI7YTowOnt9fXM6NTE6IlxWdUZpbmRUZXN0XE1pbmtcSG9sZHNUZXN0Ojp0ZXN0RnJvemVuSG9sZEVkaXRpbmcoKSI7TzozNToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QiOjEyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZG9jQmxvY2siO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jayI6Nzp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBzdW1tYXJ5IjtzOjQ3OiJUZXN0IGNyZWF0aW5nLCBhbmQgdGhlbiBlZGl0aW5nLCBhIGZyb3plbiBob2xkLiI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAdGFncyI7YToyOntpOjA7Tzo0NjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcR2VuZXJpYyI6Mjp7czo3OiIAKgBuYW1lIjtzOjc6ImRlcGVuZHMiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjEzOiJ0ZXN0UGxhY2VIb2xkIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19aToxO086NDY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFJldHVybl8iOjM6e3M6NzoiACoAbmFtZSI7czo2OiJyZXR1cm4iO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czo3OiIAKgB0eXBlIjtPOjM2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcVm9pZF8iOjA6e319fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7cjo4ODtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjUxOiJcVnVGaW5kVGVzdFxNaW5rXEhvbGRzVGVzdDo6dGVzdEZyb3plbkhvbGRFZGl0aW5nKCkiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoyMToidGVzdEZyb3plbkhvbGRFZGl0aW5nIjt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFic3RyYWN0IjtiOjA7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZpbmFsIjtiOjA7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHN0YXRpYyI7YjowO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAB2aXNpYmlsaXR5IjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkiOjE6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkAdmlzaWJpbGl0eSI7czo2OiJwdWJsaWMiO31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYXJndW1lbnRzIjthOjA6e31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjU4MTtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZW5kTG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjYxNTtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAcmV0dXJuVHlwZSI7TzozNjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFZvaWRfIjowOnt9czo1NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGhhc1JldHVybkJ5UmVmZXJlbmNlIjtiOjA7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAG1ldGFkYXRhIjthOjA6e319czo2NToiXFZ1RmluZFRlc3RcTWlua1xIb2xkc1Rlc3Q6OnRlc3RFZGl0aW5nRGlmZmVyZW50UGlja3VwTG9jYXRpb25zKCkiO086MzU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kIjoxMjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGRvY0Jsb2NrIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2siOjc6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAc3VtbWFyeSI7czo1NToiVGVzdCBlZGl0aW5nIHR3byBob2xkcyB3aXRoIGRpZmZlcmVudCBwaWNrdXAgbG9jYXRpb25zLiI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAdGFncyI7YToyOntpOjA7Tzo0NjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcR2VuZXJpYyI6Mjp7czo3OiIAKgBuYW1lIjtzOjc6ImRlcGVuZHMiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjEzOiJ0ZXN0UGxhY2VIb2xkIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19aToxO086NDY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFJldHVybl8iOjM6e3M6NzoiACoAbmFtZSI7czo2OiJyZXR1cm4iO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czo3OiIAKgB0eXBlIjtPOjM2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcVm9pZF8iOjA6e319fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7cjo4ODtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjY1OiJcVnVGaW5kVGVzdFxNaW5rXEhvbGRzVGVzdDo6dGVzdEVkaXRpbmdEaWZmZXJlbnRQaWNrdXBMb2NhdGlvbnMoKSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjM1OiJ0ZXN0RWRpdGluZ0RpZmZlcmVudFBpY2t1cExvY2F0aW9ucyI7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhYnN0cmFjdCI7YjowO3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmaW5hbCI7YjowO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABzdGF0aWMiO2I6MDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6NjoicHVibGljIjt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFyZ3VtZW50cyI7YTowOnt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo2MjQ7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGVuZExvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo2ODU7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHJldHVyblR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xNaXhlZF8iOjA6e31zOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAaGFzUmV0dXJuQnlSZWZlcmVuY2UiO2I6MDtzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbWV0YWRhdGEiO2E6MDp7fX1zOjY3OiJcVnVGaW5kVGVzdFxNaW5rXEhvbGRzVGVzdDo6dGVzdEZyb3plbkhvbGRFZGl0aW5nV2l0aENhbmNlbGxhdGlvbigpIjtPOjM1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZCI6MTI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6Njc6IlRlc3QgY3JlYXRpbmcsIGFuZCB0aGVuIGVkaXRpbmcsIGFuZCB0aGVuIGNhbmNlbGluZywgYSBmcm96ZW4gaG9sZC4iO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6Mjp7aTowO086NDY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXEdlbmVyaWMiOjI6e3M6NzoiACoAbmFtZSI7czo3OiJkZXBlbmRzIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czoxMzoidGVzdFBsYWNlSG9sZCI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fWk6MTtPOjQ2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xSZXR1cm5fIjozOntzOjc6IgAqAG5hbWUiO3M6NjoicmV0dXJuIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6NzoiACoAdHlwZSI7TzozNjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFZvaWRfIjowOnt9fX1zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO3I6ODg7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TjtzOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVTdGFydCI7YjowO3M6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZUVuZCI7YjowO31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo2NzoiXFZ1RmluZFRlc3RcTWlua1xIb2xkc1Rlc3Q6OnRlc3RGcm96ZW5Ib2xkRWRpdGluZ1dpdGhDYW5jZWxsYXRpb24oKSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjM3OiJ0ZXN0RnJvemVuSG9sZEVkaXRpbmdXaXRoQ2FuY2VsbGF0aW9uIjt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFic3RyYWN0IjtiOjA7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZpbmFsIjtiOjA7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHN0YXRpYyI7YjowO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAB2aXNpYmlsaXR5IjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkiOjE6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkAdmlzaWJpbGl0eSI7czo2OiJwdWJsaWMiO31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYXJndW1lbnRzIjthOjA6e31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjY5NDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZW5kTG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjczNDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAcmV0dXJuVHlwZSI7TzozNjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFZvaWRfIjowOnt9czo1NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGhhc1JldHVybkJ5UmVmZXJlbmNlIjtiOjA7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAG1ldGFkYXRhIjthOjA6e319czo0MjoiXFZ1RmluZFRlc3RcTWlua1xIb2xkc1Rlc3Q6OnRlc3RIb2xkc0FsbCgpIjtPOjM1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZCI6MTI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6NTE6IlRlc3QgY3JlYXRlIGFjY291bnQgcGF0aCB3aGVuIGluIGhvbGRzX21vZGUgPSAiYWxsIiI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czoxODY6IklNUE9SVEFOVDogdGhpcyB0ZXN0IHVzZXMgYW4gSUQgd2l0aCBhIHNsYXNoIGluIGl0OyBpZiBpdCBmYWlscywgZW5zdXJlCnRoYXQgQXBhY2hlIGlzIGNvbmZpZ3VyZWQgd2l0aCAiQWxsb3dFbmNvZGVkU2xhc2hlcyBvbiIgaW5zaWRlIHRoZQpWaXJ0dWFsSG9zdCB1c2VkIGZvciB5b3VyIFZ1RmluZCB0ZXN0IGluc3RhbmNlISI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjE6e2k6MDtPOjQ2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xSZXR1cm5fIjozOntzOjc6IgAqAG5hbWUiO3M6NjoicmV0dXJuIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6NzoiACoAdHlwZSI7TzozNjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFZvaWRfIjowOnt9fX1zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO3I6ODg7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TjtzOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVTdGFydCI7YjowO3M6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZUVuZCI7YjowO31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo0MjoiXFZ1RmluZFRlc3RcTWlua1xIb2xkc1Rlc3Q6OnRlc3RIb2xkc0FsbCgpIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MTI6InRlc3RIb2xkc0FsbCI7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhYnN0cmFjdCI7YjowO3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmaW5hbCI7YjowO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABzdGF0aWMiO2I6MDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6NjoicHVibGljIjt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFyZ3VtZW50cyI7YTowOnt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo3NDU7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGVuZExvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo3OTI7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHJldHVyblR5cGUiO086MzY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xWb2lkXyI6MDp7fXM6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABoYXNSZXR1cm5CeVJlZmVyZW5jZSI7YjowO3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABtZXRhZGF0YSI7YTowOnt9fXM6NjU6IlxWdUZpbmRUZXN0XE1pbmtcSG9sZHNUZXN0Ojp0ZXN0UGxhY2VIb2xkV2l0aG91dFBpY2tVcExvY2F0aW9ucygpIjtPOjM1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZCI6MTI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6NTE6IlRlc3QgcGxhY2luZyBhIGhvbGQgd2l0aCBubyB2YWxpZCBwaWNrIHVwIGxvY2F0aW9ucyI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAdGFncyI7YToxOntpOjA7Tzo0NjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUmV0dXJuXyI6Mzp7czo3OiIAKgBuYW1lIjtzOjY6InJldHVybiI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjc6IgAqAHR5cGUiO086MzY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xWb2lkXyI6MDp7fX19czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtyOjg4O3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NjU6IlxWdUZpbmRUZXN0XE1pbmtcSG9sZHNUZXN0Ojp0ZXN0UGxhY2VIb2xkV2l0aG91dFBpY2tVcExvY2F0aW9ucygpIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MzU6InRlc3RQbGFjZUhvbGRXaXRob3V0UGlja1VwTG9jYXRpb25zIjt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFic3RyYWN0IjtiOjA7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZpbmFsIjtiOjA7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHN0YXRpYyI7YjowO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAB2aXNpYmlsaXR5IjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkiOjE6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkAdmlzaWJpbGl0eSI7czo2OiJwdWJsaWMiO31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYXJndW1lbnRzIjthOjA6e31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjc5OTtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZW5kTG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjgzNztzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAcmV0dXJuVHlwZSI7TzozNjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFZvaWRfIjowOnt9czo1NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGhhc1JldHVybkJ5UmVmZXJlbmNlIjtiOjA7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAG1ldGFkYXRhIjthOjA6e319czo1NToiXFZ1RmluZFRlc3RcTWlua1xIb2xkc1Rlc3Q6OnRlc3RQbGFjZUhvbGRGb3JQcm94eVVzZXIoKSI7TzozNToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QiOjEyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZG9jQmxvY2siO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jayI6Nzp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBzdW1tYXJ5IjtzOjM2OiJUZXN0IHBsYWNpbmcgYSBob2xkIGZvciBhIHByb3h5IHVzZXIiO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6Mjp7aTowO086NDY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXEdlbmVyaWMiOjI6e3M6NzoiACoAbmFtZSI7czo3OiJkZXBlbmRzIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czozNToidGVzdFBsYWNlSG9sZFdpdGhvdXRQaWNrVXBMb2NhdGlvbnMiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX1pOjE7Tzo0NjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUmV0dXJuXyI6Mzp7czo3OiIAKgBuYW1lIjtzOjY6InJldHVybiI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjc6IgAqAHR5cGUiO086MzY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xWb2lkXyI6MDp7fX19czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtyOjg4O3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NTU6IlxWdUZpbmRUZXN0XE1pbmtcSG9sZHNUZXN0Ojp0ZXN0UGxhY2VIb2xkRm9yUHJveHlVc2VyKCkiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoyNToidGVzdFBsYWNlSG9sZEZvclByb3h5VXNlciI7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhYnN0cmFjdCI7YjowO3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmaW5hbCI7YjowO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABzdGF0aWMiO2I6MDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6NjoicHVibGljIjt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFyZ3VtZW50cyI7YTowOnt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo4NDY7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGVuZExvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo4NzY7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHJldHVyblR5cGUiO086MzY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xWb2lkXyI6MDp7fXM6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABoYXNSZXR1cm5CeVJlZmVyZW5jZSI7YjowO3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABtZXRhZGF0YSI7YTowOnt9fXM6NDg6IlxWdUZpbmRUZXN0XE1pbmtcSG9sZHNUZXN0Ojp0ZWFyRG93bkFmdGVyQ2xhc3MoKSI7TzozNToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QiOjEyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZG9jQmxvY2siO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jayI6Nzp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBzdW1tYXJ5IjtzOjI1OiJTdGFuZGFyZCB0ZWFyZG93biBtZXRob2QuIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjE6e2k6MDtPOjQ2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xSZXR1cm5fIjozOntzOjc6IgAqAG5hbWUiO3M6NjoicmV0dXJuIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6NzoiACoAdHlwZSI7TzozNjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFZvaWRfIjowOnt9fX1zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO3I6ODg7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TjtzOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVTdGFydCI7YjowO3M6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZUVuZCI7YjowO31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo0ODoiXFZ1RmluZFRlc3RcTWlua1xIb2xkc1Rlc3Q6OnRlYXJEb3duQWZ0ZXJDbGFzcygpIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MTg6InRlYXJEb3duQWZ0ZXJDbGFzcyI7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhYnN0cmFjdCI7YjowO3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmaW5hbCI7YjowO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABzdGF0aWMiO2I6MTtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6NjoicHVibGljIjt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFyZ3VtZW50cyI7YTowOnt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo4ODM7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGVuZExvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo4ODY7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHJldHVyblR5cGUiO086MzY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xWb2lkXyI6MDp7fXM6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABoYXNSZXR1cm5CeVJlZmVyZW5jZSI7YjowO3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABtZXRhZGF0YSI7YTowOnt9fX1zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AdXNlZFRyYWl0cyI7YTozOntzOjM5OiJcVnVGaW5kVGVzdFxGZWF0dXJlXERlbW9Ecml2ZXJUZXN0VHJhaXQiO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czozOToiXFZ1RmluZFRlc3RcRmVhdHVyZVxEZW1vRHJpdmVyVGVzdFRyYWl0IjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MTk6IkRlbW9Ecml2ZXJUZXN0VHJhaXQiO31zOjM3OiJcVnVGaW5kVGVzdFxGZWF0dXJlXExpdmVEYXRhYmFzZVRyYWl0IjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6Mzc6IlxWdUZpbmRUZXN0XEZlYXR1cmVcTGl2ZURhdGFiYXNlVHJhaXQiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoxNzoiTGl2ZURhdGFiYXNlVHJhaXQiO31zOjM3OiJcVnVGaW5kVGVzdFxGZWF0dXJlXFVzZXJDcmVhdGlvblRyYWl0IjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6Mzc6IlxWdUZpbmRUZXN0XEZlYXR1cmVcVXNlckNyZWF0aW9uVHJhaXQiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoxNzoiVXNlckNyZWF0aW9uVHJhaXQiO319czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo0NjtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AZW5kTG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjg4NztzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AbWV0YWRhdGEiO2E6MDp7fX19czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBpbnRlcmZhY2VzIjthOjA6e31zOjQxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAHRyYWl0cyI7YTowOnt9czo0MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBlbnVtcyI7YTowOnt9czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBtZXRhZGF0YSI7YTowOnt9fQ==";