From 788c57a61768975a367745e339a6004b4331e76a Mon Sep 17 00:00:00 2001 From: Gitea Action Date: Sat, 20 Jun 2026 13:38:05 +0000 Subject: [PATCH] DRIVE: v3.6.0 (2026-06-20T13:38) --- DRIVE/MANIFEST.txt | 30 + DRIVE/VERSION | 1 + DRIVE/sync-bundle-01.txt | 6388 ++++++++++++++++++++++ DRIVE/sync-bundle-02.txt | 10623 +++++++++++++++++++++++++++++++++++++ DRIVE/sync-entpacken.bat | 48 + 5 files changed, 17090 insertions(+) create mode 100644 DRIVE/MANIFEST.txt create mode 100644 DRIVE/VERSION create mode 100644 DRIVE/sync-bundle-01.txt create mode 100644 DRIVE/sync-bundle-02.txt create mode 100644 DRIVE/sync-entpacken.bat diff --git a/DRIVE/MANIFEST.txt b/DRIVE/MANIFEST.txt new file mode 100644 index 0000000..9dcff5e --- /dev/null +++ b/DRIVE/MANIFEST.txt @@ -0,0 +1,30 @@ +# 29 Dateien in 2 Bundles +sync-bundle-01.txt DRIVE_Start.bat +sync-bundle-01.txt DRIVE_Stop.bat +sync-bundle-01.txt VERSION +sync-bundle-01.txt css/icons/Chevron.png +sync-bundle-01.txt css/icons/Chevron_article_closed.png +sync-bundle-01.txt css/icons/Chevron_article_open.png +sync-bundle-01.txt css/icons/audio.png +sync-bundle-01.txt css/icons/bullet_list.gif +sync-bundle-01.txt css/icons/excel.png +sync-bundle-01.txt css/icons/faq.png +sync-bundle-01.txt css/icons/image.png +sync-bundle-01.txt css/icons/important.png +sync-bundle-01.txt css/icons/numbered_list.png +sync-bundle-01.txt css/icons/pdf.png +sync-bundle-01.txt css/icons/powerpoint.png +sync-bundle-01.txt css/icons/redo.png +sync-bundle-01.txt css/icons/table.png +sync-bundle-01.txt css/icons/undo.png +sync-bundle-01.txt css/icons/video.png +sync-bundle-01.txt css/icons/word.png +sync-bundle-01.txt css/images/drive_logo_day.png +sync-bundle-01.txt css/images/drive_logo_night.png +sync-bundle-01.txt data/config.json +sync-bundle-01.txt data/governance.json +sync-bundle-01.txt data/governance.template.json +sync-bundle-01.txt data/index.js +sync-bundle-01.txt favicon.ico +sync-bundle-02.txt index.html +sync-bundle-02.txt server.ps1 diff --git a/DRIVE/VERSION b/DRIVE/VERSION new file mode 100644 index 0000000..40c341b --- /dev/null +++ b/DRIVE/VERSION @@ -0,0 +1 @@ +3.6.0 diff --git a/DRIVE/sync-bundle-01.txt b/DRIVE/sync-bundle-01.txt new file mode 100644 index 0000000..5e8c07e --- /dev/null +++ b/DRIVE/sync-bundle-01.txt @@ -0,0 +1,6388 @@ +### SYNC-TRANSFER 1/2 -- mit sync-entpacken.bat entpacken +### Base64 +### FILE: DRIVE_Start.bat | 1807 +QGVjaG8gb2ZmCnNldGxvY2FsIGVuYWJsZWRlbGF5ZWRleHBhbnNpb24KY2hjcCA2NTAwMSA+bnVs +IDI+JjEKCjo6IEQuUi5JLlYuRS4gUG9ydGFsIHYxLjAKOjogU2VydmVyIHN0YXJ0ZXQgdW5zaWNo +dGJhciBpbSBIaW50ZXJncnVuZC4KOjogRGVyIFNlcnZlciBiZWVuZGV0IHNpY2ggYXV0b21hdGlz +Y2ggd2VubiBkZXIgQnJvd3Nlci1UYWIgZ2VzY2hsb3NzZW4gd2lyZC4KOjogU2NocmVpYnNjaHV0 +eiB3aXJkIHZvbiBzZXJ2ZXIucHMxIGltIGZpbmFsbHktQmxvY2sgd2llZGVyaGVyZ2VzdGVsbHQu +Cjo6Cjo6IHNlcnZlci5wczEgd2lyZCBpbiBlaW4gbG9rYWxlcyBUZW1wLVZlcnplaWNobmlzIGtv +cGllcnQgdW5kIHZvbiBkb3J0Cjo6IGF1c2dlZnVlaHJ0LCBkYW1pdCBkaWUgTmV0endlcmtkYXRl +aSBuaWNodCBnZXNwZXJydCB3aXJkIHVuZCBhbmRlcmUKOjogVXNlciBkYXMgU3lzdGVtIHBhcmFs +bGVsIHN0YXJ0ZW4ga29lbm5lbi4KCmNkIC9kICIlfmRwMCIKc2V0ICJEUklWRV9ST09UPSVjZCUi +Cgo6OiBQb3J0IDgwODAgcHJ1ZWZlbiAtIGVpZ2VuZW4gYWx0ZW4gUHJvemVzcyBnZ2YuIGJlZW5k +ZW4KbmV0c3RhdCAtYW4gMj5udWwgfCBmaW5kc3RyICI6ODA4MC4qTElTVEVOSU5HIiA+bnVsIDI+ +JjEKaWYgIWVycm9ybGV2ZWwhIGVxdSAwICgKICAgIGZvciAvZiAidG9rZW5zPTUiICUlYSBpbiAo +J25ldHN0YXQgLWFubyAyXj5udWwgXnwgZmluZHN0ciAiOjgwODAuKkxJU1RFTklORyInKSBkbyAo +CiAgICAgICAgc2V0ICJPTERfUElEPSUlYSIKICAgICkKICAgIGlmIGRlZmluZWQgT0xEX1BJRCAo +CiAgICAgICAgd21pYyBwcm9jZXNzIHdoZXJlICJQcm9jZXNzSWQ9IU9MRF9QSUQhIiBnZXQgQ29t +bWFuZExpbmUgMj5udWwgfCBmaW5kc3RyIC9pICJwb3dlcnNoZWxsIHNlcnZlciIgPm51bCAyPiYx +CiAgICAgICAgaWYgIWVycm9ybGV2ZWwhIGVxdSAwICgKICAgICAgICAgICAgdGFza2tpbGwgL1BJ +RCAhT0xEX1BJRCEgL0YgPm51bCAyPiYxCiAgICAgICAgICAgIHRpbWVvdXQgL3QgMiAvbm9icmVh +ayA+bnVsCiAgICAgICAgKQogICAgKQopCgo6OiBTY2hyZWlic2NodXR6IGF1ZmhlYmVuIGZ1ZXIg +ZGllIGFrdHVlbGxlIFNlcnZlci1TZXNzaW9uCmF0dHJpYiAtUiAiZGF0YVwqLmpzb24iIC9TIDI+ +bnVsCmF0dHJpYiAtUiAiZGF0YVwudHJhc2guanNvbiIgMj5udWwKYXR0cmliIC1SICJkYXRhXC5k +ZWxldGUtbG9nLmpzb24iIDI+bnVsCmF0dHJpYiAtUiAiZGF0YVwuc3RhcnRzZWl0ZS5odG1sIiAy +Pm51bAphdHRyaWIgLVIgImluZGV4Lmh0bWwiIDI+bnVsCgo6OiBzZXJ2ZXIucHMxIGxva2FsIGtv +cGllcmVuICh2ZXJoaW5kZXJ0IE5ldHp3ZXJrLUZpbGUtTG9jaykKOjogQWx0ZSBURU1QLUtvcGll +IHp1ZXJzdCBhdWZyYWV1bWVuIChmYWxscyBsZXR6dGVyIExhdWYgaGFydCBiZWVuZGV0IHd1cmRl +KQpzZXQgIkxPQ0FMX0RJUj0lVEVNUCVcRFJJVkVfU2VydmVyIgppZiBleGlzdCAiIUxPQ0FMX0RJ +UiEiIHJkIC9zIC9xICIhTE9DQUxfRElSISIgPm51bCAyPiYxCm1rZGlyICIhTE9DQUxfRElSISIK +Y29weSAvWSAiIURSSVZFX1JPT1QhXHNlcnZlci5wczEiICIhTE9DQUxfRElSIVxzZXJ2ZXIucHMx +IiA+bnVsIDI+JjEKCjo6IFBvd2VyU2hlbGwgdW5zaWNodGJhciBzdGFydGVuIC0gdm9uIGxva2Fs +ZXIgS29waWUsIFJvb3QtUGZhZCBhbHMgUGFyYW1ldGVyCnN0YXJ0ICIiIHBvd2Vyc2hlbGwgLVdp +bmRvd1N0eWxlIEhpZGRlbiAtRXhlY3V0aW9uUG9saWN5IEJ5cGFzcyAtRmlsZSAiIUxPQ0FMX0RJ +UiFcc2VydmVyLnBzMSIgLVJvb3RQYXRoICIhRFJJVkVfUk9PVCEiCg== +### FILE: DRIVE_Stop.bat | 2053 +QGVjaG8gb2ZmCnNldGxvY2FsIGVuYWJsZWRlbGF5ZWRleHBhbnNpb24KY2hjcCA2NTAwMSA+bnVs +IDI+JjEKdGl0bGUgRC5SLkkuVi5FLiAtIFNlcnZlciBiZWVuZGVuCgplY2hvLgplY2hvICAgPT09 +PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KZWNobyAgICAgRC5SLkku +Vi5FLiAtIFNlcnZlciBiZWVuZGVuCmVjaG8gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09 +PT09PT09PT09PT09PT09PQplY2hvLgoKc2V0ICJGT1VORD0wIgoKOjogRFJJVkUtU2VydmVyLVBy +b3plc3MgZmluZGVuOiBQb3dlclNoZWxsLVByb3plc3MgZGVyIHNlcnZlci5wczEgYXVzZnVlaHJ0 +Cjo6IEZ1bmt0aW9uaWVydCBhdWNoIGJlaSAtV2luZG93U3R5bGUgSGlkZGVuICh1bnNpY2h0YmFy +ZXMgRmVuc3RlcikKZm9yIC9mICJ0b2tlbnM9MiBkZWxpbXM9LCIgJSVwIGluICgnd21pYyBwcm9j +ZXNzIHdoZXJlICJDb21tYW5kTGluZSBsaWtlICclJXNlcnZlci5wczElJScgYW5kIE5hbWU9J3Bv +d2Vyc2hlbGwuZXhlJyIgZ2V0IFByb2Nlc3NJZCAvZm9ybWF0OmNzdiAyXj5udWwgXnwgZmluZHN0 +ciAvciAiWzAtOV0iJykgZG8gKAogICAgc2V0ICJQSUQ9JSVwIgogICAgc2V0ICJGT1VORD0xIgop +CgppZiAiIUZPVU5EISI9PSIxIiAoCiAgICBlY2hvICAgW0lORk9dICAgIERSSVZFLVNlcnZlciBn +ZWZ1bmRlbiAoUElEICFQSUQhXikKICAgIGVjaG8gICBbSU5GT10gICAgQmVlbmRlIFByb3plc3Mu +Li4KICAgIHRhc2traWxsIC9QSUQgIVBJRCEgL0YgPm51bCAyPiYxCiAgICB0aW1lb3V0IC90IDIg +L25vYnJlYWsgPm51bAoKICAgIDo6IFBydWVmZW4gb2IgUG9ydCBqZXR6dCBmcmVpIGlzdAogICAg +bmV0c3RhdCAtYW4gMj5udWwgfCBmaW5kc3RyICI6ODA4MC4qTElTVEVOSU5HIiA+bnVsIDI+JjEK +ICAgIGlmICFlcnJvcmxldmVsISBlcXUgMCAoCiAgICAgICAgZWNobyAgIFtXQVJOVU5HXSBQb3J0 +IDgwODAgaXN0IG5vY2ggYmVsZWd0IC0gd2FydGUuLi4KICAgICAgICB0aW1lb3V0IC90IDMgL25v +YnJlYWsgPm51bAogICAgKQogICAgZWNobyAgIFtPS10gICAgICBTZXJ2ZXIgYmVlbmRldC4gUG9y +dCA4MDgwIGlzdCBmcmVpLgogICAgZ290byA6ZG9uZQopCgo6OiBGYWxsYmFjazogS2VpbiBzZXJ2 +ZXIucHMxLVByb3plc3MsIGFiZXIgUG9ydCA4MDgwIGJlbGVndD8KbmV0c3RhdCAtYW4gMj5udWwg +fCBmaW5kc3RyICI6ODA4MC4qTElTVEVOSU5HIiA+bnVsIDI+JjEKaWYgIWVycm9ybGV2ZWwhIGVx +dSAwICgKICAgIGZvciAvZiAidG9rZW5zPTUiICUlYSBpbiAoJ25ldHN0YXQgLWFubyAyXj5udWwg +XnwgZmluZHN0ciAiOjgwODAuKkxJU1RFTklORyInKSBkbyAoCiAgICAgICAgc2V0ICJQT1JUX1BJ +RD0lJWEiCiAgICApCiAgICBlY2hvICAgW1dBUk5VTkddIEtlaW4gRFJJVkUtUHJvemVzcyBnZWZ1 +bmRlbiwgYWJlciBQb3J0IDgwODAKICAgIGVjaG8gICAgICAgICAgICAgaXN0IGR1cmNoIGVpbmVu +IGFuZGVyZW4gUHJvemVzcyBiZWxlZ3QgKFBJRCAhUE9SVF9QSUQhXikuCiAgICBlY2hvICAgICAg +ICAgICAgIEJpdHRlIG1hbnVlbGwgaW0gVGFzay1NYW5hZ2VyIHBydWVmZW4uCikgZWxzZSAoCiAg +ICBlY2hvICAgW09LXSAgICAgIEtlaW4gRFJJVkUtU2VydmVyIGFrdGl2LiBQb3J0IDgwODAgaXN0 +IGZyZWkuCikKCjo6IFRFTVAtS29waWUgZGVyIHNlcnZlci5wczEgYXVmcmFldW1lbgppZiBleGlz +dCAiJVRFTVAlXERSSVZFX1NlcnZlciIgKAogICAgcmQgL3MgL3EgIiVURU1QJVxEUklWRV9TZXJ2 +ZXIiID5udWwgMj4mMQogICAgZWNobyAgIFtPS10gICAgICBURU1QLUtvcGllIGJlcmVpbmlndC4K +KQoKOmRvbmUKZWNoby4KZWNobyAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 +PT09PT09PT09CmVjaG8gICAgIEZlcnRpZy4gRGllc2VzIEZlbnN0ZXIgc2NobGllc3N0IHNpY2gK +ZWNobyAgICAgaW4gNSBTZWt1bmRlbiBhdXRvbWF0aXNjaC4KZWNobyAgID09PT09PT09PT09PT09 +PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CnRpbWVvdXQgL3QgNSAvbm9icmVhayA+bnVs +Cg== +### FILE: VERSION | 6 +My42LjAK +### FILE: css/icons/Chevron.png | 148 +iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAACXBIWXMAAAsTAAALEwEAmpwYAAAA +RklEQVR4nO3WsQkAMQwEweu/LKmwd2wwOLZ+BlTAouQSAGDTSb7HrqeE1CkEAACuXly/PSWk7v8B +AIAh67enhNQpBAB+awHE9RApipkrkgAAAABJRU5ErkJggg== +### FILE: css/icons/Chevron_article_closed.png | 1699 +iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAAXNSR0IArs4c6QAAAIRlWElmTU0A +KgAAAAgABQESAAMAAAABAAEAAAEaAAUAAAABAAAASgEbAAUAAAABAAAAUgEoAAMAAAABAAIAAIdp +AAQAAAABAAAAWgAAAAAAAABIAAAAAQAAAEgAAAABAAOgAQADAAAAAQABAACgAgAEAAAAAQAAADKg +AwAEAAAAAQAAADIAAAAAhvHCqAAAAAlwSFlzAAALEwAACxMBAJqcGAAAAVlpVFh0WE1MOmNvbS5h +ZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9 +IlhNUCBDb3JlIDYuMC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9y +Zy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6 +YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZm +LzEuMC8iPgogICAgICAgICA8dGlmZjpPcmllbnRhdGlvbj4xPC90aWZmOk9yaWVudGF0aW9uPgog +ICAgICA8L3JkZjpEZXNjcmlwdGlvbj4KICAgPC9yZGY6UkRGPgo8L3g6eG1wbWV0YT4KGV7hBwAA +BFNJREFUaAXtWTtrFUEYjRHxVSg+CsXG4Cv4RIkRtVCwFcEfYBnTWVoJt7S10T6dREwhgiBoiFEQ +rIMKKROMUatEBBU952aOfH7MZO/OnQ0E8sHnzJzZc2ZmJ7tz7trTsxar8w68xLT/JHIceC8yFrm8 +mFYRbAoqqYUQv5oYJZeXkOseHoYEJzzhpIYCPulwNXN54hcvN0NxHsnFnDbqm1CfC/h5g6tK3ufQ +PygQZRXPXNpZdX1nl/X8wnU7kReRW5BjSAZxTvYycgfyIdIG+7ciLyG3I0eRjCre0lUN/bsHut+R +P5H7zRi7UP+B/I3sM7iqu1Ehj5OvwxO/o7LTHaHYAnIf8ixyHfIZksFJHkKeQloczXawP4cX6M0U +ByHLO89FbTNDHAn4IkrugI9cntdJtuvsCEW+IQeQx5CfkG+RjC/IE8iTSO7AONIGedwxXlOHZzWK +169AkW+vGSTfPopzqBDnW2qjQFPyrZbDMxLlq+/CpHiO2BB+w4Kmrv66PCNRtsqJ8u5+QFp7InzK +4Wi2Q/11eeIXL/lsTSO5mGtGnTgnSTxmW3J5Zojy1Vthwq+c9M2Ap2xLLs8NU67JE17244yRtbYk +Zls64Vk9I52ucqtzgye87AcnPxaEeILLzsRsSyc8qxdkmy1kPzi5A2Yo2hnZFh6GPqp4vBkxntf5 +1+5mRyhi7ccGtJ8GZZ78si0WD93ZPPEbKXnnaFu4KBpIRT8qwrkDPnJ5Xqfd7nZHKCLbcjTUX7eV +l2wLbclxZMq2DKAvxhP+Ff3SQ7X5kG2ZxVB8UBWyJXy7WVz9KV4KF6/R8g3UeRAOu1FSuC5L9adw +8Rorr0OZC3nvRhD+0eFqqr8uT/x2aX3Sfx1dNLiYWPCVulzk8pbTzOpL/SmkcA2S6k/h4jVS0lLw +js4j7UNd9bCneCm8kclb0RE0uJC7FkT9ccBbDlczxUvh4jVS8mDj3z/PCloTRR8qVQdiiid8r8RW +onyAQbgb991g9wLO/ljk8mJaXWO0HtwJ3nlrGmlVFgPOHfORy/M6xdotKHE3njjF2wHnMxKLFsDl +eF4vplEM45cS/bC6YFT51ppBcqJ8a/nohEeLsmKhDwmpn7r8YhKLXF5Mq2usFwpTSN51+/GBuD4+ +cMI+cnlep1ibX0i4CE6ak1MInwYQ+4mg/ro86RcvJ6HIhQw55ecB55eSWOTyYlpdY7IPfNBTn0z5 +pcSHtSt1eF6nWHsEStyNllN8lMB1WcquVPHEL1rKjvALif19zv/A4aFInIedD/LUX4fndYq1ZSu4 +KzZkRzyua3J54hcteSdlRw4bZeILSN7xfoOrKjtCI1iHJ37xUrbD24c7GInPTJUdGXUzquK5y8s0 +aTtmkZywtR18+8xFcEDtIE82ZjBgLKp45tKy1WHIcRETTpbnCPGUHcnluWHKNWVHOOlYxuwIR8/l +lZu5U3qBdmwBxMaRMTsCuCeXR+5arOo78BdsAaqlfQs6XQAAAABJRU5ErkJggg== +### FILE: css/icons/Chevron_article_open.png | 1722 +iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAABGdBTUEAALGPC/xhBQAAACBjSFJN +AAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAhGVYSWZNTQAqAAAACAAFARIA +AwAAAAEAAQAAARoABQAAAAEAAABKARsABQAAAAEAAABSASgAAwAAAAEAAgAAh2kABAAAAAEAAABa +AAAAAAAAAEgAAAABAAAASAAAAAEAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAMqADAAQAAAABAAAA +MgAAAACG8cKoAAAACXBIWXMAAAsTAAALEwEAmpwYAAACyGlUWHRYTUw6Y29tLmFkb2JlLnhtcAAA +AAAAPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iWE1QIENvcmUg +Ni4wLjAiPgogICA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIv +MjItcmRmLXN5bnRheC1ucyMiPgogICAgICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgog +ICAgICAgICAgICB4bWxuczp0aWZmPSJodHRwOi8vbnMuYWRvYmUuY29tL3RpZmYvMS4wLyIKICAg +ICAgICAgICAgeG1sbnM6ZXhpZj0iaHR0cDovL25zLmFkb2JlLmNvbS9leGlmLzEuMC8iPgogICAg +ICAgICA8dGlmZjpZUmVzb2x1dGlvbj43MjwvdGlmZjpZUmVzb2x1dGlvbj4KICAgICAgICAgPHRp +ZmY6UmVzb2x1dGlvblVuaXQ+MjwvdGlmZjpSZXNvbHV0aW9uVW5pdD4KICAgICAgICAgPHRpZmY6 +WFJlc29sdXRpb24+NzI8L3RpZmY6WFJlc29sdXRpb24+CiAgICAgICAgIDx0aWZmOk9yaWVudGF0 +aW9uPjE8L3RpZmY6T3JpZW50YXRpb24+CiAgICAgICAgIDxleGlmOlBpeGVsWERpbWVuc2lvbj41 +MDwvZXhpZjpQaXhlbFhEaW1lbnNpb24+CiAgICAgICAgIDxleGlmOkNvbG9yU3BhY2U+MTwvZXhp +ZjpDb2xvclNwYWNlPgogICAgICAgICA8ZXhpZjpQaXhlbFlEaW1lbnNpb24+NTA8L2V4aWY6UGl4 +ZWxZRGltZW5zaW9uPgogICAgICA8L3JkZjpEZXNjcmlwdGlvbj4KICAgPC9yZGY6UkRGPgo8L3g6 +eG1wbWV0YT4KZxgR6QAAAsxJREFUaAXtmL9PVEEQxwkWoo2NFtppMEKrhUZaWkPCH2CJdJZUJFfS +0kBvq7GhJBGCxMoawcRSErAVYoJGP1/em2Tvvd3l3t07PJKZ5Hv7Y2Z3v29udt7cjY25uAfcA+4B +94B7wD3Q5YEPjPbAIrjRpRmtgbiJo7huxaj9ZdJwSH8J3I4Z/qe5u5y7An4A46m2JqbcQWP9U/rr +4GHN+vImdLY4iIvxCjnWmJiRFM/BBvgDNP8bvAFPwGXJLAeFHM4Yi8PjkkDIt5wqmpjiESot/gVM +v0v/BRgHbcs1NnwJPgM77yf9VXAfhGL6cO68n1Sg1V3pgGNgdrpsOvQ6GFRussFr8A3Y/t/LuVu0 +MTG7ms4UC2gmatpiQvPSHwCz18N1wB3QVLSmA0IHae9eONj5mHfLNkNTHtFfBqmspbCaAx+BrWmS +GGIXWHtpz1TIios4iZuduU2/Jk3iM1w8wyC8lLnEMFuxtQucSyJTrOn7niprvQeWtdS+A89ASiZR +rIEwTX5iPF9CffOkbGSrNSnRWToz5CBO4tZYpllR9cYmc7mslXpx6SEOQe5FG4uKE9Yoaz0AA0vq +Ur5iZ5UMMdH8IvgC9st+zlZ7tZVE2CovqTSZ83JuR/v2wqy1x4K20nru7HPdoCEQC9ldds6F7IWk +zKDf6jeWGFKXsomt8aq2FrL65raqSo0to6jt5yUXezfkspYKQa3pVWL3VFxrYg+yg8b6SpNtHdim +g0KOyQeR4il4C/RyEwHl8lS4oIpKGAJfsVAGS2Wt2AbVMBQXcRI3iTm7GAWfMYVXv4GDeumm0roq +Yq9+FWJHYBl49YsTYhWtV784pp/MybJCpmm8+sUJXv3ihDb+1CjiKvM50tVvhndWVc1ETX6z52yz +hw5TOezqd5jco3vfY3YFVP9s1ovWfrOrJL8yMmj1e2Ue1Im6B9wD7gH3gHtgZDzwD0IpqxjP/C6R +AAAAAElFTkSuQmCC +### FILE: css/icons/audio.png | 1165 +iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAACXBIWXMAAAsTAAALEwEAmpwYAAAE +P0lEQVR4nO2ZWYgdVRCGz2TivhBnmOnz/6fvXAMjmok+DSIoShR3UMmTLyEPQgaJwYeEIEYcMBgU +EsEEEUTwQeOGGqKIGPFBQREfspCIS4iYRcweQSWaxMRQY/XQ6Zzu2337rnAL7sPtOlV9vq7qc+pU +G9OTnnSV9ANYQXI3gN8BvDw+Pn6B6SYZGxu7kORGkv8lfqtMN0EA+FAnfojknc65m+Q/gL2mGyHC +MLxBVTP02uki/oIguNq0GeJgEATXx/VReuX1R/IxtfkMwHWmEyDqAbHW3ii+NCVPkpyUyJoWvdgH +Y+lUCkSkWq3OIrmW5Cm1/2RkZOQq04JIzE0bWw9IJNba22LR2RaG4YBpEsSBLIiyICLOuRDAdoX5 +dmBg4ErTaAhr7Vgtm1og6vNzAG+TrPjGDA8PBwB+VF8bjTF9LYXIAzI4OHgFgCM67g+SD6f4qZA8 +rJFZ0lKIPCAiAEYAfKRjzwB4MsXXA6r/OwiC2WUg9ltr5xSxL/KOkFwum2fWUwfwmvp8Y/piGIaX +yDIH4JinPkr+CkMUBREBsEieOsl/Sd5s/C//cQGeXvJJrssBUDdEvasWgNUalV2jo6MXeXy+qPqX +IoOjeuHuFId7VX9LPRA+kCAILgPwrHNuoWRExmb7nd778aReKgjVHZGx0zepVqsXp0zijE5iRqNA +nHO3xyK9xzk3z2cH4CGd7D7f/UluFr219t48IKU2sxQfUhE/QvKHqJ4CcI/HtI/kzzLGOXeHx+9z +ar+yXSCR9JN8JXZ+GfTYrtLJrknqAMxX203tBome+lc6ZjKplLRR3ZdJnewjUXp2Aoi8M/frU9/i +0YWq+zWpGxoaulx9/9kRIEEQDOuYv5I63ecE5LjPFsA/U757IE1ILZKbUwrFrkitPgBf65ink0pr +7X2q+yLjZd/dCcvvq9HyG3pOf7Hld3XG8vtp2zZEABPRQQnACQB31dgQz9v9ST6v9s90QonyC4Bb +s0oUyj7hub8s19MlSlQ0Tv3JKBqlCdAoEFmJpGi01i7wVbaeovG8c4mU7+r3cFQ0rs1Zxse7h4Wk +nvQEsEYhdqaU8dG8101dkJSS2j6KTDNgShysTknv2OOvIkddOVj5GoL19HUbDkJymZ4MJRoTNY66 +r5uSXcVCMHlAwjB0Mf9yZl+a4uvBWPOhvka3wmwoCpMDRPaTAxoF+TA0P63TErWDSC42ZUS+PJH8 +oAhMnoiQXE/yzUqlwowG3U/qa4NphCjM+3lhym6q/L/e2qER+0YaeqZRIjAA3ssDUwbEOTcv1sTe +2pSOvOb2+lowjfisAOBjuWaaKDMBvJsFUxTEnvsp4QTJp0o1rQvCvJMGUxSE5KTabCJ5rWmxzNTP +AufAALg0erJFfDnnrjFtFHln3opgpKqNnf6+N10m/VI6JOs0AE+YLpQ+ko9KFAD8BuAFSZd2T6on +PTHF5Syr23bXxF91+QAAAABJRU5ErkJggg== +### FILE: css/icons/bullet_list.gif | 8925 +R0lGODlhMgAyAPcAAA0NDe/v7/////7+/g8PDwwMDAgICO3t7QAAAA4ODu7u7ujo6AQEBAcHB0hI +SEdHRz09Pezs7PDw8AUFBTw8PDs7OxgYGPn5+efn5wMDAxoaGjAwMBYWFhEREfT09FRUVFNTU0lJ +Sfj4+Pf39+Pj497e3uXl5fr6+vv7+zo6OsnJycrKyjY2NjIyMhUVFb+/v8bGxsPDwyMjI3l5eSIi +Inh4eHV1dXR0dDExMf39/fz8/ISEhIWFhXp6en5+frKysrW1tQoKCgICAgsLC7Gxsbe3t7a2tuvr +6ycnJ9ra2iQkJCkpKR8fHx4eHtHR0dfX1/Pz89XV1SUlJWJiYlhYWCgoKGFhYVdXV/X19fHx8QYG +BrOzs2pqarS0tExMTEtLS6urq6ioqK+vr2tra8DAwBkZGdnZ2YuLi4qKihAQECYmJl9fXysrK2Rk +ZGNjY7u7u5ycnLi4uCEhITQ0NJeXl5aWlt/f393d3c/Pz+Tk5IKCgtDQ0GdnZzU1NU1NTcXFxczM +zB0dHXx8fHt7e2VlZSoqKmxsbHFxcVpaWkRERKmpqeLi4oCAgF5eXqampvb29m1tbZqamuHh4ZWV +lW5ubpGRkWZmZsjIyJ2dnZCQkM7OzhISEqysrMfHx62traqqqs3NzZubm/Ly8q6urubm5kBAQEZG +RllZWVtbW1JSUk5OTqKiopKSkqSkpNLS0o+Pj9PT09bW1oyMjJiYmJmZmUpKStjY2ImJiYiIiNzc +3Nvb28TExJSUlD4+Pp6enpOTk8LCwkFBQUVFRcvLy2hoaJ+fnz8/PxQUFGBgYFVVVQkJCRwcHC8v +L4eHh4aGhgEBAS4uLgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH/C05FVFNDQVBFMi4wAwEA +AAAh+QQEEQD/ACwAAAAAMgAyAAAF/6AgjmRpnmiqrmzrvnAsz+1gD3Q+4iWvx7xDIHAQ4W7IpHLJ +vJUeBgLB4BD4fqxgA1EoIAwRkWJILpvPaLTCKAgkCotFISERVCYEgH7P7/v/fAQMFDxucHJ0AhAM +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 +### FILE: css/icons/excel.png | 857 +iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAACXBIWXMAAAsTAAALEwEAmpwYAAAD +C0lEQVR4nO2aT4hNURzHj/eIsaEm75zv95zXrdcjMruXBSkpaQopYhbKjiwwWaEUK2bLxmoWJqUU +KQtESVGUxaRmpRDRzMKUfxNGQ4c7uc6cO+9P9717u963zuLdc/r9fp/77vn3O0eI9qpAchXJvSTP +kbxNchzAI5FV1Wq1RVLKtVrr/STPA7gL4D3Jn74isqAgCJZrrTdrrY8BuATgGclpT8AzAJ4DuArg +pFKqPzWQcrlMklsADJIcITlmA/QEPR3WjQA4TnIHyV7XXidAiqVSqWIDAHAGwE37Pcd8Gp9IPg2D +HgSw0RjT04iTtoEAOALgCYCpmKAnSN4hOURywHZe24lb9ddOkO+RoF+QvEbyFMntxhidpK9qtbo4 +rvO3UgC8tv3ut/HZh7YDiw6MbEmCMIT5B0R0SEn6Y9RWF6RFdUE86oIkoXprL9YZpXy25v7IIwjJ +Xq31HqdsiwvQGFN120spS3EgSb4UUcdwEcCo+0aUUut8Ru0ew2k7ZifALIAIuxj0rHSvu+2UUrtc +YLvMr+u8UyBWdi/hBDkjpewTf1UMl+/RNpdFjFIDIWk3JJ/jAgVwwKn7YPcwmQOxInnaCfaH1npl +EARL7KItWgfgqMjq8GuM6SH50jF6geQhB2JUCLEwsyBWSqndjtEJAI+jfYfkBlFHqX5aswp3it43 +BWBYNKBMgEgp+3zZEgCTSqkVTTtPCwTAagBfPSBTNnHRtPOUQAokH87TEW817TwNEACHnX/BZhIn +nWc7G3WeyqjFP5PiR8foAICLzrNXAJZmGeSGZ74ohFnIL46zs42AiATEZkDCpJzbubdG6oecum9K +qTWZAqlUKssAvHUCvR9tY/Nhnqz7AyHEgsyAABj2ZNdrnnYnPP/avkyAKKU2uXsRAFfi1mIA3jgw +477sZRog/QAORosdveYxut5tbyfQ1EHapVSH3ySVOxCRtC12QVpTF+S/Awk6cPQW9Zf40Rs6eBia +NAiih6F2w5SL4+ncXBjI4xWOfF+qyfU1J9G45lw8A/AOwL2kPf0ClkicrrA3wY4AAAAASUVORK5C +YII= +### FILE: css/icons/faq.png | 808 +iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAACXBIWXMAAAsTAAALEwEAmpwYAAAC +2klEQVR4nOWayWsUQRjFfy6oEQOKiAlmDHjJQTGiXgLeEhH04MF/QImCevGmBy+ioFc9iAtCQIJg +EgiCYMQNFREFBc3FXALiguKCk4CCUUsaXkHRjkv3fF2TxgdFumqq3qs3XdtXE7BFBRgCJgBXcJoA +hoEOCjDxIYIBl0ofpW2GIREPAC0UjxZgMNA0gx9OMUx4tEqziiH8q44NZ6373xtZqgmbpFURdc0J +twZteyPqmhMeBd4Bo8DpiLrmhDeBO1pKH0fUNSWcpWX7LHAY+Ao0RdA1J1ytNnuBbXruiqBrTrgr +6PwKPe+LoGtOeE5tngKP9NwfQdeccFTHizNKVWAsgq4pYTPwHRgJyq4CP4DFBeqaE/aofrKPeBxT +2cYCdc0JuzWcwlWqS2XdBerGJ8yjW2+I+gthRDivaxGiNjqwemMZog6LZ1ACRaM16Hu/5TfZoZjC +GaX7f7hUuBfUewG0W4/tit5s1cjMK6Czho7//BSwLF04ndAMXFG/JoHNqc9r9jmPkZXAXeAL8ATY +kKOzf9OdA5xXneR4v8PayELgpVa645pjydxYks3HP+nOAI4EdQ+pzMTI/iCGSHBQ+d3ZfGTS7QWm +VL/Pysgt1fcryjrlL2XgyKO7qcaGXRfhuOZGONRcjng7z9xco5XMxMhn3Xp4zFb75xk7lXe1rAAP +gWv1En5S8piv9qULiJ4B34C5wTfkd+Iidc0JR1R/vfJblD9ZsK454Z7goDYTuKx8EvGVykiTbj2c +Vi+/thetWwjhIt0M3lbb5LiyE1hQNiPp28IBvZ3kJ4LSGvFYTjaYG3nbwBA13I/qxoUGhqgXLYnb +dSx3wcSthYo2PWeU3gNtGKNNYePvxm1n6rBWT6rqTZibCFHLSI/GclJ+Q6fdaQ+XMrJdYabTEjuP +ksAFRg7oZjzJn1CISdmM9OnvVM6fjBsOF6RJnWxLCaf0GlhLiXEdeGD9/08x8BOx1N9Cc0hYMwAA +AABJRU5ErkJggg== +### FILE: css/icons/image.png | 588 +iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAACXBIWXMAAAsTAAALEwEAmpwYAAAB +/klEQVR4nO2YzUrDQBSFR0Hwd1Xi5Jwp7QO4EOnCvT+4EUEfwseoP7jQB/AFfAahuJa6V8GCCrpy +oWvBili5MIFQmsZqUpM4B4aSW5K539yTuUmUcnJy+h8i2SnCUIUDUTkVHUjGRAeSMdGBpCQAkwD2 +AdwDaNvf3XK5PJEbEEkWwEWv/gCg2Q8mUyAA9mweDySXtdZTJFdIPtr4Tl5A7iUHY8xSOG5hpCp3 +eQFpSw6e502H46VSacaCvCUGorWeNcbMqxQrQnK5K75qQW4TAREIktckb6rV6niSEDbhXZvHo9hJ +KmMhgnuk/muQEESwkxyltGs1I55sz/st3rdAwhByw5H8kGGMWUwaRpIluSPz2D4i89XjHBAL4vu+ +B+DK/t/yPM+XagTHcY1qWGI/kC47XctxaNVubPyw14VrtdqYygKIjoAIJLYKLEZyHcAmgAOSDZLP +vc4ZOojfw04RJx/GvHq2KpUK/gREx1QirJDFpAINqYjv+1vSZ757jdRAOGACUbvJIAuSFkinn50G +UZdFI+1HciENkFYSEIPAAHiXrq6UGk0MRA9xp7Gd/Jjkp53/7KebA7Pw9AtgDcCTzeGF5EYuQUTi +BACnIcudyItV7kCsRgBsk3wtxCdTrfUcgMvcg/xEDiRrogPJmOhAMiYWFoQ5H6owIE5OTv9DX/fK +oejsgv2LAAAAAElFTkSuQmCC +### FILE: css/icons/important.png | 880 +iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAACXBIWXMAAAsTAAALEwEAmpwYAAAD +IklEQVR4nO2aX0sVQRjGfxAl0rGLrMTqpjp0hLzopsK78K6g7gz9HPbHG7EE02+g6Rew+gb9kSgl +leqi2w6B3lkXRSdBQ/bExLMwyOiZWXf3LHEeWFjmPLPzPDsz7zsze6CFFlpIipvAK6AG1Jt8/QYW +gFuhJh4VQHx9j+uxr4kbqrAN3AdO03x0A8PAlrTd9qn0UuQHFA/D0vbGh/xT5DMUDyelbdOHvCPy +oQQNdQBDwBywCnwD/ugy9yvALDAobhLs+OpLYsSM4Wm9Kd9JuynD5SIYaQfGFR5NnQj4AIwC14EK +cFRXj8pGxYlUx/TWFNDWLCPmTX62DMwDF/GH4T61DC0BXXkbuQxsiPcFuEJyXAWqetY60JuCPi9i +2TLxGjjOwdGpzF0H1hr0TCpG2q3hZEwcbvCsJWtyLzbgmmfFZpb2mTOpGBm3hpNPT+yOVD49UxV3 +MoE+L2K3olMUMCdCjRhcUxtmiXSBDIxMq9xEJzI0YvBMfJM8UzXSoQQWBYbYpEYqasuMgJKHPidc +xCGVmURGDkYMPqrOHVI0Mqcyk5XzMjKmOk889DnhIq6qzCwx8jLSrzrLHvqccBG/qyxkfhzUSEV1 +Njz0OeEibqts98TL0khJdbY89AUb6cjRyLEsjPw3Q2uliZP9vYc+J1zE2YThd9Ey8TZh+J3x0OeE +izioMpOk8sIntTngoS/zJUpSVNRWTdvkRvqc2IsYZ3ezPfVFyH7ExvM9svp++ryJZR0URNqeZjXZ ++9SGCbvnAvQFEaf0W1WboLSNnAC+ijuRQJ83sc0aLgseW913AVHL3uqaekeyNIIOBtatBk9xcHTq +DKCe1+FDjF7LTFXb06Tos4bTGnApBX1BxC5rmEXanpqw6YuKolMU2Ls7aRuJ58yktaiMk+aYlhg9 +WsWWdN+v3+JkV1fdiX3mRK6H2Oe1jInPgH2umvKEK8Q2zUiMkvbYM9rZbeiNb+t+WacxA46M7Qtv +fT9EPEvx0CVtpucb4oXIIxQPd0M+vdkfQ0cK9DH0XujHUIOHAZO2sJ+n7Z4xfxj4VQDxtaR/GGih +hRb4h78wzjQdMG61JAAAAABJRU5ErkJggg== +### FILE: css/icons/numbered_list.png | 383 +iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAACXBIWXMAAAsTAAALEwEAmpwYAAAB +MUlEQVR4nO3ZvyuFURgH8I8bBi6xYbwpBkooOzFbWAzKIJNBKbablcU/gT9AsTMqm0GZWBTlx+7q +1rl1y2W993HPp07v23ve4Xx7h/M85yVrbV0YREFQfdjHMyoYEtQsbnARPUgBHShHD1LTNkEqLTza +M0gY5f8SZAab6Gn2QrIsy7JwhjGPyVQJh3SMr7q65RydAlrFXNrRd1OY6rPQRlOQHcFtpyDVLxTW +BN5w+st8iH5kHE+4/qP6bfkg0+ko6ApFgb03SHgroJUGY7HZi8qyLMvC6MYC1tM17B+rs9RYfaRd +/TJqlziGgXR/kMKUBHeIV/QK6giPKUTopmoJe7jHHfobvBOisaqZShNbfmr5IKW6xW6kiWopH0oR +n3jBQwpxEnUvGcEy1tIBRJZl/8w3yMQm08J/KcUAAAAASUVORK5CYII= +### FILE: css/icons/pdf.png | 603 +iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAACXBIWXMAAAsTAAALEwEAmpwYAAAC +DUlEQVR4nO3YTUsbQRgH8IlVbAsqJiSZ/3+SDYSA0msughehXnotni0t3qR4FBU8CZ69i1DoB/AD +CJ68FcEX6F2xN+mpLb5Uy8AExsUalJ2ZNcwDw+5mXnZ/mX2YYYX4T5C8dVi+J0kC4SPoFuIPQ3ND +V+N6w9A95KhzrFarlazv4w0ipSwDOHQ+M3QM0edeMPQA8YKhJ4hzDD1CnGLoGeIMwwAQJ5hQkMwx +ISGZYkJDMsN42ms9thz1CuQ2N5CnBiOEEeIkGCGMECfBCGH3jiTfAvgMYEkpNauUqll1YwDmdB3J +j1LKN3ZfAJMAFu1Sr9cZBAJg3151AfzWONN/xfx+ZY43ANas8VfTq7ZSaiIk5K8Q4gXJaZLXenNn +Q6SU78vlsgRwYK7fpSDzlUqlqUur1RoMDelc7+l/vlgsDtsQXaeUmjJjbtsQpdRMVs+TGYTkNwCX +7XZ7IA3RswbgD4AfeYYU9AObPNgx/dMQ3f5Uv366vfVqfe0kuxCiPyREt/tlkv0MwPgDkBMD77sv +2RuNxsuQkBuS6yQ/lUqlIat/GlIAcAHg3NR3IB+SJBnVRQhRyEWOpPrfgeiZMrO2m+cc6QohuWEg +C88SQnITwBdzfgzg9bOCAFi2VvyfALb0VxFr/PxAukWtVnvVbDZHRAbBuPtlhDgJRggjxEkwQhgh +ToIRwh6DMGdF9DrkH9N0jPCivk+xAAAAAElFTkSuQmCC +### FILE: css/icons/powerpoint.png | 844 +iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAACXBIWXMAAAsTAAALEwEAmpwYAAAC +/klEQVR4nO2aT4hNcRTHX0RJClNz7+f7uzMvkvQsZ6NhQxYWWJBRlCywogkLKQsLNSL/piRZmYUk +Nkg0slAWyobxp5CFhSiUmaEYPP2a+/Tmvnvn3ffevc+b5506i/d+t3POp/M79/f7nfvLZNKVaZIW +S+qR1CfptqT3wINMo0pXV9cMx3GWGmO2SToDDAKfJOXDNNMIks1m5xpjVhpj9gIXgSeSxkIC/g28 +Aq4AB13XXfPPQDo6OiRpNdAraUDSMxtgSNBj/tgAcEDSOkltQXv1AJne3t6+0AYAHAZu2PkcMTVG +JD3yg+4FVnieNyuOk9RAgD3AQ+BbRNAfJN2RdFTSZlu8toir9ZcmyI+ioN9IuibpkKS1nueZpP1F +FX81Cry1dTfBsC3gpINOG0Q+zATD9YBI2p+KbbVAqpT/AkTjY6OSnko6ZXcKUxkkX6Q/JfXncrmZ +UxIE2AJcL/o9GAbTECDAWUnP/amUD4vFdd0Nkr74//fXBGIXHGPMpjCVtF5Sd1tb25xKQYIaFYvr +uhsL08x13VzVIJJexFiYfvlnje4KQC7455RJQaz4+z6bxZOZlEH+AgE7omyF+YsJstUfG0oSZBT4 +HLXJBL57nreoFhBF63CSINsLY47jLAAuhzjsSwkknwqIFftaBF4HsnKvGpBKJVEQ/5lLAZDHsZxX +kYW0QW4FnrmfIMhwXUD8ds/XQEaOxwWJEnd8MSx5UyUGAhyzzQh77AWOBFs+9sQJLKkVRNJV396J +VEBi6P4yAZYFMcas8hfZktW8HiAjwM7JAozjzxizrCjLp2PbqmFB/Ai8BG5K2ud53vxyEMX+JJ0H +lnd2ds5zHGe2D3Cu0AyxO17bvUwTpOStVYnEyOyYzUQ5iIYBCWzjbcNvyBb2ZDXRkCC12ChIC0Qt +kMYA6QF2FdRvYifjvJ4gSUuFu4R8HFulP+ogTQeSSdqWWiDVSQvkvwPJTvVPbzTLx1Bgd1N8nm6a +CwPNeIWjuS/VNPU1p0x8Kbl4BrwD7ibt6Q8SGcGYCONKCgAAAABJRU5ErkJggg== +### FILE: css/icons/redo.png | 1161 +iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IArs4c6QAAAIRlWElmTU0A +KgAAAAgABQESAAMAAAABAAEAAAEaAAUAAAABAAAASgEbAAUAAAABAAAAUgEoAAMAAAABAAIAAIdp +AAQAAAABAAAAWgAAAAAAAABIAAAAAQAAAEgAAAABAAOgAQADAAAAAQABAACgAgAEAAAAAQAAADCg +AwAEAAAAAQAAADAAAAAAKA0BDwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAVlpVFh0WE1MOmNvbS5h +ZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9 +IlhNUCBDb3JlIDYuMC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9y +Zy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6 +YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZm +LzEuMC8iPgogICAgICAgICA8dGlmZjpPcmllbnRhdGlvbj4xPC90aWZmOk9yaWVudGF0aW9uPgog +ICAgICA8L3JkZjpEZXNjcmlwdGlvbj4KICAgPC9yZGY6UkRGPgo8L3g6eG1wbWV0YT4KGV7hBwAA +AjlJREFUaAXtl81LlUEUh28f1qJAUGqZQoS4cuFC3PgHuLBlhNswtFUQtHMtgkKKhYqCtWsTuDCr +Re3aBC0Fo0WbIKIPQpTIj54feuAg93q9956rjsyBhznv3HfOnI+ZufMWCllyBnIGcgZyBnIGcgaq +ysAwo/7ABJytysIxD/rB/Dt7zNMmF8SYC0CBzKUWhDIup60Kap/AGUhGigXxGO+TC0J7wFfiVAQx +dZhKnK9xsV1gfDe0wlWo5ST5xPjvcAUkQ3AOBkHVCZU2rD2F3+BLXw/91kGeV1oBZXwU7kGlYw/y +o+rfKnGiiVleQM++2VZ5fg/foJZSa/kNQCOYTKM8t4da2gYGvwO/RF7y3AkRUuw4ncFw2HE6jjFz +fhP9foTXezaKOT/Lb+oPkXas/AMLoN7Oh/8HLDjnl0NSsmtEGVamLTFqw+9DWvu/3CRRax6ThSO5 +zOnEsQzptImUkOt0uY3S6jzWURkpjzCmD5pJuAPbEC4PsWgVGAm3HmCwXAXW3ByXnX5i1HIBfHWe +Xnd6Muo1PNXa1DJah0uQnHzAY9sHD5LzHofvugB09KkqSYlurCtgVfiI3pxUBDjbBRtgQXxG15dY +UtKPt7qJWhDa3ItwG1pAHzsnXnrx8DCfkVu8twS6S5ncRPkJb+CiddKW6nevxKrK9jOQk1aNUm2H +m1rVsvf8pbBUvxtaH/UGZnXVeAtf4C+Yg1per8Avqz6edYq9Bl+BUv28liVnIGcgZyBnIGfglGfg +P/1GuH7mIbYgAAAAAElFTkSuQmCC +### FILE: css/icons/table.png | 210 +iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAACXBIWXMAAAsTAAALEwEAmpwYAAAA +hElEQVR4nO3WQQqAMAxE0dz/WIrnilsXDqmkYJr+B7Mr4ocuagbgq8vMvPjOkRBfZKHhg4N++54T +8o4QgZAsQgRCsggR9g3x4gu1C2lztWYhRCAkixCBkCxCBEKyCBH2fTR6l5A2V2sWQgRCsggRCMki +RCBk+RAvvtBZ4Cc92BFnALCHG32sGRTfiEDGAAAAAElFTkSuQmCC +### FILE: css/icons/undo.png | 1140 +iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IArs4c6QAAAIRlWElmTU0A +KgAAAAgABQESAAMAAAABAAEAAAEaAAUAAAABAAAASgEbAAUAAAABAAAAUgEoAAMAAAABAAIAAIdp +AAQAAAABAAAAWgAAAAAAAABIAAAAAQAAAEgAAAABAAOgAQADAAAAAQABAACgAgAEAAAAAQAAADCg +AwAEAAAAAQAAADAAAAAAKA0BDwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAVlpVFh0WE1MOmNvbS5h +ZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9 +IlhNUCBDb3JlIDYuMC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9y +Zy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6 +YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZm +LzEuMC8iPgogICAgICAgICA8dGlmZjpPcmllbnRhdGlvbj4xPC90aWZmOk9yaWVudGF0aW9uPgog +ICAgICA8L3JkZjpEZXNjcmlwdGlvbj4KICAgPC9yZGY6UkRGPgo8L3g6eG1wbWV0YT4KGV7hBwAA +AiRJREFUaAXtV0srRVEYveQxYGZg5iohIwMDmfgBBmQkmao7VsrM2MQ7FFH4BwaeAzcTE2WolGJi +QJ6JvK1Vvvo67jl1z91bZ3f3V6v9ne369lprP84+qZQP74B3wDvgHfAOFKkDpdA9AzwCo655QPIr +wPcvblwSQPLLijxFjLsioAREFwLkKYaiEh8kPw/IsmHrNHnuAWecnws4nxjyXBZRIWs+o350jXwS ++FJ9+ab83yvgHDgE3gAr0Yeqes3byO8xxhrQbEPBfwgQU94hYAqoyEdInCX0gAEWgUKWEMetBTqA +JkDHAR56gVvdWUjOwUhYnGJr8vhsQ72tQP0snssBY8HjcgmwJYJEh4APNcYEO00GZ8L2i4wixCTu +iRaTAliLMxG8B3Fm2G8qtlFIRKyaKqrr5BJh8jLHPSEC7pAb3QsihCL4NpaBTF+nT1XtThk0Vxt3 +6nmEDgKzAD9opgGTwbezRL0kLrVjICuzOxJFPO4MRNU08bdqVeRJ5X/SpApoUEwvVe5EWgWWzwCX +EPdaHeBUDIOtrP8jp5iDLN3mkSwCMi4JqAHZY0X+BHmZKwJ4rT5T5F+QtyeZPD9a0kA/sAFws8qy +4Y10ALAWlai8B/CDo0eNEtbPu8wm8AkIybCWn5ddgNXQly26JxHW34ofhBGWfopbB9JSzGZLp3cB +nhbdaqCwfi6XHUAvk1c8XwD7AK8KjYAP74B3wDvgHfAOFJ8DPzLj1tpDZn4yAAAAAElFTkSuQmCC +### FILE: css/icons/video.png | 353 +iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAACXBIWXMAAAsTAAALEwEAmpwYAAAB +E0lEQVR4nO2WMU7EMBBFp1m4gv8z0Tap0uYCNEh7G1rKPcuWtBSUSCycACqOgdgahERW0YKgSEhs +7zxpFGUi2X4aT2wzx3H+RNIj8J5pbPciCSxmUNihSL9KP+VSy+MilokImYYVK2KZgYskBi6SGLjI +MYkAt8CTpIsxxptTZH9QSboJISzHGHdOkbfuKemqaZqTMcafXKSqKoBNrzovIYTVGHNMKtK9xxjP +gef/2G5MKfJJ27YLSZfA69f3naR1XdenWYl0xBjPJF33+ujBBoCLHPPWirk3e1XK75dSDkRyv6JI +uivi0jgluEhi4CKJgYvkIkKmYcWK2G9lSzCPi1haeUruke3cixkQ94fVcxzHvvEBduRy0TAYfPEA +AAAASUVORK5CYII= +### FILE: css/icons/word.png | 965 +iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAACXBIWXMAAAsTAAALEwEAmpwYAAAD +d0lEQVR4nO2aTWgTQRTHR6uiB0EMTfb/nw0BKT1EUCFSPOhB6UHwA0H8QhA0XkRF9FILPYgXe/Bg +qZ8XawsiKD2JoOhFrIpaEas9FXpQEEU8SLFqv5SxE3idbtrYJpsY82BJduftm/9vd97szM4qVVib +S7KW5E6SZ0jeJfkRwGNVqpZKpebHYrHlWut9JFsA3AfwheSvoE2VgiUSiSVa6/Va6+MA2gH0kBwO +EDwGoA/ATQCNnudtLBpIPB4nyXoAx0h2kOw1AgNED9uyDgANJLeQjLjxwgCpikajy4wAAKcA3Dbt +OUvTGCDZbUUfA7DW9/1FuVRSMBAARwE8AzCYRfQnkvdINpPcZZLXJPFM6yskyJAQ3U+yk2QTyc2+ +7+t815ct+WeyAXhn8m5CYJPA+RZdaBBamAmBw4DId32UsSogM7QKSIBVQPJhs+2lVECsyTvlBEIy +rrXekdl831/qivF9vy5TDmCbW15dXe3JGHIkEFrT8jxvtbwCnudtdwMAeCJ9XFgA6UkPrLBBksnk +AgA/hNAmd97hjsvMkN4BOSvKO4sCYozkCyHkuhIGIOW2WzMvcXzuiDvSWDQQABeFkFfOyYcCxjvt +jk+/KK8vJkhaiPxu5iqi7Kot+0xyxPr0ZMrNvITkqPUZc/Mn1O5Xa73SSeYacXKvPd4F4IP9P5xI +JBba8lXiIvRlu4qhgCil5jkJvdUcjEQiizNXG0AbgKdCdMresT3i2I0pm8Msjbk8EM0rGyGowRzT +Wm8QcIcBXBA+aXveaeFzouggJFuEyGtW5EnR3OpIHhCiW63PLXHeuqKD6PH3UxmRz61vpxU4ZHLC +yaUu6/PW7o+aplh0EM/zkkLkgFJqDoD3dv9lQC4NOA/TN9NWHgaIGn/d+TVTrrVeI5rM5YyTTHit +9Sbh0zZV5WH1Wn+M5EMRpFmIPChAzgufK7IzUKUCgoljpkfiyq8QwfYLwNeyM5gKROXB+Bd3ZLcQ ++dP+DprcyPgYKAE7IjuDkgHxfb/GvbUBSwJVJL85ft05VR4WiBrvqdylgXPTzU8AXCo1EGXWORyR +ewMCtjo+6VIESclpa5alglrpE4vFoiUHkm8rSvdbCCs7EJXvWKyAzMwqIP8dSOJfX3pDuSyGAjhS +FsvTZfPBQDl+wlHeH9WU9WdOKneb9OGZeV8M4EG+a/oN2WHq+d0wifMAAAAASUVORK5CYII= +### FILE: css/images/drive_logo_day.png | 9102 +iVBORw0KGgoAAAANSUhEUgAAAMgAAABJCAYAAAB4tGnjAAAEqmlUWHRYTUw6Y29tLmFkb2JlLnht +cAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQi +Pz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iWE1QIENvcmUg +NS41LjAiPgogPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIy +LXJkZi1zeW50YXgtbnMjIj4KICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgeG1s +bnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICB4bWxuczpleGlmPSJo +dHRwOi8vbnMuYWRvYmUuY29tL2V4aWYvMS4wLyIKICAgIHhtbG5zOnBob3Rvc2hvcD0iaHR0cDov +L25zLmFkb2JlLmNvbS9waG90b3Nob3AvMS4wLyIKICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFk +b2JlLmNvbS94YXAvMS4wLyIKICAgIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hh +cC8xLjAvbW0vIgogICAgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9z +VHlwZS9SZXNvdXJjZUV2ZW50IyIKICAgdGlmZjpJbWFnZUxlbmd0aD0iNzMiCiAgIHRpZmY6SW1h +Z2VXaWR0aD0iMjAwIgogICB0aWZmOlJlc29sdXRpb25Vbml0PSIyIgogICB0aWZmOlhSZXNvbHV0 +aW9uPSI5Ni8xIgogICB0aWZmOllSZXNvbHV0aW9uPSI5Ni8xIgogICBleGlmOlBpeGVsWERpbWVu +c2lvbj0iMjAwIgogICBleGlmOlBpeGVsWURpbWVuc2lvbj0iNzMiCiAgIGV4aWY6Q29sb3JTcGFj +ZT0iMSIKICAgcGhvdG9zaG9wOkNvbG9yTW9kZT0iMyIKICAgcGhvdG9zaG9wOklDQ1Byb2ZpbGU9 +InNSR0IgSUVDNjE5NjYtMi4xIgogICB4bXA6TW9kaWZ5RGF0ZT0iMjAyNS0xMC0yMFQyMDowNisw +MjowMCIKICAgeG1wOk1ldGFkYXRhRGF0ZT0iMjAyNS0xMC0yMFQyMDowNiswMjowMCI+CiAgIDx4 +bXBNTTpIaXN0b3J5PgogICAgPHJkZjpTZXE+CiAgICAgPHJkZjpsaQogICAgICBzdEV2dDphY3Rp +b249InByb2R1Y2VkIgogICAgICBzdEV2dDpzb2Z0d2FyZUFnZW50PSJBZmZpbml0eSBQaG90byAy +IDIuNi40IgogICAgICBzdEV2dDp3aGVuPSIyMDI1LTEwLTIwVDIwOjA2KzAyOjAwIi8+CiAgICA8 +L3JkZjpTZXE+CiAgIDwveG1wTU06SGlzdG9yeT4KICA8L3JkZjpEZXNjcmlwdGlvbj4KIDwvcmRm +OlJERj4KPC94OnhtcG1ldGE+Cjw/eHBhY2tldCBlbmQ9InIiPz5kWRChAAABgmlDQ1BzUkdCIElF +QzYxOTY2LTIuMQAAKJF1kctLQkEUh7+sKKywyEULFxLVKsMKpDZBRlggEWbQa6NXrwY+LvcqEW2D +tkFB1KbXov6C2gatg6Aogmhd26I2JbdzVVAiz3DmfPObOYeZM2ALp5S00eCFdCanhwJ+98Likrvp +DTtOOhjGFVEMbXx2NkhN+3qgzop3HqtW7XP/WkssbihQ1yw8pmh6TnhKOLiW0yzeFXYqyUhM+Fy4 +X5cLCt9berTErxYnSvxjsR4OTYCtXdidqOJoFStJPS0sL6cnncor5ftYL2mNZ+bnJHaLuzAIEcCP +m2kmmcDHIKMy+/AwxICsqJHvLebPkJVcRWaNdXRWSZAkR7+oeakel6iKHpeRYt3q/9++GurwUKl6 +qx8aX0zzoxeadqCwbZrfx6ZZOIH6Z7jKVPKzRzDyKfp2Res5BMcmXFxXtOgeXG5B15MW0SNFqV7c +pqrwfgZti9B5C/blUs/K+5w+QnhDvuoG9g+gT847Vn4Bk+dn+rGDJzIAAAAJcEhZcwAADsQAAA7E +AZUrDhsAABz8SURBVHic7Z15dBzHfee/1T3Tc2MG930TJ3GRIMVDPHRRty1Zl5XI9vopjrPx827i +2H5exy/Pm02y1q7XeS924l1v1na8iry2LluKRdqWLFEUbxEECBAAcd/AAJgZDAZz9lX7B4jBNGYw +MwAGpEj35z088nXX1dX17fpV1a9qCKV0DCoqKrGwE0opvdmlUFH5iDLJ3OwSqKh8lFEFoqISB1Ug +KipxUAWiohIHzc0uwDYTdHt8gsO16AmEBBG4SfMRFABJ8nq8sFjnXqK4icInk/backSGj4xP1/l3 +bfy1+cYKR2L8P1b5Y6UdeT9uvRAYdFpNVobVakszaQDoI+/e1gL52a9OO0+8d9Hq9/qyRUHcSNNR ++T1Cq9VQvdkkPHrPPsczj9xZFHnvtpzm5QXR87f/+ErnhYtXDmlUI1IlSSQZuPvI3rYvfe6xak6r +seA2nealJ95v91y41HmQvR2fTmXbYBjgvdOXdv3uTKcH1w22264JyZTSd05dYlhQRrWpVDYCAcCA +MidOXpJWDKvbTiCUUng83mxVHCqbgQDweDzZ8nWF3HYCAQWVZfm2nnxQ2WZkWQ96m5pYKiqpRBWI +ikoctsUUCQR5vPzLdzE6OQuvzw9ZVs4k6/UcKssKcNfBFlSUFmxHEVRUUkLKBSJTCn8giNFJO7r7 +xhDi+agFbIZlMOdww2wyqgJR+UiTcoH4fAGcvtiFgZEp+ANBxFyHlCR4lryYmp5HKCSA02k35CGR +CiQKVFWVSRazCYBCwyTSNyHEC6IgCBqBF+iSx4s5x4LMMkTLbrHAGdlZcnFhLgBQChCy/G+klwSh +lNJAkBdFgdd4lnyyy+kmoiRpNJvIm9FoUFdTIbNabfghRUEgvX3DjCyKseOwLOrqdojsSo6UgmEI +udozKIuhUNJtp7S8RLRazYRgJRmKkdFJsrToWdfE13I6VFWVyhqtVtGAEnnarIRhCEh7e/eWhxAp +F0gwyONa/xjci97Y4lgJFxIwMDqFix292Le7Hpz2xk48SRT43NP3i80NFbq44WSZ4XmRCIIIXyAI +x8JS6M3fnKPnP7zCrTUdN8Leljr6Hz/7CJsgGBVEieF5gfgDIWbW4ZZfOX7Ge+lSp3mj+RmNBnzt +T59iMtPTwtecLg++8I3vwetZihmHZRj5M0/cIzTUlBoir3/r+68ET59pS/qFffPP/5DmZtnC4X3+ +oPyX/+1f5HgCsdks+Ornn2BysmzJZhPFI8/9p03HXSGlrTIQDGFs0o7JGUfCsKIowT7nwuXOAbQ2 +1dxwgVAANIkGzjKMxqDnYNBzJM1iRH5OhrmxphR9w0eWvvcvb+qGhsc4ZhPeOhRJRSJaDavValiY +jHpkZ1rZhppS7Zm23f5/+OHrrG/RE1fcivw2oWVBFJnugXFNQ02p4voDR1px+kxbUnmWlBQs5WbZ +LJHXnQtL0tjEjIxbwBcwpbNY7kUvLl3px8ysI27vsYIkSZiamce8YwGiKKWyKMmxBTOppqLA8ndf +/bTm0P5dsT+/28jB3TWGb3zxWaLjuG3Nh1KK9quDUbXUXFems9nSQoniy5TSJx46FCWC8+19Ia8/ +uL2FTxEpE4goSnC4FjE8No1AkE8qjiTJGJ2YxaUrffAHEtZ3XCilEEQJniXfltIRRYkGQzxW/kIh +gcqyLMcKa7WYmG988RnL/r1NPE3BKCoQ5Omix4fIP38gJMmy8mtDCCHN9RXcs08e88jbOHojAPr7 +RyEIoiJ/lmXYO3bvZKUE30C9QSfsaa5S9HKUUnxwvsPEsWRTBQ8GeTkY5BEMXn9HwdV3tfYvFaSs +i3O5lzAwNImFRW/Scej1Ga/2q4PYt7seZpMBzAY9qGRZvl5RAmQqY2rGsaUW8+tTl6WT57tW/RwJ +qEGvEytL8vHg0d1iTpbNuDbOHz/3kKZveEJacC4kGlPE5ZUTZ6WzFzoVaXB6nVRSmMt/5hN3aXMi +7HgA+Nh9d1hOvHeRn7PPb9vX2BsIssffaws8dv8+xXO3NlXJv3nvggQqr/vMZaWFjEGvU7yP4fFZ +fmh4ktucPIC//O8/kRh2+fWszGwQEr3tY7PpryVlAplzLKCtsx/T9sTjj7W4F70Ym5xFus0Ck1Gf +OAKWxSWKEtweL64NjGPa7sSh/Y1oqC1PfttQjC/g9IwTV6/2k4hZKgKAu3SpC2+c+ID95pf/Hd9Y +W8qRiDeQl53OPHTvAf6nLx/fkkDmHYtkYmJ6bdm5wYERdHf303/61p8JRoNOG77BaVFZVoQ5+/xW +so2LhiHktbdOaj5+7A5EPnNpYbbGZrOQxYXFdePuKC8SDHpO0cbeOXuFbKXx9vUNaROHSh0pMbEE +QcSS1w+P17/huJRSjE7YcfJMO+ad7qTjOV0evP1+G179t/fBCyKe/vhRFORmbjj/KOK8vEAgwP7V +Cz/UnLnUK6y998QD+7VmizmU/Fg43rbB6JBz8y7ys1+dVtgNLMOQvJyM2HO0KYIAcDoWuKExu8IG +zs1OpxmZ6XEHjnc07lB8MALBkNzZPXxL7T9KiUD6hyfw3pkOjE/Nbir+sqkVgj8QgijFH6z3Dozh +xVd+i5defweuRQ8O7m3Awb07wTAMtvRpChdm/VsEgCgKzM/fPEnX2uUGPUcO7WumiezypDJah46r +g4a11zJtlhsy2D3f0a+oXE6rYVubquM+RMvOCkXZZh1u6nA4byn3ppQU1rPkh8PpjjsTlZ1pQ7py +tk/BwMgkzl3qhn3OFXWPF0R09Q7jxVffxpu/OYuxqVnsKC/E0f3NqK4sgkGf9Gynkk0KanB4QjMy +MRtce721aQdDZZrkdFx03omKo9NzUWlLUoIvSoro6R+FICrlf8/+xph5yxQ4uH+Xj+OU1lDvwITP +vbh0S+1E2PIYZNruwLWB8XXNI2uaCbsaq9BcX4mpGQc+uNCJ2fmFqHA+fxAj4zNwL3pRlJ8NAFhw +L6G7bxSTM/OYmnHAs+SDyWjAXQdaUFdVApvVDJbdgtkf6/uXxOujlDK/OdUuV1cUKq7nZtpYi9GA +YChKO0llnqhPaaguFQAoWp1j4cY0uP7BMRIK8dBqVjuxksJsfUlJQXBsfFofWQhJovIzjx6KMv1O +XegyMYRsaZx2o9myQEYn7OgbmoBnKfb4IyvDhjv3NqCpvhKdPcPo6R+LKRAAmLY70ds/Blmm8PkD +GBmfQVfvMJwLHuRmZ6C8JA9N9ZWoqypNejAfFxKjSSZh+TAE6O0fiXrRej1HOYMuSYHE6EHWKY4g +Q64sK+Cfeuig4qElSaaz864bYtN7lnyaix0DS/fc2RReiicAjuxvIT8enaZaZvWBcnIzpLLiPGtk +fLfHJ/b0Dmm2us3zB9/+csIwP375benMxU52q+5AwBYFsrjkw+TMPByuxXXHDrnZNuTnZsJsMiAv +Jx1lJXmYmJ7DUowB/YLbg9MXu9DdP4pAIIiFRS9EUUKaxYT9rfWoKi9EWUn+9q66J1GpBMDE1GxU +SK2G1ei4ZCdZYvQgVJYBKIRns1mX7j60W//Egwc4k1GvMIlDvICBoYkbIhANQ8jP3niX3HNnk+J6 +a2Ml+9KrGoHKIgcsP1VdVZnMrjkQ4PjJ9pAoilt+cUUF2QnD6PX6lB3wtKUCj4zNYGh0Gl5fIOZ9 +m9WMuqoyWC3LDoF5ORmo3VGMnr7RmALhBRGDI1MAAL2OQ2aGFVUVxdjTXI19u+thMRtSMxBPAbIo +bnLgsz5f/vwT2i9//om1l9cduL31zkXB6VzQ3YjN9wTA1JTdMmV3+AvzssJrItkZaUxuXhaxT9uX +wxFC66tLwUS8J1GU5DMfdt246dkU1semB+myLGNkfAYjYzNRjZ0QApvVjJrKYrQ2V8NmXfatMxr0 +yMvOQKTDXCwMeg7FhTnY01KDuw624NjRPUizGD8y4vgocKGjn3/p9bc1DLmxjtCnLvQo2ow1zUyK +CnPD4w2WZUlTTYniwztld0iOedctNfZYYdM9iMu9BPu8C77Aqr3NsgwMOg56gw4HWneiMD8LtjQz +GGa1Tm02C4oLc9DW2R9dGJYFx2mxo7wQe5pr0FhfgeqKoqhwCUm2ycTshxN3zhRAbl62F4DCq1aS +ZVmUJIo1ZlJsNteuRVGSuvvH6Hf/+TVW4PkbPmV6tW9ExwsHw2YuwxCyp6mGXvrwCigAk9kkl5fm +K+IMj9vp0pI3JUr+xfGz/HJCZGXbOMj1dfSVNzc9M5eyE582LZBLHX3o6BqEe9ELhmHAsgwybBY0 +11ciPzcLjxzbD6NBF/7qyzKFIIoQRVHR/YYLwrLIyrSiqrwIdx/ahV2NVZsfa2zFAKWJXyMFUFVe +FCUCfyBEfV7/to0JeF4Uvvvi8dDpM236UDDE3oxzjUbGpqVFj4/JzrSG2+CRPbXM//oRkSSZsg/d +uy/AEGKKjHO+vY+llG7Y+ypWRX7//76hTWRKaMjyREoq2LRA7PMu+IPLi6vZmVaUFeehqqIIx47u +QWZ6WtQzuNyeZVFdHcTkTLRrREVZAWp2lOC+w7tRWVaYMl+ajZO4fcsU9P4jrUEAioU7t8cPrz/I +cElNn0Tn8/Lxs77TbT0BACAg8p/+4QPW2sqi8FiH4zRavY7zCqGQ+WYd+jXncDODozNSpECsaUau +pbFGunC5V3j8/gOKj7ckybS989pGXewAxO5jN+vkuFk2JZCu3hFcGxhDutWMytICNNSWY09LDXKz +06HjOIU4giEe5z7sxrWhcfQNTGB80g4pYh8GIQSNdRU4sGcn9rbUICfLdhPFASRj+lSUFcpNdWXp +a69f6LjGswyJWu1ONp+JqTn9wLXB8BbHV4+bhK/9+6egjehJP/3YEeuFCx3U6XLflGrSsIR58+1z +ONBaq7h+7GhrwOnxadPMBsXzn7rYs+Tz+uMPOtfho+CTsimBtF3pg16vQ0NtBVoadqCoIBtmowEa +jdLqOHm2A2MTs7jc1Y/Z+QWEQjx4YXk8p9GwyMlKR3FBNp569CgK8rJgMRsROT3o9QWWFw6TmNq7 +URCGoZ946LDAaZUPK8sUH5xr1yc/9x7j9ZOIWRMCtLX3sE73Es3LTg+narUYmU8/fb/wP/7ny5rI +tYcbBUuAzq4+ZsHtFdNt5nD7aaguNR47vNsPQDG79/qJ07fk4HyFDQlElinmnW7k52ZiV1MVcrPS +kW61QLfqYAp/IIiOq0OYmJ7D5c5+zDoW4F70QhBWF1aNBh1Ki/JQXVmE+460oig/G1pudV+6e9GL +vqEJDI/NIMNmvqkCWWnGkgyam5MpPfmxo8F7DzZFbXl94+0LIc+iV7cShxCGz8ywaj1LPonn+Rjb +yBO37WCQZ37wr2+J3/zSpxTvad+uGk15ab48OTGjFCkF9DqOT7OYuDnHgkAItBtVkEwBHccJ1jST +1j7nkliWxNT8b8928p98+GC4XLY0E44dalZM5c7OL4Ts9rmYPaokU2o2GyW9jmPnHG6qYUmUFZZK +9csU0Gg1vC3NrJl3LlKW0KSEuyGBELLcuHc1ViHdalZ0/UteP0Yn7Lg2OI6Oq4OYmXVi0eNDiBcU +uwstZiNqKouxp6UGDbUVKC/JU+QxMj6D3v5xXOkZwpR9Hi07d8DrC8BsStJy2SIMQ2jkqQ0sx3mq +KoqZo/ua5fsON1lMBn2UOByuRf4XJz4IV7jFmuZ74evPawrzsojXF2C+8cKP5LGJmTUNIPEqPkOA +D9u6NR3dI3zLzvKw45/VYiJH9jXJP40QiEyBI3e2zvz5Hz2WxbIMegbGmW9996fUu+RNup3JFPTu +I63Snz3/uJYQgskZR/Dr3/ohvJ4l09qw59p6uCfv30c1mmX9aDQsk2Y2KnqPqwMTbCAYiuV0Rh9/ ++Ejg+U8eM4IQ9A5Oev76Oz/RhwIB5eaqZAseC0Ik0FUR7KzfEfrPX3qO4zgtcbm9oa/913/m5+ec +hkSVs0GBEFjMRljMq3tn3IteTE7PYWRiFgPDE+jpH4NrwYMQr/QINxkNsKWZULOjGHfe0Yjyknzk +Zq+a8YIoYWBoAm2d/ejpH8P41CyCQR5mkwE9/aO4Y1fdRoqa5ANFX/rcHzyg/dwfPBB5Ka79LIoS +XvrlSczPu1gGAMuy8t989bNseXGeDgAybBbmH/7LF/D8V/6edzkXOOU2k8RQSvHqr8+w9VVFiHT+ +e/S+fcyvfntWWvQssQRAXW1F8C/++PE8HbfcabTUV7DPPXW/5wc/fj1p+7+oKE/8k+ceZla8ASpK +8kzPP/uQ/7v/++WosPNzTsw7F+X83Ix1v8RdfWOQRCmqaygtLZQ/89S9upXnaa4rs37qqWPBH/3r +v1FKV6cRY9XQWy+9kOzjsCuHNmi1Wnzl809ozaZlPeRl23Rf+ZOn5b/+zk9owB+I+yI2PV3sDwQx +NDqNDzuu4dcnP8Txd87hctcAZmadUeKwpZlRXpqPO/c14sG770Brc41CHPNON7p6hnD8nfM4e6kb +Q6PTcC96EQzxmJiaR0/f2GaLGYetd+CiKOHbP3iNf/u9CxwDSiiAnJwMUl1eoPCZ4jgt6mvK18RO +/vvYdXUAU3anYtuv1WJkP//pjwUlmcoAUFaSr10RxwoP39W6preLn2d1ZSmxWkyKBt9YUxKz6553 +LDBDE7NR+2Ii6ejsE2PNJJSXF7uNBp0in+ryQobVpN6FiAIoLyukeTkZirZeXJBN0qxpMRtBZC1t +uEQhXoB9zoVpuwMX269hbMKOOacbC+7YZxdYzEY01VegrroUTfWVKCvOiwozPjmL0xe60N69vK6i +yC/EY2xyFrPzLmRnpcdcQ9kcG/29slVkWZbHJufE//fGSZy50KnFchsFAeDzB0VJkrVrfZF8vsCm +B6t8KMT+7M2T8te/+Kzi+oHWWmNZWRE/OT6lEwQRMqWK+nG6lwIAIsyj+M/r9nhDskxZJiKRYEiI +8g8DAJaAOXm2gx7aE7tnHx63L05Pz5m1MX7ByO8PRLnphEI82dTRK0mw6PGGZFnmmIgVa0EQJVEU +CWI8W2QtJdWDUCz7Sc3OL2BoZAqvvHkSr711Cmc/vIq+oYkocRBCoNdxsJiN2Le7Dnfd2YK7DrbE +FAcAGAx6WCxGmE3RM2GBYAg9/aN4/1wnRCHlm+c29EYohdDZO+b9m+/9XPja3/0f5oNzHVpQWdHq +PItL2td+fU6x82982iF0dg8mlvY6IRgCnL3YxbT3jCoqWqfjyP2HWwUAuHJ1AIseb7iCJFnGi794 +f0OiHBga58an58NpyDKlb5+5ErPSCQEutnVz/kAo5mkbr7x1Ws+wTMz8+/pHDdOzLoV368kPe3hB +TP3P5BEAc3NOXVvXkMLFuqNnRHS5FhO/kkQ/wSZJEvyBEGbmXDjxznm43B509o6A52P3riviqCwr +QFlJHp569CiyMxMf/tXTP4bzbd242NaL6TknJGnVotBxWrQ21+A//NEnYDHH98mSJFn67Je+zbic +C3EfXgbQ0lAtWa0rVsjaITRdlQ8F7PMuaWp6lg34E/cEWk6LB+7ZH7yjpUY7ODrNv/zL3xmCQWU7 +KijIpZXlRQqzaXBogpmxz61b7vz8HLqjokiOLKvPF5Avd/RoASA7K50++bG7Q3nZNvnU+S7tyTOX +WVmSGADQaLXY3VIr6zgufIIjz/Pkcsc1RhCElcdETk6m+NiDhwMFuensxfY+7rfvXWBW0ojFzvqq +YEa6RQtKwsUiAD44187S2IfBgALIz89devbxuxmzQce9f76LnDrbTghWB9V6vR5NDVUyp+Moud7b +U0SeHUOup7VyTVlthACnTretTpykmYVPPn4vKczNlLv7xvDGifc5YZ0PbnZ2Bv3hd74isywzs65A +KABQipFxO949fRnDY9O40j20Xj2FMRkN2NW4AyWFufjEw4dhNCTv9No7MI5zl7pxoa1Hsdqu1Wqw +o7wQjx47iH27amGIk2ayAgGWZ34SsRKEwcY2IEqUQpKoxDCE0cSwCymiD3MjJL4RFCsOsOpWQQGI +MqVUppRlGWbt/Gys5107gF5JA5RSholOYy3r1WGilXOZruajYZmolfaVZ01kCMe7H5kmBSDJFFSm +MmEZJt7xrZECWXcM0jc4jrYr/cvrEaPTWPIlPpDBmmZCa1MN7j28GzU7SqDXbWy7dFVFIXD9i3Cx +vRfjU3MAlgfDgyNTaO8aQFNdeVyBbITtdNdgCQGrWX/3HMHGd/wmikMAaBlC1huoJfO84TSSLN1m +65AhK24jsfPZTP3EgwDQMARgyIYmpqIEMjQ6jSvdg7g2OI7RCTucLg94QcQ6Z6cBWBZGQW4mGmor +8Oj9B2A2GTYsDmDZYbGitAD+QAgenx+iJGPa7ggf8eNwueFc8MBiNirWYFRUtotwK5udX8D5tm6M +Tsyif3gC845FhHg+4ZGgudkZqKksRvPOSuxq3IGsDGvc8InQcVrUVBZDEETwoWXbeOWsraHRaZxr +64bNak5qXKOislXCAhkancK7p9vhcC3C5w9ivQHMCjpOi6xMK/a21KK1uRqlRXkJN0Ili9lkQF11 +6WqvRSmmZ51Y8voxMm7f8jGlKirJEhYIz4twujxR6xCxyM60IcNmwYE9O7G7qRoFeVkw6FN7PJPV +YkJDbUV4UCpTitn5BYxN2DE0OoUMm0Wxoq+ish2EBZKZYQWTYB8WIQQ5Wemoqy5BXVUp9u2u21ZT +J81iRPPOyuWe5PqAzeFcxOWuAZSX5G9ZIB8Fd2qVG8dmxvxhgeRmp8OgW97LsXbmlxACTquBzWrG +4f2NqK4sRnN95Q1xIDSbDNi7qxayTEFA0ENHMTvnwuycCwV5WUj+FBElFEBRQa6s0+vCmzcj59jX +imd1Fn45ZKxZ+dU40bHXn5CM/F2k1WskRhnWj7teHmvvr64eRP6WFV1T+nBa19c2IkOuLauyHmI9 +d8QtspIvDd+N2Bm0TlqRz6XMf71cV9MnipihUAiTk7MbcsYICyQna/nkwznHQnjPBrA8s2Q06pGT +ZcMdu+pw9EAz8nMzsdaVYjvR6zgc3t8ISZZByHIvMjJuR1FhTviQuY0iyMAXP/uY2LTmeEyV25er +A+P8X/zVP3Eb+f08xVxpbnY6RsZnVjc1Xd8nXl1ZjB3lhXjykSOpLfEGYBgG9xzaBYCivWsAY5Oz +qLQ7UJiXtanTTjQEePGX77KW312MPU23spBOlj98kX1MVHaxOoHIdCIXAGN3GBs7aCJW/ms+p3Sl +nBGf13A51ulownGw+rMCimxi7/FKnP71a5Hph/NYk0isxdPUQOD1+tiNbuRXCESn4xSHQOfnZKC5 +YQdaGqpwYE99qkq6Je45tBuEELRd6YdnyY8QL2xqzYUhQE/P4C29201l42x0YTPmapvNakZeTgb2 +NNfg0L5G5OVkpKJsKePQviawLIORcTu6eoext6U2cSQVlU2gEEhZcS7mHEXQaTkc3t+EpvpKGI06 +aLZyQPQ2oNWw2NNcC61GE9u82kYXEpXfL5QmFsehobYCVeWFqCwrvGHbXDeD0aBDQ205fP4g3Ive +8OmNgKoPldShEEh9TRkopciwWqBP8cLfdmAxG6HXcZAi/cQICEMYCbfATwyrfERh2AAI9MCaDVP5 +ORkoyM28JcSxglarUQzSGUJITm7WjLoIqLIZKICCvGwnc912v6V+DisZCCHk0Xvv0LIadn33YxWV +ddBoNPLH79vHkdtVIABwZ2tdxqeefnCe1en4ZDZFqajIFOAMBvFTzzw4t7e5KnyiSMItt7cwdHh8 +1v3C93/um5qY3sQR8Sq/TxSVFI18/QvPWMuKc9KxOs8zeTsLBAAkAH5BlLzOBU+OLEkfrflqlZsO +wzByus0yp+O0JgBGKE85ue0FoqKyFSZvyzGIikqqUAWiohIHVSAqKnFQBaKiEgdVICoqcVAFoqIS +B1UgKipx0ABIfOCuisrvJ/b/D3pH64ld1z4iAAAAAElFTkSuQmCC +### FILE: css/images/drive_logo_night.png | 244928 +iVBORw0KGgoAAAANSUhEUgAABMkAAAFNCAYAAAAaSTj9AAAEt2lUWHRYTUw6Y29tLmFkb2JlLnht +cAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQi +Pz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iWE1QIENvcmUg +NS41LjAiPgogPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIy +LXJkZi1zeW50YXgtbnMjIj4KICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgeG1s +bnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICB4bWxuczpleGlmPSJo +dHRwOi8vbnMuYWRvYmUuY29tL2V4aWYvMS4wLyIKICAgIHhtbG5zOnBob3Rvc2hvcD0iaHR0cDov +L25zLmFkb2JlLmNvbS9waG90b3Nob3AvMS4wLyIKICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFk +b2JlLmNvbS94YXAvMS4wLyIKICAgIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hh +cC8xLjAvbW0vIgogICAgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9z +VHlwZS9SZXNvdXJjZUV2ZW50IyIKICAgdGlmZjpJbWFnZUxlbmd0aD0iMzMzIgogICB0aWZmOklt +YWdlV2lkdGg9IjEyMjUiCiAgIHRpZmY6UmVzb2x1dGlvblVuaXQ9IjIiCiAgIHRpZmY6WFJlc29s +dXRpb249IjcyLzEiCiAgIHRpZmY6WVJlc29sdXRpb249IjcyLzEiCiAgIGV4aWY6UGl4ZWxYRGlt +ZW5zaW9uPSIxMjI1IgogICBleGlmOlBpeGVsWURpbWVuc2lvbj0iMzMzIgogICBleGlmOkNvbG9y +U3BhY2U9IjEiCiAgIHBob3Rvc2hvcDpDb2xvck1vZGU9IjMiCiAgIHBob3Rvc2hvcDpJQ0NQcm9m +aWxlPSJzUkdCIElFQzYxOTY2LTIuMSIKICAgeG1wOk1vZGlmeURhdGU9IjIwMjUtMTEtMjZUMTc6 +MTI6MDYrMDE6MDAiCiAgIHhtcDpNZXRhZGF0YURhdGU9IjIwMjUtMTEtMjZUMTc6MTI6MDYrMDE6 +MDAiPgogICA8eG1wTU06SGlzdG9yeT4KICAgIDxyZGY6U2VxPgogICAgIDxyZGY6bGkKICAgICAg +c3RFdnQ6YWN0aW9uPSJwcm9kdWNlZCIKICAgICAgc3RFdnQ6c29mdHdhcmVBZ2VudD0iQWZmaW5p +dHkgUGhvdG8gMiAyLjYuNSIKICAgICAgc3RFdnQ6d2hlbj0iMjAyNS0xMS0yNlQxNzoxMjowNisw +MTowMCIvPgogICAgPC9yZGY6U2VxPgogICA8L3htcE1NOkhpc3Rvcnk+CiAgPC9yZGY6RGVzY3Jp +cHRpb24+CiA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgo8P3hwYWNrZXQgZW5kPSJyIj8+DlOBRwAA +AYFpQ0NQc1JHQiBJRUM2MTk2Ni0yLjEAACiRdZHfK4NRGMc/24hssuJCcrE0rjYNtbhRJo1aWjNl +uNle+6H24+19tyS3yu2KEjd+XfAXcKtcK0Wk5Jpb4ob1el5Tk+w5Pef5nO85z9M5zwFrNKvk9AYf +5PJFLRIMuOZi866mZ+x04aQRZ1zR1bFwOERde7/FYsZrr1mr/rl/zb6U1BWwNAuPKqpWFJ4UDq0U +VZO3hDuUTHxJ+ETYo8kFhW9MPVHlJ5PTVf40WYtGxsHqFHalf3HiFysZLScsL8edy5aUn/uYL3Ek +87MzEnvEu9GJECSAiykmGMfPACMy+/EySL+sqJPv+86fpiC5iswqq2gskyZDEY+oJamelJgSPSkj +y6rZ/7991VNDg9XqjgA0PhrGay80bUKlbBgfB4ZROQTbA5zna/mFfRh+E71c09x70LYOpxc1LbEN +ZxvQea/Gtfi3ZBO3plLwcgytMWi/gpaFas9+9jm6g+iafNUl7OxCn5xvW/wCIb9nxo+2bdcAAAAJ +cEhZcwAACxMAAAsTAQCanBgAACAASURBVHic7L1b7G5LUh/2q177XGbGwwzDmQvXwWQ8eBjG3Owx +AYQFzCVyHDsCAkjGMo5k2USKnIcokZ1IkSJFyoulOIpiy3IgiTUY8mDLIRAT524sh8tLJEY4xEQy +EBswhNtgGM1eXXmo2696rf8++5yDjeacLmnv//d9a63u6urqunVVL2DDhg0bNmzYsGHDhg0bNmzY +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 +### FILE: data/config.json | 1412 +ewogICJ2ZXJzaW9uIjogIjMuNiIsCiAgImFwcE5hbWUiOiAiRC5SLkkuVi5FLiIsCiAgImFwcFN1 +YnRpdGxlIjogIkRpZ2l0YWxlcyBSZXNzb3VyY2VuLSB1bmQgSW5mb3JtYXRpb25zcG9ydGFsIFZl +cmtlaHIiLAogICJrYXRlZ29yaWVuIjogWwogICAgIlZlcmtlaHIiLAogICAgIlNpY2hlcmhlaXQi +LAogICAgIlBsYW51bmciLAogICAgIk9yZ2FuaXNhdGlvbiIsCiAgICAiU296aWFsdm9yc2Nocmlm +dGVuIiwKICAgICJMYWR1bmdzc2ljaGVydW5nIiwKICAgICLDnGJlcmxhZHVuZyIsCiAgICAiS09N +IiwKICAgICJHR1ZTIiwKICAgICJGYWhyemV1Z3RlY2huaWsiLAogICAgIlRlY2hLb250cm9sbFZP +IiwKICAgICJLYWJvdGFnZSIsCiAgICAiRG9rdW1lbnRlbmbDpGxzY2h1bmciLAogICAgIlp1bGFz +c3VuZ2VuIiwKICAgICJBbGtvaG9sIiwKICAgICJCVE0iLAogICAgIkdlc2Nod2luZGlna2VpdCIs +CiAgICAiQWJzdGFuZCIsCiAgICAiRmFsc2NoZmFocmVyIiwKICAgICJWZXJmb2xndW5nc2ZhaHJ0 +IiwKICAgICJUdW5uZWwiLAogICAgIlN0w7ZyZmFsbCIsCiAgICAiRm90b2dyYWZpZSIsCiAgICAi +VHVuaW5nIiwKICAgICJWS1IiLAogICAgIlNjaGxlcHBlbiIsCiAgICAiU2Nocm90dHNhbW1sZXIi +CiAgXSwKICAic3RhdHVzIjogewogICAgIkVudHd1cmYiOiB7CiAgICAgICJsYWJlbCI6ICJFbnR3 +dXJmIiwKICAgICAgImNvbG9yIjogIiNGRkYzQ0QiLAogICAgICAidGV4dENvbG9yIjogIiM4NTY0 +MDQiLAogICAgICAiaWNvbiI6ICLwn5OdIiwKICAgICAgImJlc2NocmVpYnVuZyI6ICJEb2t1bWVu +dCBpbiBCZWFyYmVpdHVuZyIKICAgIH0sCiAgICAiUHLDvGZ1bmciOiB7CiAgICAgICJsYWJlbCI6 +ICJadXIgUHLDvGZ1bmciLAogICAgICAiY29sb3IiOiAiI0ZGRTVCNCIsCiAgICAgICJ0ZXh0Q29s +b3IiOiAiIzdBNDQxOSIsCiAgICAgICJpY29uIjogIvCfkYHvuI8iLAogICAgICAiYmVzY2hyZWli +dW5nIjogIldhcnRldCBhdWYgRnJlaWdhYmUiCiAgICB9LAogICAgIkZyZWlnZWdlYmVuIjogewog +ICAgICAibGFiZWwiOiAiRnJlaWdlZ2ViZW4iLAogICAgICAiY29sb3IiOiAiI0Q0RUREQSIsCiAg +ICAgICJ0ZXh0Q29sb3IiOiAiIzE1NTcyNCIsCiAgICAgICJpY29uIjogIuKchSIsCiAgICAgICJi +ZXNjaHJlaWJ1bmciOiAiVmVyZsO8Z2JhciB1bmQgZWluc2F0emJlcmVpdCIKICAgIH0sCiAgICAi +QWJnZWxlaG50IjogewogICAgICAibGFiZWwiOiAiQWJnZWxlaG50IiwKICAgICAgImNvbG9yIjog +IiNGOEQ3REEiLAogICAgICAidGV4dENvbG9yIjogIiM3MjFDMjQiLAogICAgICAiaWNvbiI6ICLi +nYwiLAogICAgICAiYmVzY2hyZWlidW5nIjogIlp1ciDDnGJlcmFyYmVpdHVuZyB6dXLDvGNrZ2V3 +aWVzZW4iCiAgICB9CiAgfSwKICAiaGlkZGVuS2F0ZWdvcmllbiI6IFtdCn0= +### FILE: data/governance.json | 970 +RFJJVkUtRU5DOjRqTENINjMxcmRjR01ETkcwMXlwWkNlYnZibXlBTnNLem5YSGRpa2hXSDZhY0Ur +VnUvek9NeTI5bEdpY2NBeHljYmJCTUcxZ1lOQ0xPV0twVDhmZC92WTRvY2JWbit0QTN4SG0reVZZ +MDB4VnRhaUtJQjFuaFVQR3YvbjJGZWpTTTRjTFJrdmZQODRYa2IvY21jUlRSU3RMV2tzTFlVbHZx +b2NrRTlpMVpqMzE5Y01GM0RRcGhtaUFTdEJVK3VJNUNWQjlVS2pEclAya2p4UlhFVnZBYWdxY0lW +b1NGbk9Yd3FZM2JDU21tZ3ZwOHBkUTYvcC90QytkN2paWGR4OG52WlBSWnpEbjkxM1h5aTFjVnBZ +cktwSlUyN1AvdlRPc1l4TTZ5U3RjYmxaWEQwMnpJdXpTdFlrcDR6QWU0VWE1OTgxdnN4c1pJSlAw +azcyTjJ1aWk5TnNSWmtLS3hXN0Q0akhkZW52K0J1RFhDV0FYVEtPV3gyaHc5SURPUEQ3M0RqdTVp +T3hwTGRWaldjemtCTjd6Zm5yTk91NTI2a0RiOXhUeE1aaU5FVXp6K1YxQlgzdVBmRkthU0JRdHJh +Z3pvdTVPMUErOExxVVRkM1ZMcnova1VBQWV5Q0o5ZHg3eWZla2hCWVFka0pUQUdJRlREaHAvVFds +ZVQwVkNQL3R0azBKaE1kSndWVUdCU2FZdVFvWXVwZDdTWC9EUk44RUxVSENlWU5xUWNqVnBwVldm +K0dGUGdjdk4rd3BOU202UkoyQjFrbmkzM3A5WDEwWjRvZmtZWTd2S29iM3ZEU25sWll1d0ZJMzR0 +a0hHZDlaZ2NIRE9nbjRIbktLMytBVmN4VlhIemplSWdiZzA5MERyczlndnQ0Zm1OdFRlMnVpNU9E +OVJWTDdDUHJzaDA0Uk5rSHI5OEFsQ0JpUEF1b0NYSDZOUkF0dndqRjRMWmkwMElOc0phZUJaN05W +SklaV0l4NjdFYXczdm9YdjM4K3dQSVFGbW1INUpGOXg1eTdSQmVhKysxdldXTVRiSXJsREt4QWhD +dDlwQWdDTnh2aEVPTlBGT21qemE1VXlRV1AzcElFKytpVHVvdG5IanBUV0w0eWZHNVJPWWtERDRI +c0d6RVFjZTFDSGxXRTVLRHRwaDRrMDJQRnlvc0FBU2ZLWG4wc1RRSERZS3Q0NUJZK0p5TlAyTW1T +MndUWUJjell2ZmFzazgxMXcvcWJqeExJSlhkNnl3MUI0TEZzbVpGdllObUNIL1RVY2NJOUE4Z0pI +ZQ== +### FILE: data/governance.template.json | 244 +ewogICJ2ZXJzaW9uIjogIjEuMCIsCiAgInN1cGVyVXNlcnMiOiBbCiAgICB7ICJ1c2VybmFtZSI6 +ICJISUVSX05XX0tFTk5VTkciLCAiZG9tYWluIjogIioiLCAiZGlzcGxheU5hbWUiOiAiVm9ybmFt +ZSBOYWNobmFtZSIgfQogIF0sCiAgInJldmlld2VycyI6IFtdLAogICJzZXR0aW5ncyI6IHsKICAg +ICJyZXF1aXJlQXBwcm92YWxGb3JOZXciOiB0cnVlLAogICAgInJlcXVpcmVBcHByb3ZhbEZvckVk +aXQiOiB0cnVlCiAgfQp9Cg== +### FILE: data/index.js | 74282 +dmFyIERSSVZFX1NUQVRJQ19JTkRFWCA9IHsidmVyc2lvbiI6IjMuMCIsImxhc3RVcGRhdGVkIjoi +MjAyNi0wMy0yN1QwMDozODowNy4zMzhaIiwiY29uZmlnIjp7InZlcnNpb24iOiIzLjYiLCJhcHBO +YW1lIjoiRC5SLkkuVi5FLiIsImFwcFN1YnRpdGxlIjoiRGlnaXRhbGVzIFJlc3NvdXJjZW4tIHVu +ZCBJbmZvcm1hdGlvbnNwb3J0YWwgVmVya2VociIsImthdGVnb3JpZW4iOlsiVmVya2VociIsIlNp +Y2hlcmhlaXQiLCJQbGFudW5nIiwiT3JnYW5pc2F0aW9uIiwiU296aWFsdm9yc2NocmlmdGVuIiwi +TGFkdW5nc3NpY2hlcnVuZyIsIsOcYmVybGFkdW5nIiwiS09NIiwiR0dWUyIsIkZhaHJ6ZXVndGVj +aG5payIsIlRlY2hLb250cm9sbFZPIiwiS2Fib3RhZ2UiLCJEb2t1bWVudGVuZsOkbHNjaHVuZyIs +Ilp1bGFzc3VuZ2VuIiwiQWxrb2hvbCIsIkJUTSIsIkdlc2Nod2luZGlna2VpdCIsIkFic3RhbmQi +LCJGYWxzY2hmYWhyZXIiLCJWZXJmb2xndW5nc2ZhaHJ0IiwiVHVubmVsIiwiU3TDtnJmYWxsIiwi +Rm90b2dyYWZpZSIsIlR1bmluZyIsIlZLUiIsIlNjaGxlcHBlbiIsIlNjaHJvdHRzYW1tbGVyIl0s +InN0YXR1cyI6eyJFbnR3dXJmIjp7ImxhYmVsIjoiRW50d3VyZiIsImNvbG9yIjoiI0ZGRjNDRCIs +InRleHRDb2xvciI6IiM4NTY0MDQiLCJpY29uIjoi8J+TnSIsImJlc2NocmVpYnVuZyI6IkRva3Vt +ZW50IGluIEJlYXJiZWl0dW5nIn0sIlByw7xmdW5nIjp7ImxhYmVsIjoiWnVyIFByw7xmdW5nIiwi +Y29sb3IiOiIjRkZFNUI0IiwidGV4dENvbG9yIjoiIzdBNDQxOSIsImljb24iOiLwn5GB77iPIiwi +YmVzY2hyZWlidW5nIjoiV2FydGV0IGF1ZiBGcmVpZ2FiZSJ9LCJGcmVpZ2VnZWJlbiI6eyJsYWJl +bCI6IkZyZWlnZWdlYmVuIiwiY29sb3IiOiIjRDRFRERBIiwidGV4dENvbG9yIjoiIzE1NTcyNCIs +Imljb24iOiLinIUiLCJiZXNjaHJlaWJ1bmciOiJWZXJmw7xnYmFyIHVuZCBlaW5zYXR6YmVyZWl0 +In0sIkFiZ2VsZWhudCI6eyJsYWJlbCI6IkFiZ2VsZWhudCIsImNvbG9yIjoiI0Y4RDdEQSIsInRl +eHRDb2xvciI6IiM3MjFDMjQiLCJpY29uIjoi4p2MIiwiYmVzY2hyZWlidW5nIjoiWnVyIMOcYmVy +YXJiZWl0dW5nIHp1csO8Y2tnZXdpZXNlbiJ9fSwiaGlkZGVuS2F0ZWdvcmllbiI6W119LCJnb3Zl +cm5hbmNlIjp7InNldHRpbmdzIjp7InJlcXVpcmVBcHByb3ZhbEZvck5ldyI6dHJ1ZSwicmVxdWly +ZUFwcHJvdmFsRm9yRWRpdCI6dHJ1ZSwic2hvd0NvbnRyaWJ1dG9ycyI6dHJ1ZSwic2hvd1Jldmll +d0hpc3RvcnkiOnRydWUsImtleXdvcmRNb2RlIjoib3B0aW9uYWwiLCJrZXl3b3Jkc1JlcXVpcmVk +IjpmYWxzZX0sInJldmlld2VycyI6W3siZGlzcGxheU5hbWUiOiJQaGlsaXBwIiwia2F0ZWdvcmll +biI6WyJPcmdhbmlzYXRpb24iXX1dLCJoaWRkZW5LYXRlZ29yaWVuIjpbXX0sInN0YXJ0c2VpdGUi +Om51bGwsImRvY3VtZW50cyI6W3siaWQiOiJEMDAxIiwidGl0ZWwiOiJBYnN0YW5kIHNjaGFmZnQg +U2ljaGVyaGVpdCIsImthdGVnb3JpZSI6IkFic3RhbmQiLCJpbmhhbHQiOiI8ZGl2IHN0eWxlPVwi +Y2FyZXQtY29sb3I6IHJnYigyMywgNDMsIDc3KTsgdGV4dC1kZWNvcmF0aW9uLXRoaWNrbmVzczog +YXV0bzsgdGV4dC1kZWNvcmF0aW9uLXN0eWxlOiBzb2xpZDtcIj48ZGl2IGNsYXNzPVwiZHJpdmUt +aW5mb2JveFwiIHN0eWxlPVwib3V0bGluZTogMnB4IHNvbGlkIHZhcigtLXRleHQtaGVhZGluZyk7 +IG91dGxpbmUtb2Zmc2V0OiAycHg7XCI+PGgzPkhhdXB0dW5mYWxsdXJzYWNoZTwvaDM+PHA+PHNw +YW4gc3R5bGU9XCJjYXJldC1jb2xvcjogcmdiKDI1NSwgMjU1LCAyNTUpO1wiPkluIE5vcmRyaGVp +bi1XZXN0ZmFsZW4gdmVydW5nbMO8Y2t0ZW4gaW0gSmFociAyMDI0IDc4LjY3NSBNZW5zY2hlbiBi +ZWkgVmVya2VocnN1bmbDpGxsZW4uIDE2MSB2b24gaWhuZW4gdmVybG9yZW4gaWhyIExlYmVuLiBF +aW5lIGRlciBIYXVwdHVuZmFsbHVyc2FjaGVuOiBtYW5nZWxuZGVyIFNpY2hlcmhlaXRzYWJzdGFu +ZC48L3NwYW4+PC9wPjwvZGl2PjxwPjxicj48L3A+PHA+4oCLPGJyPuKAi0VpbiBhdXNyZWljaGVu +ZGVyIEFic3RhbmQgenVtIHZvcmF1c2ZhaHJlbmRlbiBGYWhyemV1ZyBpc3QgZW50c2NoZWlkZW5k +IGbDvHIgZGllIFZlcmtlaHJzc2ljaGVyaGVpdC4gRGVyIFNpY2hlcmhlaXRzYWJzdGFuZCBlcm3D +tmdsaWNodCBlcywgcmVjaHR6ZWl0aWcgenUgcmVhZ2llcmVuLCB3ZW5uIGRlciBWb3JhdXNmYWhy +ZW5kZSBwbMO2dHpsaWNoIGJyZW1zdC48L3A+PGg0IHN0eWxlPVwidmVydGljYWwtYWxpZ246IGJh +c2VsaW5lOyBmb250LXdlaWdodDogbm9ybWFsO1wiPjxzdHJvbmcgc3R5bGU9XCJmb250LXdlaWdo +dDogYm9sZDsgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1wiPjg3IE1ldGVyIGJpcyB6dW0gU3Rp +bGxzdGFuZCZuYnNwOzwvc3Ryb25nPjwvaDQ+PHA+VmllbGUgVmVya2VocnN0ZWlsbmVobWVyaW5u +ZW4gdW5kIFZlcmtlaHJzdGVpbG5laG1lciBzY2jDpHR6ZW4gaWhyIFJlYWt0aW9uc3Zlcm3Dtmdl +biB6dSBvcHRpbWlzdGlzY2ggZWluLiBJbSBEdXJjaHNjaG5pdHQgZGF1ZXJ0IGVzIGV0d2EgMTgw +IE1pbGxpc2VrdW5kZW4sIGJpcyBGYWhyZW5kZSBlaW4gSGluZGVybmlzIHdhaHJuZWhtZW4gdW5k +IGRhcmF1ZiByZWFnaWVyZW4uIEJlaSBlaW5lciBHZXNjaHdpbmRpZ2tlaXQgdm9uIDEwMCBrbS9o +IGxlZ2VuIGRpZSBWZXJrZWhyc3RlaWxuZWhtZXJpbm5lbiB1bmQgVmVya2VocnN0ZWlsbmVobWVy +IGluIGRpZXNlciBSZWFrdGlvbnN6ZWl0IGV0d2EgMjggTWV0ZXIgenVyw7xjay4gRXJzdCBkYW5h +Y2ggYmVnaW5udCBkZXIgQnJlbXN3ZWcsIGRlciBhdWYgdHJvY2tlbmVyIEZhaHJiYWhuIHJ1bmQg +NTkgTWV0ZXIgYmV0csOkZ3QuIEluc2dlc2FtdCBiZW7DtnRpZ2VuIGRpZSBGYWhyZW5kZW4gYWxz +byBldHdhIDg3IE1ldGVyLCB1bSB6dW0gU3RpbGxzdGFuZCB6dSBrb21tZW4uPC9wPjxoNCBzdHls +ZT1cInZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTsgZm9udC13ZWlnaHQ6IG5vcm1hbDtcIj48c3Ry +b25nIHN0eWxlPVwiZm9udC13ZWlnaHQ6IGJvbGQ7IHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtc +Ij5TaWNoZXJoZWl0c2Fic3RhbmQgZ2lsdCBhdWNoIGlubmVyb3J0cyZuYnNwOzwvc3Ryb25nPjwv +aDQ+PHA+QWJlciBuaWNodCBudXIgYmVpIGhvaGVuIEdlc2Nod2luZGlna2VpdGVuIGlzdCBlaW4g +YXVzcmVpY2hlbmRlciBTaWNoZXJoZWl0c2Fic3RhbmQgenVtIFZvcmF1c2ZhaHJlbmRlbiB3aWNo +dGlnLiBWb3IgYWxsZW0gaW5uZXJoYWxiIGdlc2NobG9zc2VuZXIgT3J0c2NoYWZ0ZW4gcGFzc2ll +cmVuIGRpZSBtZWlzdGVuIFVuZsOkbGxlLCB3ZWlsIGRlciBBYnN0YW5kIG5pY2h0IGVpbmdlaGFs +dGVuIHdvcmRlbiBpc3QuPC9wPjwvZGl2PjxkaXYgc3R5bGU9XCJjYXJldC1jb2xvcjogcmdiKDIz +LCA0MywgNzcpOyB0ZXh0LWRlY29yYXRpb24tdGhpY2tuZXNzOiBhdXRvOyB0ZXh0LWRlY29yYXRp +b24tc3R5bGU6IHNvbGlkO1wiPjxkaXY+PGRpdj48ZGl2IGRhdGEtb25jZT1cImZpZWxkZ3JvdXAt +ZWZmZWN0c1wiIHJvbGU9XCJ0YWJsaXN0XCIgc3R5bGU9XCJvdXRsaW5lOiAwcHg7IGxpc3Qtc3R5 +bGU6IG5vbmU7XCI+PGRpdiByb2xlPVwidGFiXCIgaWQ9XCJ1aS1pZC0xXCIgYXJpYS1jb250cm9s +cz1cInVpLWlkLTJcIiBhcmlhLXNlbGVjdGVkPVwidHJ1ZVwiIGFyaWEtZXhwYW5kZWQ9XCJ0cnVl +XCIgdGFiaW5kZXg9XCIwXCIgc3R5bGU9XCJjdXJzb3I6IHBvaW50ZXI7IHBvc2l0aW9uOiByZWxh +dGl2ZTtcIj5UaXBwcyBmw7xyIGVpbmVuIHNpY2hlcmVuIEFic3RhbmQ8L2Rpdj48ZGl2IGlkPVwi +dWktaWQtMlwiIGFyaWEtbGFiZWxsZWRieT1cInVpLWlkLTFcIiByb2xlPVwidGFicGFuZWxcIiBh +cmlhLWhpZGRlbj1cImZhbHNlXCIgc3R5bGU9XCJvdXRsaW5lOiAwcHg7IGxpc3Qtc3R5bGU6IG5v +bmU7IG92ZXJmbG93OiB2aXNpYmxlO1wiPjxoNSBzdHlsZT1cInZlcnRpY2FsLWFsaWduOiBiYXNl +bGluZTsgZm9udC13ZWlnaHQ6IG5vcm1hbDtcIj48ZW0gc3R5bGU9XCJ2ZXJ0aWNhbC1hbGlnbjog +YmFzZWxpbmU7XCI+WndlaS1TZWt1bmRlbi1SZWdlbDwvZW0+PC9oNT48cD5XZW5uIGVpbiB2b3Jh +dXNmYWhyZW5kZXMgRmFocnpldWcgYXXDn2VyaGFsYiBnZXNjaGxvc3NlbmVyIE9ydHNjaGFmdGVu +IGVpbiBTY2hpbGQgcGFzc2llcnQsIHNvbGx0ZW4gU2llIGRlbnNlbGJlbiBQdW5rdCBmcsO8aGVz +dGVucyB6d2VpIFNla3VuZGVuIHNww6R0ZXIgZXJyZWljaGVuLjwvcD48cD5XaWNodGlnOiBEaWVz +ZSBGYXVzdGZvcm1lbCBnaWx0IGF1ZiB0cm9ja2VuZXIgRmFocmJhaG4sIGJlaSBSZWdlbiBvZGVy +IFNjaG5lZSBzb2xsdGUgZGVyIEFic3RhbmQgZW50c3ByZWNoZW5kIGdyw7bDn2VyIHNlaW4uPC9w +PjxoNSBzdHlsZT1cInZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTsgZm9udC13ZWlnaHQ6IG5vcm1h +bDtcIj48ZW0gc3R5bGU9XCJ2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XCI+Vm9yYXVzc2NoYXVl +bmQgZmFocmVuPC9lbT48L2g1PjxwPkluc2Jlc29uZGVyZSBiZWkgZGljaHRlbSBWZXJrZWhyIHVu +ZCBCcmVtc3ZvcmfDpG5nZW4gYW5kZXJlciBWZXJrZWhyc3RlaWxuZWhtZXJpbm5lbiB1bmQgVGVp +bG5laG1lciB2b3IgSWhuZW4gYXBwZWxsaWVydCBkaWUgUG9saXplaSB6dSB2b3JhdXNzY2hhdWVu +ZGVtIEZhaHJlbiB1bmQgZWluZW0gYXVzcmVpY2hlbmRlbiBTaWNoZXJoZWl0c2Fic3RhbmQuPC9w +PjxoNSBzdHlsZT1cInZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTsgZm9udC13ZWlnaHQ6IG5vcm1h +bDtcIj48ZW0gc3R5bGU9XCJ2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XCI+RmFocnpldWdiZWxh +ZHVuZyBiZWFjaHRlbjwvZW0+PC9oNT48cD5EaWUgQmVsYWR1bmcgZGVzIEZhaHJ6ZXVncyBvZGVy +IGVpbiBBbmjDpG5nZXIgdmVybMOkbmdlcm4gZGVuIEJyZW1zd2VnLiBTZWllbiBTaWUgc2ljaCBh +bHNvIMO8YmVyIGRlbiBCZWxhZHVuZ3N6dXN0YW5kIElocmVzIEZhaHJ6ZXVnZXMgYmV3dXNzdC48 +L3A+PGg1IHN0eWxlPVwidmVydGljYWwtYWxpZ246IGJhc2VsaW5lOyBmb250LXdlaWdodDogbm9y +bWFsO1wiPjxlbSBzdHlsZT1cInZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcIj5BYmxlbmt1bmdl +biB2ZXJtZWlkZW48L2VtPjwvaDU+PHA+QWJsZW5rdW5nZW4gZHVyY2ggTmF2aWdhdGlvbnNnZXLD +pHRlIHVuZCDDpGhubGljaGVzIHNvbGx0ZW4gdmVybWllZGVuIHdlcmRlbiwgdW0gaW0gU3RyYcOf +ZW52ZXJrZWhyIHJlY2h0emVpdGlnIHJlYWdpZXJlbiB6dSBrw7ZubmVuLiZuYnNwOzwvcD48L2Rp +dj48L2Rpdj48L2Rpdj48L2Rpdj48L2Rpdj4iLCJzdGF0dXMiOiJGcmVpZ2VnZWJlbiIsImVyc3Rl +bGx0IjoiMjAyNi0wMy0yNyIsImdlYWVuZGVydCI6IjIwMjYtMDMtMjciLCJlcnN0ZWxsdFZvbiI6 +InJoaW5vIiwiYmVhcmJlaXRldFZvbiI6InJoaW5vIiwidmVyc2lvbiI6InYwLjEiLCJtZWRpYXMi +OltdLCJzY2hsYWd3b2VydGVyIjpbXSwicGFyZW50SWQiOm51bGwsImNvbnRyaWJ1dG9ycyI6W3si +dXNlcm5hbWUiOiJyaGlubyIsInJvbGUiOiJhdXRvciIsImVudHJpZXMiOjEsImZpcnN0Q29udHJp +YiI6IjIwMjYtMDMtMjdUMDA6Mjg6MjcuMDc0WiJ9XX0seyJpZCI6IkQwMDIiLCJ0aXRlbCI6Imxl +Z2FsZSBEcm9nZTogQWxrb2hvbCIsImthdGVnb3JpZSI6IkFsa29ob2wiLCJpbmhhbHQiOiI8c3Bh +biBzdHlsZT1cImNhcmV0LWNvbG9yOiByZ2IoODUsIDg2LCA4OCk7IGxldHRlci1zcGFjaW5nOiAw +LjE4NTQ2cHg7XCI+QWxrb2hvbCBhbSBTdGV1ZXIgaXN0IGtlaW4gS2F2YWxpZXJzZGVsaWt0LCBz +b25kZXJuIGVpbmUgZXJuc3RoYWZ0ZSBHZWbDpGhyZHVuZyBmw7xyIGFsbGUgVmVya2VocnN0ZWls +bmVobWVyaW5uZW4gdW5kIFZlcmtlaHJzdGVpbG5laG1lci4gQmVyZWl0cyBnZXJpbmdlIE1lbmdl +biBBbGtvaG9sIGvDtm5uZW4gUmVha3Rpb25zZsOkaGlna2VpdCwgU2VoLSB1bmQgSMO2cnZlcm3D +tmdlbiBiZWVpbnRyw6RjaHRpZ2VuLCB3YXMgenUgRmVobGVudHNjaGVpZHVuZ2VuIHVuZCBVbmbD +pGxsZW4gZsO8aHJ0LiBCZXNvbmRlcnMgaW4gS29tYmluYXRpb24gbWl0IMO8YmVyaMO2aHRlciBH +ZXNjaHdpbmRpZ2tlaXQgZW50c3RlaHQgZWluZSBnZWbDpGhybGljaGUgTWlzY2h1bmcuIEZhaHJl +cmlubmVuIHVuZCBGYWhyZXIsIGRpZSBhbGtvaG9saXNpZXJ0IHVudGVyd2VncyBzaW5kLCByaXNr +aWVyZW4gaG9oZSBHZWxkc3RyYWZlbiwgRmFocnZlcmJvdGUgdW5kIGRlbiBWZXJsdXN0IGRlcyBG +w7xocmVyc2NoZWlucy4gU2ljaGVyaGVpdCBpbSBTdHJhw59lbnZlcmtlaHIgYmVnaW5udCBtaXQg +ZWluZW0ga2xhcmVuIEtvcGYg4oCTIGxhc3NlbiBTaWUgSWhyIEZhaHJ6ZXVnIHN0ZWhlbiwgd2Vu +biBTaWUgQWxrb2hvbCBrb25zdW1pZXJ0IGhhYmVuLjwvc3Bhbj4iLCJzdGF0dXMiOiJGcmVpZ2Vn +ZWJlbiIsImVyc3RlbGx0IjoiMjAyNi0wMy0yNyIsImdlYWVuZGVydCI6IjIwMjYtMDMtMjciLCJl +cnN0ZWxsdFZvbiI6InJoaW5vIiwiYmVhcmJlaXRldFZvbiI6InJoaW5vIiwidmVyc2lvbiI6InYw +LjEiLCJtZWRpYXMiOltdLCJzY2hsYWd3b2VydGVyIjpbIkFsa29ob2wiXSwicGFyZW50SWQiOm51 +bGwsImNvbnRyaWJ1dG9ycyI6W3sidXNlcm5hbWUiOiJyaGlubyIsInJvbGUiOiJhdXRvciIsImVu +dHJpZXMiOjEsImZpcnN0Q29udHJpYiI6IjIwMjYtMDMtMjdUMDA6Mjk6MzAuMjM1WiJ9XX0seyJp +ZCI6IkQwMDMiLCJ0aXRlbCI6ImxlZ2FsZSBEcm9nZTogQ2FubmFiaXMiLCJrYXRlZ29yaWUiOiJC +VE0iLCJpbmhhbHQiOiI8cCBzdHlsZT1cImxldHRlci1zcGFjaW5nOiAwLjAxZW07IHRleHQtZGVj +b3JhdGlvbi10aGlja25lc3M6IGF1dG87IHRleHQtZGVjb3JhdGlvbi1zdHlsZTogc29saWQ7XCI+ +Q2FubmFiaXMgaXN0IGVpbmUgZGVyIGFtIGjDpHVmaWdzdGVuIGtvbnN1bWllcnRlbiBwc3ljaG9h +a3RpdmVuIFN1YnN0YW56ZW4gd2VsdHdlaXQuIERlciBXaXJrc3RvZmYgdm9uIFRldHJhaHlkcm9j +YW5uYWJpbm9sIChUSEMpIGJlZWluZmx1c3N0IGRhcyB6ZW50cmFsZSBOZXJ2ZW5zeXN0ZW0gdW5k +IHZlcsOkbmRlcnQgZGFkdXJjaCBkaWUgRnVua3Rpb25lbiBkZXMgS8O2cnBlcnMuIERpZXMgZsO8 +aHJ0IHp1IGVpbmVyIFJlaWhlIHZvbiBwc3ljaG9ha3RpdmVuIEVmZmVrdGVuLCBkaWUgd2llZGVy +dW0gZGllIEbDpGhpZ2tlaXQgenVtIHNpY2hlcmVuIEZhaHJlbiBiZWVpbnRyw6RjaHRpZ2VuIGvD +tm5uZW4uICZuYnNwOzwvcD48cCBzdHlsZT1cImxldHRlci1zcGFjaW5nOiAwLjAxZW07IHRleHQt +ZGVjb3JhdGlvbi10aGlja25lc3M6IGF1dG87IHRleHQtZGVjb3JhdGlvbi1zdHlsZTogc29saWQ7 +XCI+SW0gUmFobWVuIGRlciBUZWlsbGVnYWxpc2llcnVuZyB2b24gQ2FubmFiaXMsIGJlaSBkZXIg +ZHVyY2ggZGFzIElua3JhZnR0cmV0ZW4gZGVzIEtvbnN1bWNhbm5hYmlzZ2VzZXR6ZXMgKEtDYW5H +KSB6dW0gMDEuMDQuMjAyNCBkZXIgQmVzaXR6LCBLb25zdW0gdW5kIEFuYmF1IHZvbiBDYW5uYWJp +cyB1bnRlciBiZXN0aW1tdGVuIFZvcmF1c3NldHp1bmdlbiBlcmxhdWJ0IGlzdCwgd3VyZGVuIG51 +biBhdWNoIGRpZSBWb3JzY2hyaWZ0ZW4gZsO8ciBkYXMgRmFocmVuIHVudGVyIENhbm5hYmlzZWlu +d2lya3VuZyBuZXUgZ2VyZWdlbHQuPC9wPjxwIHN0eWxlPVwibGV0dGVyLXNwYWNpbmc6IDAuMDFl +bTsgdGV4dC1kZWNvcmF0aW9uLXRoaWNrbmVzczogYXV0bzsgdGV4dC1kZWNvcmF0aW9uLXN0eWxl +OiBzb2xpZDtcIj5IaWVyenUgd3VyZGVuIGRpZSBSZWdlbHVuZ2VuIGltIFN0cmHDn2VudmVya2Vo +cnNnZXNldHogKFN0VkcpIHVuZCBkZXIgRmFocmVybGF1Ym5pc3Zlcm9yZG51bmcgKEZlVikgZ2XD +pG5kZXJ0IHVuZCBhbmdlcGFzc3QuIEJpc2xhbmcgZ2FiIGVzIGtlaW5lbiBUSEMtR3Jlbnp3ZXJ0 +LCBhbmFsb2cgZGVtIEFsa29ob2wtR3Jlbnp3ZXJ0IHZvbiAwLDUgUHJvbWlsbGUuIEVpbiBWZXJz +dG/DnyBnZWdlbiDCpyAyNGEgKDIpIFN0VkcgbGFnIGRlbW5hY2ggYmVyZWl0cyB2b3IsIHNvYmFs +ZCBuYWNoZ2V3aWVzZW4gd2VyZGVuIGtvbm50ZSwgZGFzcyBkaWUgRmFocmVyaW4gLyBkZXIgRmFo +cmVyIHVudGVyIGRlciBXaXJrdW5nIHZvbiBUSEMgZWluIEtyYWZ0ZmFocnpldWcgZ2Vmw7xocnQg +aGF0LiBEaWVzZXIgTmFjaHdlaXMgd2FyIG1pdCBlaW5lbSBUSEMtV2VydCB2b24gMSBuZy9tbCBp +bSBCbHV0IGdlZ2ViZW4uPC9wPjxwIHN0eWxlPVwibGV0dGVyLXNwYWNpbmc6IDAuMDFlbTsgdGV4 +dC1kZWNvcmF0aW9uLXRoaWNrbmVzczogYXV0bzsgdGV4dC1kZWNvcmF0aW9uLXN0eWxlOiBzb2xp +ZDtcIj5BbSAyMi4wOC4yMDI0IHRyYXRlbiBudW4gZGllIG5ldWVuIFJlZ2VsdW5nZW4gZGllc2Jl +esO8Z2xpY2ggaW4gS3JhZnQuPC9wPiIsInN0YXR1cyI6IkZyZWlnZWdlYmVuIiwiZXJzdGVsbHQi +OiIyMDI2LTAzLTI3IiwiZ2VhZW5kZXJ0IjoiMjAyNi0wMy0yNyIsImVyc3RlbGx0Vm9uIjoicmhp +bm8iLCJiZWFyYmVpdGV0Vm9uIjoicmhpbm8iLCJ2ZXJzaW9uIjoidjAuMSIsIm1lZGlhcyI6W10s +InNjaGxhZ3dvZXJ0ZXIiOlsiQlRNIl0sInBhcmVudElkIjpudWxsLCJjb250cmlidXRvcnMiOlt7 +InVzZXJuYW1lIjoicmhpbm8iLCJyb2xlIjoiYXV0b3IiLCJlbnRyaWVzIjoyLCJmaXJzdENvbnRy +aWIiOiIyMDI2LTAzLTI3VDAwOjMwOjIyLjYwNFoiLCJsYXN0Q29udHJpYiI6IjIwMjYtMDMtMjdU +MDA6MzU6MTUuMTM5WiJ9XX0seyJpZCI6IkQwMDQiLCJ0aXRlbCI6IlVya3VuZGVuZsOkbHNjaHVu +ZyBhbSBBdXRva2VubnplaWNoZW4g4oCTIEdlaHQgZGFzPyIsImthdGVnb3JpZSI6IkRva3VtZW50 +ZW5mw6Rsc2NodW5nIiwiaW5oYWx0IjoiPHAgc3R5bGU9XCJjYXJldC1jb2xvcjogcmdiKDQ2LCA0 +NiwgNDYpOyB0ZXh0LWRlY29yYXRpb24tdGhpY2tuZXNzOiBhdXRvOyB0ZXh0LWRlY29yYXRpb24t +c3R5bGU6IHNvbGlkO1wiPldlciBzaWNoIGltIFN0cmHDn2VudmVya2VociBuaWNodCBhbiBkaWUg +Z2VsdGVuZGVuIFZvcnNjaHJpZnRlbiB6dXImbmJzcDs8YSBocmVmPVwiaHR0cHM6Ly93d3cuYnVz +c2dlbGRrYXRhbG9nLm9yZy92b3JmYWhydC9cIj5Wb3JmYWhydDwvYT4sIHp1ciB6dWzDpHNzaWdl +biBIw7ZjaHN0Z2VzY2h3aW5kaWdrZWl0LCB6dW0mbmJzcDs8YSBocmVmPVwiaHR0cHM6Ly93d3cu +YnVzc2dlbGRrYXRhbG9nLm9yZy9hYnN0YW5kL1wiPkFic3RhbmQ8L2E+Jm5ic3A7b2RlciB6dSBk +aXZlcnNlbiBhbmRlcmVuIFJlZ2VsdW5nZW4gaMOkbHQsIGRlbSBkcm9oZW4gc2NobmVsbCBTYWt0 +aW9uZW4uIERhYmVpIGtvbW1lbiZuYnNwOzxzcGFuIHN0eWxlPVwiZm9udC13ZWlnaHQ6IDcwMDtc +Ij5CdcOfZ2VsZGVyPC9zcGFuPiwmbmJzcDs8c3BhbiBzdHlsZT1cImZvbnQtd2VpZ2h0OiA3MDA7 +XCI+PGEgaHJlZj1cImh0dHBzOi8vd3d3LmJ1c3NnZWxka2F0YWxvZy5vcmcvcHVua3RlLWZsZW5z +YnVyZy9cIj5QdW5rdGU8L2E+Jm5ic3A7PC9zcGFuPmltIEZsZW5zYnVyZ2VyJm5ic3A7PGEgaHJl +Zj1cImh0dHBzOi8vd3d3LmJ1c3NnZWxka2F0YWxvZy5vcmcvZmFocmVpZ251bmdzcmVnaXN0ZXIv +XCI+RmFocmVpZ251bmdzcmVnaXN0ZXI8L2E+Jm5ic3A7b2RlciBzb2dhciZuYnNwOzxzcGFuIHN0 +eWxlPVwiZm9udC13ZWlnaHQ6IDcwMDtcIj5GYWhydmVyYm90ZTwvc3Bhbj4mbmJzcDtpbiBCZXRy +YWNodC4gRGllIFN0cmHDn2VudmVya2VocnNvcmRudW5nIChrdXJ6OiBTdFZPKSBlbnRow6RsdCBl +aW5lIGdhbnplIE1lbmdlIGFuIFJlZ2VsdW5nZW4sIGRlcmVuIEJlYWNodHVuZyB6d2luZ2VuZCBl +cmZvcmRlcmxpY2ggaXN0LiZuYnNwOzxicj7igIs8L3A+PHAgc3R5bGU9XCJjYXJldC1jb2xvcjog +cmdiKDQ2LCA0NiwgNDYpOyB0ZXh0LWRlY29yYXRpb24tdGhpY2tuZXNzOiBhdXRvOyB0ZXh0LWRl +Y29yYXRpb24tc3R5bGU6IHNvbGlkO1wiPkRvY2ggaW0gWnVzYW1tZW5oYW5nIG1pdCBkZW0gU3Ry +YcOfZW52ZXJrZWhyIGthbm4gZWluIEF1dG9mYWhyZXIgbmljaHQgbnVyJm5ic3A7PHNwYW4gc3R5 +bGU9XCJmb250LXdlaWdodDogNzAwO1wiPjxhIGhyZWY9XCJodHRwczovL3d3dy5idXNzZ2VsZGth +dGFsb2cub3JnL29yZG51bmdzd2lkcmlna2VpdC9cIj5PcmRudW5nc3dpZHJpZ2tlaXRlbjwvYT4m +bmJzcDs8L3NwYW4+YmVnZWhlbi4gRGFzJm5ic3A7PHNwYW4gc3R5bGU9XCJmb250LXdlaWdodDog +NzAwO1wiPlN0cmFmcmVjaHQmbmJzcDs8L3NwYW4+bm9ybWllcnQgaW4gZGllc2VtIEtvbnRleHQg +ZWJlbmZhbGxzIGVpbmUgZ2FuemUgUmVpaGUgYW4gVGF0YmVzdMOkbmRlbiwgZGllIGbDvHIgZGVu +IEJldHJvZmZlbmVuIHdlaXRhdXMgaMOkcnRlcmUgU2Fua3Rpb25lbiB1bmQgS29uc2VxdWVuemVu +IG1pdCBzaWNoIGJyaW5nZW4ga8O2bm5lbiwgYWxzIGRpZSBlaW5lcyZuYnNwOzxzcGFuIHN0eWxl +PVwiZm9udC13ZWlnaHQ6IDcwMDtcIj5CdcOfZ2VsZHZlcmZhaHJlbnM8L3NwYW4+LiBOZWJlbiBk +ZXIgVHJ1bmtlbmhlaXRzZmFocnQgaW0gU2lubmUgZGVzIMKnIDMxNiBkZXMgU3RyYWZnZXNldHpi +dWNoZXMgKGt1cno6IFN0R0IpIGtvbW10IGVzIHp1bSBCZWlzcGllbCBpbW1lciB3aWVkZXIgdm9y +LCBkYXNzIHNpY2ggQXV0b2ZhaHJlciB3ZWdlbiBkZXMgRGVsaWt0ZXMgZGVyJm5ic3A7PHNwYW4g +c3R5bGU9XCJmb250LXdlaWdodDogNzAwO1wiPlVya3VuZGVuZsOkbHNjaHVuZzwvc3Bhbj4mbmJz +cDtzdHJhZmJhciBtYWNoZW4gYXVmZ3J1bmQgdm9uIE1hbmlwdWxhdGlvbmVuIGFtIEF1dG9rZW5u +emVpY2hlbi48YnI+4oCLPGJyPuKAi0F1ZiBkZW4gZXJzdGVuIEJsaWNrIG1hZyBkYXMgdmllbGxl +aWNodCBldHdhcyBhYnN1cmQga2xpbmdlbi4gSW1tZXJoaW4gd2lyZCBtaXQgZGVtIEJlZ3JpZmYm +bmJzcDs8c3BhbiBzdHlsZT1cImZvbnQtd2VpZ2h0OiA3MDA7XCI+VXJrdW5kZW4mbmJzcDs8L3Nw +YW4+ZG9jaCBnZW1laW5oaW4gZWluIFN0w7xjayBQYXBpZXIgdmVyc3RhbmRlbiwgdmVyc2VoZW4g +bWl0IGVpbmVyIFVudGVyc2NocmlmdCBvZGVyIGVpbmVtIGJlaMO2cmRsaWNoZW4gU3RlbXBlbC4g +RG9jaCB3dXNzdGVuIFNpZSwgZGFzcyBhdWNoIGVpbiZuYnNwOzxzcGFuIHN0eWxlPVwiZm9udC13 +ZWlnaHQ6IDcwMDtcIj5BdXRva2VubnplaWNoZW48L3NwYW4+Jm5ic3A7ZWluZSBVcmt1bmRlIGlt +IHN0cmFmcmVjaHRsaWNoZW4gU2lubmUgc2VpbiBrYW5uPzwvcD48cCBzdHlsZT1cImNhcmV0LWNv +bG9yOiByZ2IoNDYsIDQ2LCA0Nik7IHRleHQtZGVjb3JhdGlvbi10aGlja25lc3M6IGF1dG87IHRl +eHQtZGVjb3JhdGlvbi1zdHlsZTogc29saWQ7XCI+SW4gZGVtIGZvbGdlbmRlbiBSYXRnZWJlciBr +bMOkcmVuIHdpciBTaWUgw7xiZXIgZGllIHdpY2h0aWdzdGVuIEZha3RlbiB1bmQgSW5mb3JtYXRp +b25lbiB6dW0gVGhlbWEgVXJrdW5kZW5mw6Rsc2NodW5nIGF1Zi4gV2FzIHBhc3NpZXJ0IGJlaSBl +aW5lciBVcmt1bmRlbmbDpGxzY2h1bmc/IFdvIGlzdCBzaWUgZ2VzZXR6bGljaCBub3JtaWVydD8g +V2llIGlzdCBlaW5lIFVya3VuZGVuZsOkbHNjaHVuZyBhbiBlaW5lbSBLZW5uemVpY2hlbiBtw7Zn +bGljaD8gV2VsY2hlJm5ic3A7PHNwYW4gc3R5bGU9XCJmb250LXdlaWdodDogNzAwO1wiPlN0cmFm +ZSZuYnNwOzwvc3Bhbj5kcm9odCBlaW5lbSBUw6R0ZXIgdW5kIHdhcyBpc3QgZWlnZW50bGljaCB1 +bnRlciBkZW0gQmVncmlmZiBkZXMmbmJzcDs8c3BhbiBzdHlsZT1cImZvbnQtd2VpZ2h0OiA3MDA7 +XCI+S2VubnplaWNoZW5taXNzYnJhdWNocyZuYnNwOzwvc3Bhbj56dSB2ZXJzdGVoZW4/Jm5ic3A7 +PC9wPjxwIHN0eWxlPVwiY2FyZXQtY29sb3I6IHJnYig0NiwgNDYsIDQ2KTsgdGV4dC1kZWNvcmF0 +aW9uLXRoaWNrbmVzczogYXV0bzsgdGV4dC1kZWNvcmF0aW9uLXN0eWxlOiBzb2xpZDtcIj5EaWVz +ZW4gdW5kIHdlaXRlcmVuIEZyYWdlbiBzaW5kIHdpciBpbSBGb2xnZW5kZW4gZsO8ciBTaWUgYXVm +IGRlbiBHcnVuZCBnZWdhbmdlbiB1bmQgaGFiZW4gZGllIHdpY2h0aWdzdGVuIFB1bmt0ZSBpbSDD +nGJlcmJsaWNrIHp1c2FtbWVuZ2VmYXNzdC4gRGFiZWkgc29sbCBlcyBzY2h3ZXJwdW5rdG3DpMOf +aWcgdW0gZGVuJm5ic3A7PGEgaHJlZj1cImh0dHBzOi8vd3d3LmJ1c3NnZWxka2F0YWxvZy5vcmcv +YXV0b2tlbm56ZWljaGVuL2tlbm56ZWljaGVubWlzc2JyYXVjaC9cIj5LZW5uemVpY2hlbm1pc3Ni +cmF1Y2g8L2E+Jm5ic3A7dW5kIFVya3VuZGVuZsOkbHNjaHVuZyBpbSZuYnNwOzxzcGFuIHN0eWxl +PVwiZm9udC13ZWlnaHQ6IDcwMDtcIj52ZXJrZWhyc3JlY2h0bGljaGVuJm5ic3A7PC9zcGFuPlp1 +c2FtbWVuaGFuZyBnZWhlbi48L3A+Iiwic3RhdHVzIjoiRnJlaWdlZ2ViZW4iLCJlcnN0ZWxsdCI6 +IjIwMjYtMDMtMjciLCJnZWFlbmRlcnQiOiIyMDI2LTAzLTI3IiwiZXJzdGVsbHRWb24iOiJyaGlu +byIsImJlYXJiZWl0ZXRWb24iOiJyaGlubyIsInZlcnNpb24iOiJ2MC4xIiwibWVkaWFzIjpbXSwi +c2NobGFnd29lcnRlciI6WyJVcmt1bmRlbmbDpGxzY2h1bmciXSwicGFyZW50SWQiOm51bGwsImNv +bnRyaWJ1dG9ycyI6W3sidXNlcm5hbWUiOiJyaGlubyIsInJvbGUiOiJhdXRvciIsImVudHJpZXMi +OjIsImZpcnN0Q29udHJpYiI6IjIwMjYtMDMtMjdUMDA6MzI6MDUuMjExWiIsImxhc3RDb250cmli +IjoiMjAyNi0wMy0yN1QwMDozNTozMC4wNDRaIn1dfSx7ImlkIjoiRDAwNSIsInRpdGVsIjoiRWlu +ZsO8aHJ1bmcgaW4gZGllIGtvbW11bmFsZSBWZXJrZWhyc3NpY2hlcmhlaXRzYXJiZWl0Iiwia2F0 +ZWdvcmllIjoiU2ljaGVyaGVpdCIsImluaGFsdCI6IjxoMiBpZD1cInZ0LXNwcmctMVwiIHN0eWxl +PVwiYm94LXNpemluZzogaW5oZXJpdDsgdHJhbnNpdGlvbi1kZWxheTogMHM7IHRyYW5zaXRpb24t +dGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluLW91dDsgdHJhbnNpdGlvbi1kdXJhdGlvbjogMC4yczsg +dHJhbnNpdGlvbi1wcm9wZXJ0eTogbm9uZTsgdGV4dC1yZW5kZXJpbmc6IG9wdGltaXplbGVnaWJp +bGl0eTsgY2xlYXI6IGJvdGg7IHNjcm9sbC1tYXJnaW4tdG9wOiAyMDBweDsgcG9zaXRpb246IHJl +bGF0aXZlOyBjYXJldC1jb2xvcjogcmdiKDAsIDAsIDApOyB0ZXh0LWRlY29yYXRpb24tdGhpY2tu +ZXNzOiBhdXRvOyB0ZXh0LWRlY29yYXRpb24tc3R5bGU6IHNvbGlkOyB0ZXh0LXVuZGVybGluZS1w +b3NpdGlvbjogdW5kZXIgIWltcG9ydGFudDtcIj5WaXNpb24gWmVybzwvaDI+PHAgc3R5bGU9XCJi +b3gtc2l6aW5nOiBpbmhlcml0OyB0cmFuc2l0aW9uLWRlbGF5OiAwczsgdHJhbnNpdGlvbi10aW1p +bmctZnVuY3Rpb246IGVhc2UtaW4tb3V0OyB0cmFuc2l0aW9uLWR1cmF0aW9uOiAwLjJzOyB0cmFu +c2l0aW9uLXByb3BlcnR5OiBub25lOyB0ZXh0LXJlbmRlcmluZzogb3B0aW1pemVsZWdpYmlsaXR5 +OyBjYXJldC1jb2xvcjogcmdiKDAsIDAsIDApOyB0ZXh0LWRlY29yYXRpb24tdGhpY2tuZXNzOiBh +dXRvOyB0ZXh0LWRlY29yYXRpb24tc3R5bGU6IHNvbGlkOyB0ZXh0LXVuZGVybGluZS1wb3NpdGlv +bjogdW5kZXIgIWltcG9ydGFudDtcIj5EaWUmbmJzcDs8c3BhbiBsYW5nPVwiZW4tR0JcIiB4bWw6 +bGFuZz1cImVuLUdCXCIgc3R5bGU9XCJib3gtc2l6aW5nOiBpbmhlcml0OyB0ZXh0LXVuZGVybGlu +ZS1wb3NpdGlvbjogdW5kZXIgIWltcG9ydGFudDsgdHJhbnNpdGlvbi1kZWxheTogMHM7IHRyYW5z +aXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluLW91dDsgdHJhbnNpdGlvbi1kdXJhdGlvbjog +MC4yczsgdHJhbnNpdGlvbi1wcm9wZXJ0eTogbm9uZTtcIj5WaXNpb24gWmVybzwvc3Bhbj4mbmJz +cDtoYXQgenVtIFppZWwsIGRhc3MgbmllbWFuZCBtZWhyIGltIFN0cmHDn2VudmVya2VociBnZXTD +tnRldCBvZGVyIHNjaHdlciB2ZXJsZXR6dCB3aXJkLiBCdW5kLCBMw6RuZGVyIHVuZCBLb21tdW5l +biBoYWJlbiBoaWVyenUgZWluZSBnZW1laW5zYW1lIFN0cmF0ZWdpZSBiZXNjaGxvc3NlbjogZGVu +Jm5ic3A7PGEgaHJlZj1cImh0dHBzOi8vYm1kdi5idW5kLmRlL1NoYXJlZERvY3MvREUvQXJ0aWtl +bC9TdFYvVmVya2VocnNzaWNoZXJoZWl0L3Bha3QtZnVlci12ZXJrZWhyc3NpY2hlcmhlaXQuaHRt +bFwiIHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyIG5vcmVmZXJyZXJcIiB0aXRsZT1c +IkV4dGVybmVyIExpbmsmbmJzcDvDnGJlcnNpY2h0IHp1bSBQYWt0IGbDvHIgVmVya2VocnNzaWNo +ZXJoZWl0IHZvbiBCdW5kLCBMw6RuZGVybiB1bmQgS29tbXVuZW4sIG1pdCBEb3dubG9hZC1Nw7Zn +bGljaGtlaXRlbi4gKMOWZmZuZXQmbmJzcDtuZXVlcyZuYnNwO0ZlbnN0ZXIpXCIgc3R5bGU9XCJi +b3gtc2l6aW5nOiBpbmhlcml0OyB0cmFuc2l0aW9uLWRlbGF5OiAwczsgdHJhbnNpdGlvbi10aW1p +bmctZnVuY3Rpb246IGVhc2UtaW4tb3V0OyB0cmFuc2l0aW9uLWR1cmF0aW9uOiAwLjJzOyB0cmFu +c2l0aW9uLXByb3BlcnR5OiBub25lOyBjdXJzb3I6IHBvaW50ZXI7IHRleHQtdHJhbnNmb3JtOiB1 +cHBlcmNhc2U7IGxldHRlci1zcGFjaW5nOiAycHg7IGZvbnQtd2VpZ2h0OiA3MDA7IHBvc2l0aW9u +OiByZWxhdGl2ZTsgdGV4dC11bmRlcmxpbmUtcG9zaXRpb246IHVuZGVyICFpbXBvcnRhbnQ7XCI+ +UEFLVCBGw5xSIFZFUktFSFJTU0lDSEVSSEVJVDwvYT4uIERpZSBaYWhsIGRlciBWZXJrZWhyc3Rv +dGVuIHNvbGwgaW4gRGV1dHNjaGxhbmQgYmlzIDIwMzAgdW0gNDAgUHJvemVudCBzaW5rZW4gdW5k +IGRpZSBaYWhsIGRlciBTY2h3ZXJ2ZXJsZXR6ZW4gc2lnbmlmaWthbnQgYWJuZWhtZW4uIERpZXNl +IGdlbWVpbnNhbWUgU3RyYXRlZ2llIHZlcmJpbmRldCBhbGxlIEhhbmRlbG5kZW4gdW50ZXIgZGVt +IExlaXRiaWxkIOKAnlNpY2hlcmUgTW9iaWxpdMOkdCDigJMgamVkZXIgdHLDpGd0IFZlcmFudHdv +cnR1bmcsIGFsbGUgbWFjaGVuIG1pdOKAnC48L3A+PGgyIGlkPVwidnQtc3ByZy0yXCIgc3R5bGU9 +XCJib3gtc2l6aW5nOiBpbmhlcml0OyB0cmFuc2l0aW9uLWRlbGF5OiAwczsgdHJhbnNpdGlvbi10 +aW1pbmctZnVuY3Rpb246IGVhc2UtaW4tb3V0OyB0cmFuc2l0aW9uLWR1cmF0aW9uOiAwLjJzOyB0 +cmFuc2l0aW9uLXByb3BlcnR5OiBub25lOyB0ZXh0LXJlbmRlcmluZzogb3B0aW1pemVsZWdpYmls +aXR5OyBjbGVhcjogYm90aDsgc2Nyb2xsLW1hcmdpbi10b3A6IDIwMHB4OyBwb3NpdGlvbjogcmVs +YXRpdmU7IGNhcmV0LWNvbG9yOiByZ2IoMCwgMCwgMCk7IHRleHQtZGVjb3JhdGlvbi10aGlja25l +c3M6IGF1dG87IHRleHQtZGVjb3JhdGlvbi1zdHlsZTogc29saWQ7IHRleHQtdW5kZXJsaW5lLXBv +c2l0aW9uOiB1bmRlciAhaW1wb3J0YW50O1wiPlZlcmZhaHJlbiB1bmQgV2Vya3pldWdlPC9oMj48 +cCBzdHlsZT1cImJveC1zaXppbmc6IGluaGVyaXQ7IHRyYW5zaXRpb24tZGVsYXk6IDBzOyB0cmFu +c2l0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbi1vdXQ7IHRyYW5zaXRpb24tZHVyYXRpb246 +IDAuMnM7IHRyYW5zaXRpb24tcHJvcGVydHk6IG5vbmU7IHRleHQtcmVuZGVyaW5nOiBvcHRpbWl6 +ZWxlZ2liaWxpdHk7IGNhcmV0LWNvbG9yOiByZ2IoMCwgMCwgMCk7IHRleHQtZGVjb3JhdGlvbi10 +aGlja25lc3M6IGF1dG87IHRleHQtZGVjb3JhdGlvbi1zdHlsZTogc29saWQ7IHRleHQtdW5kZXJs +aW5lLXBvc2l0aW9uOiB1bmRlciAhaW1wb3J0YW50O1wiPkF1ZiBsb2thbGVyIEViZW5lIGdpYnQg +ZXMgdmVyc2NoaWVkZW5lIFZlcmZhaHJlbiB1bmQgV2Vya3pldWdlLCBkaWUgZ2VlaWduZXQgc2Vp +biBrw7ZubmVuLCBkaWUgVmVya2VocnNzaWNoZXJoZWl0IHp1IGVyaMO2aGVuLiBEaWUgbmFjaGZv +bGdlbmRlbiBWZXJmYWhyZW4ga8O2bm5lbiBkaWUgVmVya2VocnNzaWNoZXJoZWl0c2FyYmVpdCB2 +b24gVmVyd2FsdHVuZ2VuIHVudGVyc3TDvHR6ZW46PC9wPjxoMyBpZD1cInZ0LXNwcmctM1wiIHN0 +eWxlPVwiYm94LXNpemluZzogaW5oZXJpdDsgdHJhbnNpdGlvbi1kZWxheTogMHM7IHRyYW5zaXRp +b24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluLW91dDsgdHJhbnNpdGlvbi1kdXJhdGlvbjogMC4y +czsgdHJhbnNpdGlvbi1wcm9wZXJ0eTogbm9uZTsgdGV4dC1yZW5kZXJpbmc6IG9wdGltaXplbGVn +aWJpbGl0eTsgY2xlYXI6IGJvdGg7IHNjcm9sbC1tYXJnaW4tdG9wOiAyMDBweDsgcG9zaXRpb246 +IHJlbGF0aXZlOyBjYXJldC1jb2xvcjogcmdiKDAsIDAsIDApOyB0ZXh0LWRlY29yYXRpb24tdGhp +Y2tuZXNzOiBhdXRvOyB0ZXh0LWRlY29yYXRpb24tc3R5bGU6IHNvbGlkOyB0ZXh0LXVuZGVybGlu +ZS1wb3NpdGlvbjogdW5kZXIgIWltcG9ydGFudDtcIj7DlnJ0bGljaGUgVW5mYWxsa29tbWlzc2lv +bjwvaDM+PHAgc3R5bGU9XCJib3gtc2l6aW5nOiBpbmhlcml0OyB0cmFuc2l0aW9uLWRlbGF5OiAw +czsgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW4tb3V0OyB0cmFuc2l0aW9uLWR1 +cmF0aW9uOiAwLjJzOyB0cmFuc2l0aW9uLXByb3BlcnR5OiBub25lOyB0ZXh0LXJlbmRlcmluZzog +b3B0aW1pemVsZWdpYmlsaXR5OyBjYXJldC1jb2xvcjogcmdiKDAsIDAsIDApOyB0ZXh0LWRlY29y +YXRpb24tdGhpY2tuZXNzOiBhdXRvOyB0ZXh0LWRlY29yYXRpb24tc3R5bGU6IHNvbGlkOyB0ZXh0 +LXVuZGVybGluZS1wb3NpdGlvbjogdW5kZXIgIWltcG9ydGFudDtcIj5EaWUgQXJiZWl0IGRlciZu +YnNwOzxhIGhyZWY9XCJodHRwczovL3d3dy5tb2JpbGl0YWV0c2ZvcnVtLmJ1bmQuZGUvREUvVGhl +bWVuL05ld3MtUkFEYXIvX3RleHRlL1ZlcmtlaHJzc2ljaGVyaGVpdHNhcmJlaXRfVW5mYWxsa29t +bWlzc2lvbl8yMDI1LTEwLmh0bWw/bm49NDk0NDU2XCIgdGl0bGU9XCLDlnJ0bGljaGUgVW5mYWxs +a29tbWlzc2lvblwiIHN0eWxlPVwiYm94LXNpemluZzogaW5oZXJpdDsgdHJhbnNpdGlvbi1kZWxh +eTogMHM7IHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluLW91dDsgdHJhbnNpdGlv +bi1kdXJhdGlvbjogMC4yczsgdHJhbnNpdGlvbi1wcm9wZXJ0eTogbm9uZTsgY3Vyc29yOiBwb2lu +dGVyOyB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyBsZXR0ZXItc3BhY2luZzogMnB4OyBmb250 +LXdlaWdodDogNzAwOyBwb3NpdGlvbjogcmVsYXRpdmU7IHRleHQtdW5kZXJsaW5lLXBvc2l0aW9u +OiB1bmRlciAhaW1wb3J0YW50O1wiPsOWUlRMSUNIRU4gVU5GQUxMS09NTUlTU0lPTjwvYT4mbmJz +cDt6aWVsdCBkYXJhdWYgYWIsIGRpZSBTaWNoZXJoZWl0IGFuIFZlcmtlaHJzYW5sYWdlbiBtaXQg +YmVzb25kZXJzIHZpZWxlbiBvZGVyIHNjaHdlcmVuIFVuZsOkbGxlbiB6dSB2ZXJiZXNzZXJuLiBV +bmZhbGxrb21taXNzaW9uZW4gaGFiZW4gZGllIEF1ZmdhYmUsIFVuZmFsbGjDpHVmdW5nZW4genUg +ZXJrZW5uZW4sIHp1IGFuYWx5c2llcmVuIHVuZCB6dSBiZXNlaXRpZ2VuLiBEaWUgw7ZydGxpY2hl +IFVuZmFsbGtvbW1pc3Npb24gc2V0enQgc2ljaCB6dXNhbW1lbiBhdXMgTWl0YXJiZWl0ZW5kZW4g +ZGVyIFN0cmHDn2VudmVya2VocnMtIHVuZCBTdHJhw59lbmJhdWJlaMO2cmRlbiBzb3dpZSBkZXIg +UG9saXplaS4gSWhyIG9ibGllZ3QgZGVyIEJlc2NobHVzcyB2b24gdmVya2VocnNyZWNodGxpY2hl +biB1bmQgYmF1bGljaGVuIE1hw59uYWhtZW4gc293aWUgZGllIEtvbnRyb2xsZSBkZXIgTWHDn25h +aG1lbnVtc2V0enVuZy4gRGllIEFyYmVpdCBkZXIgw7ZydGxpY2hlbiBVbmZhbGxrb21taXNzaW9u +IGlzdCBpbiBkZXIgVmVyd2FsdHVuZ3N2b3JzY2hyaWZ0IHp1IMKnIDQ0IGRlciBTdHJhw59lbnZl +cmtlaHJzLU9yZG51bmcgdmVyYW5rZXJ0IHVuZCB3aXJkIGltIERldGFpbCBpbiBMw6RuZGVyZXJs +YXNzZW4gZ2VyZWdlbHQuPC9wPjxwIHN0eWxlPVwiYm94LXNpemluZzogaW5oZXJpdDsgdHJhbnNp +dGlvbi1kZWxheTogMHM7IHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluLW91dDsg +dHJhbnNpdGlvbi1kdXJhdGlvbjogMC4yczsgdHJhbnNpdGlvbi1wcm9wZXJ0eTogbm9uZTsgdGV4 +dC1yZW5kZXJpbmc6IG9wdGltaXplbGVnaWJpbGl0eTsgY2FyZXQtY29sb3I6IHJnYigwLCAwLCAw +KTsgdGV4dC1kZWNvcmF0aW9uLXRoaWNrbmVzczogYXV0bzsgdGV4dC1kZWNvcmF0aW9uLXN0eWxl +OiBzb2xpZDsgdGV4dC11bmRlcmxpbmUtcG9zaXRpb246IHVuZGVyICFpbXBvcnRhbnQ7XCI+PHEg +c3R5bGU9XCJib3gtc2l6aW5nOiBpbmhlcml0OyB0cmFuc2l0aW9uLWRlbGF5OiAwczsgdHJhbnNp +dGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW4tb3V0OyB0cmFuc2l0aW9uLWR1cmF0aW9uOiAw +LjJzOyB0cmFuc2l0aW9uLXByb3BlcnR5OiBub25lOyBxdW90ZXM6ICZxdW90OyZxdW90OyAmcXVv +dDsmcXVvdDsgJnF1b3Q7JnF1b3Q7ICZxdW90OyZxdW90OzsgZm9udC1zdHlsZTogaXRhbGljOyB0 +ZXh0LXVuZGVybGluZS1wb3NpdGlvbjogdW5kZXIgIWltcG9ydGFudDtcIj7igJ5adXIgQmVrw6Rt +cGZ1bmcgZGVyIFZlcmtlaHJzdW5mw6RsbGUgaGFiZW4gU3RyYcOfZW52ZXJrZWhyc2JlaMO2cmRl +LCBTdHJhw59lbmJhdWJlaMO2cmRlIHVuZCBQb2xpemVpIGVuZyB6dXNhbW1lbnp1YXJiZWl0ZW4s +IHVtIHp1IGVybWl0dGVsbiwgd28gc2ljaCBkaWUgVW5mw6RsbGUgaMOkdWZlbiwgd29yYXVmIGRp +ZXNlIHp1csO8Y2t6dWbDvGhyZW4gc2luZCwgdW5kIHdlbGNoZSBNYcOfbmFobWVuIGVyZ3JpZmZl +biB3ZXJkZW4gbcO8c3NlbiwgdW0gdW5mYWxsYmVnw7xuc3RpZ2VuZGUgQmVzb25kZXJoZWl0ZW4g +enUgYmVzZWl0aWdlbi4gSGllcnp1IHNpbmQgVW5mYWxsa29tbWlzc2lvbmVuIGVpbnp1cmljaHRl +biwgZGVyZW4gT3JnYW5pc2F0aW9uLCBadXN0w6RuZGlna2VpdGVuIHVuZCBBdWZnYWJlbiBMw6Ru +ZGVyZXJsYXNzZSByZWdlbG4gW+KApl0u4oCcPC9xPjxiciBzdHlsZT1cImJveC1zaXppbmc6IGlu +aGVyaXQ7IHRleHQtdW5kZXJsaW5lLXBvc2l0aW9uOiB1bmRlciAhaW1wb3J0YW50OyB0cmFuc2l0 +aW9uLWRlbGF5OiAwczsgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW4tb3V0OyB0 +cmFuc2l0aW9uLWR1cmF0aW9uOiAwLjJzOyB0cmFuc2l0aW9uLXByb3BlcnR5OiBub25lO1wiPjxj +aXRlIHN0eWxlPVwiYm94LXNpemluZzogaW5oZXJpdDsgdHJhbnNpdGlvbi1kZWxheTogMHM7IHRy +YW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluLW91dDsgdHJhbnNpdGlvbi1kdXJhdGlv +bjogMC4yczsgdHJhbnNpdGlvbi1wcm9wZXJ0eTogbm9uZTsgdGV4dC11bmRlcmxpbmUtcG9zaXRp +b246IHVuZGVyICFpbXBvcnRhbnQ7XCI+VmVyd2FsdHVuZ3N2b3JzY2hyaWZ0Jm5ic3A7PC9jaXRl +PjxjaXRlIHN0eWxlPVwiYm94LXNpemluZzogaW5oZXJpdDsgdHJhbnNpdGlvbi1kZWxheTogMHM7 +IHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluLW91dDsgdHJhbnNpdGlvbi1kdXJh +dGlvbjogMC4yczsgdHJhbnNpdGlvbi1wcm9wZXJ0eTogbm9uZTsgdGV4dC11bmRlcmxpbmUtcG9z +aXRpb246IHVuZGVyICFpbXBvcnRhbnQ7XCI+PGFiYnIgdGl0bGU9XCJcIiBkYXRhLXRvb2x0aXA9 +XCJoYWY4NWotdG9vbHRpcFwiIGFyaWEtaGFzcG9wdXA9XCJ0cnVlXCIgYXJpYS1kZXNjcmliZWRi +eT1cImNrc2o5Mi10b29sdGlwXCIgZGF0YS15ZXRpLWJveD1cImNrc2o5Mi10b29sdGlwXCIgZGF0 +YS10b2dnbGU9XCJja3NqOTItdG9vbHRpcFwiIGRhdGEtcmVzaXplPVwiY2tzajkyLXRvb2x0aXBc +IiBzdHlsZT1cImJveC1zaXppbmc6IGluaGVyaXQ7IHRyYW5zaXRpb24tZGVsYXk6IDBzOyB0cmFu +c2l0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbi1vdXQ7IHRyYW5zaXRpb24tZHVyYXRpb246 +IDAuMnM7IHRyYW5zaXRpb24tcHJvcGVydHk6IG5vbmU7IGN1cnNvcjogaGVscDsgdGV4dC1kZWNv +cmF0aW9uLXRoaWNrbmVzczogMnB4OyBwb3NpdGlvbjogcmVsYXRpdmU7IHRleHQtdW5kZXJsaW5l +LXBvc2l0aW9uOiB1bmRlciAhaW1wb3J0YW50O1wiPk5yLjwvYWJicj48L2NpdGU+PGNpdGUgc3R5 +bGU9XCJib3gtc2l6aW5nOiBpbmhlcml0OyB0cmFuc2l0aW9uLWRlbGF5OiAwczsgdHJhbnNpdGlv +bi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW4tb3V0OyB0cmFuc2l0aW9uLWR1cmF0aW9uOiAwLjJz +OyB0cmFuc2l0aW9uLXByb3BlcnR5OiBub25lOyB0ZXh0LXVuZGVybGluZS1wb3NpdGlvbjogdW5k +ZXIgIWltcG9ydGFudDtcIj4mbmJzcDsxIHp1IMKnIDQ0IEFsbGdlbWVpbmUgVmVyd2FsdHVuZ3N2 +b3JzY2hyaWZ0IHp1ciBTdHJhw59lbnZlcmtlaHJzLU9yZG51bmcgKDwvY2l0ZT48Y2l0ZSBzdHls +ZT1cImJveC1zaXppbmc6IGluaGVyaXQ7IHRyYW5zaXRpb24tZGVsYXk6IDBzOyB0cmFuc2l0aW9u +LXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbi1vdXQ7IHRyYW5zaXRpb24tZHVyYXRpb246IDAuMnM7 +IHRyYW5zaXRpb24tcHJvcGVydHk6IG5vbmU7IHRleHQtdW5kZXJsaW5lLXBvc2l0aW9uOiB1bmRl +ciAhaW1wb3J0YW50O1wiPjxhYmJyIHRpdGxlPVwiXCIgZGF0YS10b29sdGlwPVwiOGF6NGs4LXRv +b2x0aXBcIiBhcmlhLWhhc3BvcHVwPVwidHJ1ZVwiIGFyaWEtZGVzY3JpYmVkYnk9XCJhd2pvOHAt +dG9vbHRpcFwiIGRhdGEteWV0aS1ib3g9XCJhd2pvOHAtdG9vbHRpcFwiIGRhdGEtdG9nZ2xlPVwi +YXdqbzhwLXRvb2x0aXBcIiBkYXRhLXJlc2l6ZT1cImF3am84cC10b29sdGlwXCIgc3R5bGU9XCJi +b3gtc2l6aW5nOiBpbmhlcml0OyB0cmFuc2l0aW9uLWRlbGF5OiAwczsgdHJhbnNpdGlvbi10aW1p +bmctZnVuY3Rpb246IGVhc2UtaW4tb3V0OyB0cmFuc2l0aW9uLWR1cmF0aW9uOiAwLjJzOyB0cmFu +c2l0aW9uLXByb3BlcnR5OiBub25lOyBjdXJzb3I6IGhlbHA7IHRleHQtZGVjb3JhdGlvbi10aGlj +a25lc3M6IDJweDsgcG9zaXRpb246IHJlbGF0aXZlOyB0ZXh0LXVuZGVybGluZS1wb3NpdGlvbjog +dW5kZXIgIWltcG9ydGFudDtcIj5Wd1YtU3RWTzwvYWJicj48L2NpdGU+PGNpdGUgc3R5bGU9XCJi +b3gtc2l6aW5nOiBpbmhlcml0OyB0cmFuc2l0aW9uLWRlbGF5OiAwczsgdHJhbnNpdGlvbi10aW1p +bmctZnVuY3Rpb246IGVhc2UtaW4tb3V0OyB0cmFuc2l0aW9uLWR1cmF0aW9uOiAwLjJzOyB0cmFu +c2l0aW9uLXByb3BlcnR5OiBub25lOyB0ZXh0LXVuZGVybGluZS1wb3NpdGlvbjogdW5kZXIgIWlt +cG9ydGFudDtcIj4pPC9jaXRlPjwvcD48ZmlndXJlIHN0eWxlPVwiYm94LXNpemluZzogaW5oZXJp +dDsgdHJhbnNpdGlvbi1kZWxheTogMHM7IHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNl +LWluLW91dDsgdHJhbnNpdGlvbi1kdXJhdGlvbjogMC4yczsgdHJhbnNpdGlvbi1wcm9wZXJ0eTog +bm9uZTsgb3ZlcmZsb3c6IGhpZGRlbjsgY2FyZXQtY29sb3I6IHJnYigwLCAwLCAwKTsgdGV4dC1k +ZWNvcmF0aW9uLXRoaWNrbmVzczogYXV0bzsgdGV4dC1kZWNvcmF0aW9uLXN0eWxlOiBzb2xpZDsg +dGV4dC11bmRlcmxpbmUtcG9zaXRpb246IHVuZGVyICFpbXBvcnRhbnQ7XCI+PHNwYW4gc3R5bGU9 +XCJib3gtc2l6aW5nOiBpbmhlcml0OyB0cmFuc2l0aW9uLWRlbGF5OiAwczsgdHJhbnNpdGlvbi10 +aW1pbmctZnVuY3Rpb246IGVhc2UtaW4tb3V0OyB0cmFuc2l0aW9uLWR1cmF0aW9uOiAwLjJzOyB0 +cmFuc2l0aW9uLXByb3BlcnR5OiBub25lOyBoZWlnaHQ6IDQ4N3B4OyBwb3NpdGlvbjogcmVsYXRp +dmU7IHRleHQtdW5kZXJsaW5lLXBvc2l0aW9uOiB1bmRlciAhaW1wb3J0YW50O1wiPjxmaWd1cmUg +Y2xhc3M9XCJkcml2ZS1tZWRpYSBtZWRpYS1sYXJnZVwiIGRhdGEtbWVkaWEtaWQ9XCJtMDAxXCIg +Y29udGVudGVkaXRhYmxlPVwiZmFsc2VcIj48aW1nIHNyYz1cIm1lZGlhL0QwMDUvd2ViXzE3NzQ1 +NzE1NzE1OTNfMC5qcGVnXCIgYWx0PVwiRWluZSBqdW5nZSBGcmF1IG1pdCBsYW5nZW4gYnJhdW5l +biBIYWFyZW4gdW5kIFBmZXJkZXNjaHdhbnogc3RlaHQgbWl0IGVpbmVtIHJvdC1nZWxiLXNjaHdh +cnplbiBTaWNoZXJoZWl0c292ZXJhbGwgYW4gZWluZXIgS3JldXp1bmcgbWl0IFplYnJhc3RyZWlm +ZW4gdW5kIGjDpGx0IGVpbiBLbGVtbWJyZXR0IGluIGRlbiBIw6RuZGVuLiBTaWUgaXN0IHNlaXRs +aWNoIHZvbiBoaW50ZW4genUgc2VoZW4uXCI+PC9maWd1cmU+PGEgaHJlZj1cImh0dHBzOi8vd3d3 +Lm1vYmlsaXRhZXRzZm9ydW0uYnVuZC5kZS9TaGFyZWREb2NzL0JpbGRlci9ERS9UaGVtZW4vVmVy +a2VocnNzaWNoZXJoZWl0L09ydHNiZXNpY2h0aWd1bmdfVmVya2VocnNzaWNoZXJoZWl0LmpwZz9f +X2Jsb2I9cG9zdGVyJmFtcDt2PTJcIiB0YXJnZXQ9XCJfYmxhbmtcIiB0aXRsZT1cIk9ydHNiZXNp +Y2h0aWd1bmcgaW0gc3TDpGR0aXNjaGVuIEJlcmVpY2ggKFZlcmdyw7bDn2VydW5nIMO2ZmZuZXQg +c2ljaCBpbSBuZXVlbiBGZW5zdGVyKVwiIGFyaWEtbGFiZWw9XCJPcnRzYmVzaWNodGlndW5nIGlt +IHN0w6RkdGlzY2hlbiBCZXJlaWNoIChWZXJncsO2w59lcnVuZyDDtmZmbmV0IHNpY2ggaW0gbmV1 +ZW4gRmVuc3RlcilcIiBkYXRhLWxpZ2h0Ym94LWhyZWY9XCJTaGFyZWREb2NzL0JpbGRlci9ERS9U +aGVtZW4vVmVya2VocnNzaWNoZXJoZWl0L09ydHNiZXNpY2h0aWd1bmdfVmVya2VocnNzaWNoZXJo +ZWl0Lmh0bWw/dmlldz1yZW5kZXJMaWdodGJveFwiIHN0eWxlPVwiYm94LXNpemluZzogaW5oZXJp +dDsgdHJhbnNpdGlvbjogMC4ycyBlYXNlLWluLW91dDsgY3Vyc29yOiBwb2ludGVyOyBwb3NpdGlv +bjogYWJzb2x1dGU7IGJvdHRvbTogNXB4OyByaWdodDogNXB4OyBoZWlnaHQ6IDQ0cHg7IGZsb2F0 +OiByaWdodDsgdHJhbnNmb3JtOiBzY2FsZSgwLjc1KTsgdGV4dC11bmRlcmxpbmUtcG9zaXRpb246 +IHVuZGVyICFpbXBvcnRhbnQ7XCI+PGZpZ3VyZSBjbGFzcz1cImRyaXZlLW1lZGlhIG1lZGlhLWxh +cmdlXCIgZGF0YS1tZWRpYS1pZD1cIm0wMDJcIiBjb250ZW50ZWRpdGFibGU9XCJmYWxzZVwiPjxp +bWcgc3JjPVwibWVkaWEvRDAwNS93ZWJfMTc3NDU3MTU3MTgxNV8xLnN2Z194bWxcIiBhbHQ9XCJP +cnRzYmVzaWNodGlndW5nIGltIHN0w6RkdGlzY2hlbiBCZXJlaWNoXCI+PC9maWd1cmU+PC9hPjwv +c3Bhbj48ZmlnY2FwdGlvbiBzdHlsZT1cImJveC1zaXppbmc6IGluaGVyaXQ7IHRyYW5zaXRpb24t +ZGVsYXk6IDBzOyB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbi1vdXQ7IHRyYW5z +aXRpb24tZHVyYXRpb246IDAuMnM7IHRyYW5zaXRpb24tcHJvcGVydHk6IG5vbmU7IHRleHQtdW5k +ZXJsaW5lLXBvc2l0aW9uOiB1bmRlciAhaW1wb3J0YW50O1wiPjxzcGFuIHN0eWxlPVwiYm94LXNp +emluZzogaW5oZXJpdDsgdGV4dC11bmRlcmxpbmUtcG9zaXRpb246IHVuZGVyICFpbXBvcnRhbnQ7 +IHRyYW5zaXRpb24tZGVsYXk6IDBzOyB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1p +bi1vdXQ7IHRyYW5zaXRpb24tZHVyYXRpb246IDAuMnM7IHRyYW5zaXRpb24tcHJvcGVydHk6IG5v +bmU7XCI+T3J0c2Jlc2ljaHRpZ3VuZyBpbSBSYWhtZW4gZGVyIFVuZmFsbGtvbW1pc3Npb25zYXJi +ZWl0OiBEaWUgRXJrZW5udG5pc3NlIGRlciBVbmZhbGxhbmFseXNlIHVuZCBkZXIgT3J0c2Jlc2lj +aHRpZ3VuZyBzaW5kIEdydW5kbGFnZSBmw7xyIGRlbiBCZXNjaGx1c3Mgdm9uIE1hw59uYWhtZW4g +enVyIEJlc2VpdGlndW5nIGRlciBVbmZhbGxow6R1ZnVuZy48L3NwYW4+PC9maWdjYXB0aW9uPjwv +ZmlndXJlPjxoMyBpZD1cInZ0LXNwcmctNFwiIHN0eWxlPVwiYm94LXNpemluZzogaW5oZXJpdDsg +dHJhbnNpdGlvbi1kZWxheTogMHM7IHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWlu +LW91dDsgdHJhbnNpdGlvbi1kdXJhdGlvbjogMC4yczsgdHJhbnNpdGlvbi1wcm9wZXJ0eTogbm9u +ZTsgdGV4dC1yZW5kZXJpbmc6IG9wdGltaXplbGVnaWJpbGl0eTsgY2xlYXI6IGJvdGg7IHNjcm9s +bC1tYXJnaW4tdG9wOiAyMDBweDsgcG9zaXRpb246IHJlbGF0aXZlOyBjYXJldC1jb2xvcjogcmdi +KDAsIDAsIDApOyB0ZXh0LWRlY29yYXRpb24tdGhpY2tuZXNzOiBhdXRvOyB0ZXh0LWRlY29yYXRp +b24tc3R5bGU6IHNvbGlkOyB0ZXh0LXVuZGVybGluZS1wb3NpdGlvbjogdW5kZXIgIWltcG9ydGFu +dDtcIj5WZXJrZWhyc3NjaGF1PC9oMz48cCBzdHlsZT1cImJveC1zaXppbmc6IGluaGVyaXQ7IHRy +YW5zaXRpb24tZGVsYXk6IDBzOyB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbi1v +dXQ7IHRyYW5zaXRpb24tZHVyYXRpb246IDAuMnM7IHRyYW5zaXRpb24tcHJvcGVydHk6IG5vbmU7 +IHRleHQtcmVuZGVyaW5nOiBvcHRpbWl6ZWxlZ2liaWxpdHk7IGNhcmV0LWNvbG9yOiByZ2IoMCwg +MCwgMCk7IHRleHQtZGVjb3JhdGlvbi10aGlja25lc3M6IGF1dG87IHRleHQtZGVjb3JhdGlvbi1z +dHlsZTogc29saWQ7IHRleHQtdW5kZXJsaW5lLXBvc2l0aW9uOiB1bmRlciAhaW1wb3J0YW50O1wi +PkRpZSZuYnNwOzxhIGhyZWY9XCJodHRwczovL3d3dy5tb2JpbGl0YWV0c2ZvcnVtLmJ1bmQuZGUv +REUvVGhlbWVuL05ld3MtUkFEYXIvX3RleHRlL1ZlcmtlaHJzc2ljaGVyaGVpdHNhcmJlaXRfVmVy +a2VocnNzY2hhdV8yNjAxLmh0bWw/bm49NDk0NDU2XCIgdGl0bGU9XCJWZXJrZWhyc3NjaGF1OiBH +cnVuZGxhZ2VuLCBBcnRlbiwgQWJsYXVmXCIgc3R5bGU9XCJib3gtc2l6aW5nOiBpbmhlcml0OyB0 +cmFuc2l0aW9uLWRlbGF5OiAwczsgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW4t +b3V0OyB0cmFuc2l0aW9uLWR1cmF0aW9uOiAwLjJzOyB0cmFuc2l0aW9uLXByb3BlcnR5OiBub25l +OyBjdXJzb3I6IHBvaW50ZXI7IHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IGxldHRlci1zcGFj +aW5nOiAycHg7IGZvbnQtd2VpZ2h0OiA3MDA7IHBvc2l0aW9uOiByZWxhdGl2ZTsgdGV4dC11bmRl +cmxpbmUtcG9zaXRpb246IHVuZGVyICFpbXBvcnRhbnQ7XCI+VkVSS0VIUlNTQ0hBVTwvYT4mbmJz +cDtkaWVudCBkZXIgcmVnZWxtw6TDn2lnZW4gw5xiZXJwcsO8ZnVuZyBkZXIgU3RyYcOfZW5hdXNz +dGF0dHVuZy4gTmFjaCBkZXImbmJzcDs8YSBocmVmPVwiaHR0cHM6Ly93d3cudmVyd2FsdHVuZ3N2 +b3JzY2hyaWZ0ZW4taW0taW50ZXJuZXQuZGUvYnN2d3ZidW5kXzI2MDEyMDAxX1MzMjM2NDIwMDE0 +Lmh0bVwiIHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyIG5vcmVmZXJyZXJcIiB0aXRs +ZT1cIkV4dGVybmVyIExpbmsmbmJzcDtUZXh0IGRlciBBbGxnZW1laW5lbiBWZXJ3YWx0dW5nc3Zv +cnNjaHJpZnQgenVyIFN0cmHDn2VudmVya2VocnMtT3JkbnVuZy4gKMOWZmZuZXQmbmJzcDtuZXVl +cyZuYnNwO0ZlbnN0ZXIpXCIgc3R5bGU9XCJib3gtc2l6aW5nOiBpbmhlcml0OyB0cmFuc2l0aW9u +LWRlbGF5OiAwczsgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW4tb3V0OyB0cmFu +c2l0aW9uLWR1cmF0aW9uOiAwLjJzOyB0cmFuc2l0aW9uLXByb3BlcnR5OiBub25lOyBjdXJzb3I6 +IHBvaW50ZXI7IHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IGxldHRlci1zcGFjaW5nOiAycHg7 +IGZvbnQtd2VpZ2h0OiA3MDA7IHBvc2l0aW9uOiByZWxhdGl2ZTsgdGV4dC11bmRlcmxpbmUtcG9z +aXRpb246IHVuZGVyICFpbXBvcnRhbnQ7XCI+VkVSV0FMVFVOR1NWT1JTQ0hSSUZUPC9hPiZuYnNw +O3p1IMKnIDQ1IGRlciBTdHJhw59lbnZlcmtlaHJzLU9yZG51bmcgc2luZCBkaWUgU3RyYcOfZW52 +ZXJrZWhyc2JlaMO2cmRlbiBhbGxlIHp3ZWkgSmFocmUgenUgZWluZXIgdW1mYXNzZW5kZW4gVmVy +a2VocnNzY2hhdSB2ZXJwZmxpY2h0ZXQuIERhYmVpIHdlcmRlbiBkZXIgWnVzdGFuZCB1bmQgZGll +IEVya2VubmJhcmtlaXQgZGVyIFZlcmtlaHJzemVpY2hlbiB1bmQgLWVpbnJpY2h0dW5nZW4gZ2Vw +csO8ZnQgc293aWUgZGFzIEVyZm9yZGVybmlzIHZvbiB3ZWl0ZXJlbiBNYcOfbmFobWVuIHp1ciBT +aWNoZXJ1bmcgdm9uIGdlZsOkaHJsaWNoZW4gU3RlbGxlbiBiZXVydGVpbHQuPC9wPjxwIHN0eWxl +PVwiYm94LXNpemluZzogaW5oZXJpdDsgdHJhbnNpdGlvbi1kZWxheTogMHM7IHRyYW5zaXRpb24t +dGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluLW91dDsgdHJhbnNpdGlvbi1kdXJhdGlvbjogMC4yczsg +dHJhbnNpdGlvbi1wcm9wZXJ0eTogbm9uZTsgdGV4dC1yZW5kZXJpbmc6IG9wdGltaXplbGVnaWJp +bGl0eTsgY2FyZXQtY29sb3I6IHJnYigwLCAwLCAwKTsgdGV4dC1kZWNvcmF0aW9uLXRoaWNrbmVz +czogYXV0bzsgdGV4dC1kZWNvcmF0aW9uLXN0eWxlOiBzb2xpZDsgdGV4dC11bmRlcmxpbmUtcG9z +aXRpb246IHVuZGVyICFpbXBvcnRhbnQ7XCI+PHEgc3R5bGU9XCJib3gtc2l6aW5nOiBpbmhlcml0 +OyB0cmFuc2l0aW9uLWRlbGF5OiAwczsgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2Ut +aW4tb3V0OyB0cmFuc2l0aW9uLWR1cmF0aW9uOiAwLjJzOyB0cmFuc2l0aW9uLXByb3BlcnR5OiBu +b25lOyBxdW90ZXM6ICZxdW90OyZxdW90OyAmcXVvdDsmcXVvdDsgJnF1b3Q7JnF1b3Q7ICZxdW90 +OyZxdW90OzsgZm9udC1zdHlsZTogaXRhbGljOyB0ZXh0LXVuZGVybGluZS1wb3NpdGlvbjogdW5k +ZXIgIWltcG9ydGFudDtcIj7igJ5EaWUgU3RyYcOfZW52ZXJrZWhyc2JlaMO2cmRlbiBoYWJlbiBi +ZWkgamVkZXIgR2VsZWdlbmhlaXQgZGllIFZvcmF1c3NldHp1bmdlbiBmw7xyIGVpbmVuIHJlaWJ1 +bmdzbG9zZW4gQWJsYXVmIGRlcyBWZXJrZWhycyB6dSBwcsO8ZmVuLiBb4oCmXSBBbGxlIHp3ZWkg +SmFocmUgaGFiZW4gZGllIFN0cmHDn2VudmVya2VocnNiZWjDtnJkZW4genUgZGllc2VtIFp3ZWNr +IGVpbmUgdW1mYXNzZW5kZSBWZXJrZWhyc3NjaGF1IHZvcnp1bmVobWVuLCBhdWYgU3RyYcOfZW4g +dm9uIGVyaGVibGljaGVyIFZlcmtlaHJzYmVkZXV0dW5nIHVuZCDDvGJlcmFsbCBkb3J0LCB3byBu +aWNodCBzZWx0ZW4gVW5mw6RsbGUgdm9ya29tbWVuLCBhbGxqw6RocmxpY2gsIGVyZm9yZGVybGlj +aGVuZmFsbHMgYXVjaCBiZWkgTmFjaHQu4oCcPC9xPjxiciBzdHlsZT1cImJveC1zaXppbmc6IGlu +aGVyaXQ7IHRleHQtdW5kZXJsaW5lLXBvc2l0aW9uOiB1bmRlciAhaW1wb3J0YW50OyB0cmFuc2l0 +aW9uLWRlbGF5OiAwczsgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW4tb3V0OyB0 +cmFuc2l0aW9uLWR1cmF0aW9uOiAwLjJzOyB0cmFuc2l0aW9uLXByb3BlcnR5OiBub25lO1wiPjxj +aXRlIHN0eWxlPVwiYm94LXNpemluZzogaW5oZXJpdDsgdHJhbnNpdGlvbi1kZWxheTogMHM7IHRy +YW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluLW91dDsgdHJhbnNpdGlvbi1kdXJhdGlv +bjogMC4yczsgdHJhbnNpdGlvbi1wcm9wZXJ0eTogbm9uZTsgdGV4dC11bmRlcmxpbmUtcG9zaXRp +b246IHVuZGVyICFpbXBvcnRhbnQ7XCI+VmVyd2FsdHVuZ3N2b3JzY2hyaWZ0ZW4mbmJzcDs8L2Np +dGU+PGNpdGUgc3R5bGU9XCJib3gtc2l6aW5nOiBpbmhlcml0OyB0cmFuc2l0aW9uLWRlbGF5OiAw +czsgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW4tb3V0OyB0cmFuc2l0aW9uLWR1 +cmF0aW9uOiAwLjJzOyB0cmFuc2l0aW9uLXByb3BlcnR5OiBub25lOyB0ZXh0LXVuZGVybGluZS1w +b3NpdGlvbjogdW5kZXIgIWltcG9ydGFudDtcIj48YWJiciB0aXRsZT1cIlwiIGRhdGEtdG9vbHRp +cD1cIjAzYm50bi10b29sdGlwXCIgYXJpYS1oYXNwb3B1cD1cInRydWVcIiBhcmlhLWRlc2NyaWJl +ZGJ5PVwidzY4MHRvLXRvb2x0aXBcIiBkYXRhLXlldGktYm94PVwidzY4MHRvLXRvb2x0aXBcIiBk +YXRhLXRvZ2dsZT1cInc2ODB0by10b29sdGlwXCIgZGF0YS1yZXNpemU9XCJ3NjgwdG8tdG9vbHRp +cFwiIHN0eWxlPVwiYm94LXNpemluZzogaW5oZXJpdDsgdHJhbnNpdGlvbi1kZWxheTogMHM7IHRy +YW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluLW91dDsgdHJhbnNpdGlvbi1kdXJhdGlv +bjogMC4yczsgdHJhbnNpdGlvbi1wcm9wZXJ0eTogbm9uZTsgY3Vyc29yOiBoZWxwOyB0ZXh0LWRl +Y29yYXRpb24tdGhpY2tuZXNzOiAycHg7IHBvc2l0aW9uOiByZWxhdGl2ZTsgdGV4dC11bmRlcmxp +bmUtcG9zaXRpb246IHVuZGVyICFpbXBvcnRhbnQ7XCI+TnIuPC9hYmJyPjwvY2l0ZT48Y2l0ZSBz +dHlsZT1cImJveC1zaXppbmc6IGluaGVyaXQ7IHRyYW5zaXRpb24tZGVsYXk6IDBzOyB0cmFuc2l0 +aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbi1vdXQ7IHRyYW5zaXRpb24tZHVyYXRpb246IDAu +MnM7IHRyYW5zaXRpb24tcHJvcGVydHk6IG5vbmU7IHRleHQtdW5kZXJsaW5lLXBvc2l0aW9uOiB1 +bmRlciAhaW1wb3J0YW50O1wiPiZuYnNwOzU2IHVuZCA1NyAoQXVzenVnKSB6dSDCpyA0NSBBbGxn +ZW1laW5lIFZlcndhbHR1bmdzdm9yc2NocmlmdCB6dXIgU3RyYcOfZW52ZXJrZWhycy1PcmRudW5n +ICg8L2NpdGU+PGNpdGUgc3R5bGU9XCJib3gtc2l6aW5nOiBpbmhlcml0OyB0cmFuc2l0aW9uLWRl +bGF5OiAwczsgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW4tb3V0OyB0cmFuc2l0 +aW9uLWR1cmF0aW9uOiAwLjJzOyB0cmFuc2l0aW9uLXByb3BlcnR5OiBub25lOyB0ZXh0LXVuZGVy +bGluZS1wb3NpdGlvbjogdW5kZXIgIWltcG9ydGFudDtcIj48YWJiciB0aXRsZT1cIlwiIGRhdGEt +dG9vbHRpcD1cIm03YWpvdS10b29sdGlwXCIgYXJpYS1oYXNwb3B1cD1cInRydWVcIiBhcmlhLWRl +c2NyaWJlZGJ5PVwib2RwOWo0LXRvb2x0aXBcIiBkYXRhLXlldGktYm94PVwib2RwOWo0LXRvb2x0 +aXBcIiBkYXRhLXRvZ2dsZT1cIm9kcDlqNC10b29sdGlwXCIgZGF0YS1yZXNpemU9XCJvZHA5ajQt +dG9vbHRpcFwiIHN0eWxlPVwiYm94LXNpemluZzogaW5oZXJpdDsgdHJhbnNpdGlvbi1kZWxheTog +MHM7IHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluLW91dDsgdHJhbnNpdGlvbi1k +dXJhdGlvbjogMC4yczsgdHJhbnNpdGlvbi1wcm9wZXJ0eTogbm9uZTsgY3Vyc29yOiBoZWxwOyB0 +ZXh0LWRlY29yYXRpb24tdGhpY2tuZXNzOiAycHg7IHBvc2l0aW9uOiByZWxhdGl2ZTsgdGV4dC11 +bmRlcmxpbmUtcG9zaXRpb246IHVuZGVyICFpbXBvcnRhbnQ7XCI+VndWLVN0Vk88L2FiYnI+PC9j +aXRlPjxjaXRlIHN0eWxlPVwiYm94LXNpemluZzogaW5oZXJpdDsgdHJhbnNpdGlvbi1kZWxheTog +MHM7IHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluLW91dDsgdHJhbnNpdGlvbi1k +dXJhdGlvbjogMC4yczsgdHJhbnNpdGlvbi1wcm9wZXJ0eTogbm9uZTsgdGV4dC11bmRlcmxpbmUt +cG9zaXRpb246IHVuZGVyICFpbXBvcnRhbnQ7XCI+KTwvY2l0ZT48L3A+PHAgc3R5bGU9XCJib3gt +c2l6aW5nOiBpbmhlcml0OyB0cmFuc2l0aW9uLWRlbGF5OiAwczsgdHJhbnNpdGlvbi10aW1pbmct +ZnVuY3Rpb246IGVhc2UtaW4tb3V0OyB0cmFuc2l0aW9uLWR1cmF0aW9uOiAwLjJzOyB0cmFuc2l0 +aW9uLXByb3BlcnR5OiBub25lOyB0ZXh0LXJlbmRlcmluZzogb3B0aW1pemVsZWdpYmlsaXR5OyBj +YXJldC1jb2xvcjogcmdiKDAsIDAsIDApOyB0ZXh0LWRlY29yYXRpb24tdGhpY2tuZXNzOiBhdXRv +OyB0ZXh0LWRlY29yYXRpb24tc3R5bGU6IHNvbGlkOyB0ZXh0LXVuZGVybGluZS1wb3NpdGlvbjog +dW5kZXIgIWltcG9ydGFudDtcIj5adXIgcHJha3Rpc2NoZW4gRHVyY2hmw7xocnVuZyBkaWVzZXIg +QXVmZ2FiZSBoYXQgZGllIEZvcnNjaHVuZ3NnZXNlbGxzY2hhZnQgZsO8ciBTdHJhw59lbi0gdW5k +IFZlcmtlaHJzd2VzZW4gKDxhYmJyIHRpdGxlPVwiXCIgZGF0YS10b29sdGlwPVwibGV4ZWpuLXRv +b2x0aXBcIiBhcmlhLWhhc3BvcHVwPVwidHJ1ZVwiIGFyaWEtZGVzY3JpYmVkYnk9XCJ5M3p1MjYt +dG9vbHRpcFwiIGRhdGEteWV0aS1ib3g9XCJ5M3p1MjYtdG9vbHRpcFwiIGRhdGEtdG9nZ2xlPVwi +eTN6dTI2LXRvb2x0aXBcIiBkYXRhLXJlc2l6ZT1cInkzenUyNi10b29sdGlwXCIgc3R5bGU9XCJi +b3gtc2l6aW5nOiBpbmhlcml0OyB0cmFuc2l0aW9uLWRlbGF5OiAwczsgdHJhbnNpdGlvbi10aW1p +bmctZnVuY3Rpb246IGVhc2UtaW4tb3V0OyB0cmFuc2l0aW9uLWR1cmF0aW9uOiAwLjJzOyB0cmFu +c2l0aW9uLXByb3BlcnR5OiBub25lOyBjdXJzb3I6IGhlbHA7IHRleHQtZGVjb3JhdGlvbi10aGlj +a25lc3M6IDJweDsgcG9zaXRpb246IHJlbGF0aXZlOyB0ZXh0LXVuZGVybGluZS1wb3NpdGlvbjog +dW5kZXIgIWltcG9ydGFudDtcIj5GR1NWPC9hYmJyPikgZWluIOKAnjxhIGhyZWY9XCJodHRwczov +L3d3dy5mZ3N2LXZlcmxhZy5kZS9tLWR2XCIgdGFyZ2V0PVwiX2JsYW5rXCIgcmVsPVwibm9vcGVu +ZXIgbm9yZWZlcnJlclwiIHRpdGxlPVwiRXh0ZXJuZXIgTGluayZuYnNwO8OcYmVyc2ljaHQgenUg +ZWluZXIgUHVibGlrYXRpb24gbWl0IEthdWZvcHRpb24uICjDlmZmbmV0Jm5ic3A7bmV1ZXMmbmJz +cDtGZW5zdGVyKVwiIHN0eWxlPVwiYm94LXNpemluZzogaW5oZXJpdDsgdHJhbnNpdGlvbi1kZWxh +eTogMHM7IHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluLW91dDsgdHJhbnNpdGlv +bi1kdXJhdGlvbjogMC4yczsgdHJhbnNpdGlvbi1wcm9wZXJ0eTogbm9uZTsgY3Vyc29yOiBwb2lu +dGVyOyB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyBsZXR0ZXItc3BhY2luZzogMnB4OyBmb250 +LXdlaWdodDogNzAwOyBwb3NpdGlvbjogcmVsYXRpdmU7IHRleHQtdW5kZXJsaW5lLXBvc2l0aW9u +OiB1bmRlciAhaW1wb3J0YW50O1wiPk1FUktCTEFUVDwvYT4mbmJzcDtmw7xyIGRpZSBEdXJjaGbD +vGhydW5nIHZvbiBWZXJrZWhyc3NjaGF1ZW7igJwgZXJhcmJlaXRldC48L3A+PGgzIGlkPVwidnQt +c3ByZy01XCIgc3R5bGU9XCJib3gtc2l6aW5nOiBpbmhlcml0OyB0cmFuc2l0aW9uLWRlbGF5OiAw +czsgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW4tb3V0OyB0cmFuc2l0aW9uLWR1 +cmF0aW9uOiAwLjJzOyB0cmFuc2l0aW9uLXByb3BlcnR5OiBub25lOyB0ZXh0LXJlbmRlcmluZzog +b3B0aW1pemVsZWdpYmlsaXR5OyBjbGVhcjogYm90aDsgc2Nyb2xsLW1hcmdpbi10b3A6IDIwMHB4 +OyBwb3NpdGlvbjogcmVsYXRpdmU7IGNhcmV0LWNvbG9yOiByZ2IoMCwgMCwgMCk7IHRleHQtZGVj +b3JhdGlvbi10aGlja25lc3M6IGF1dG87IHRleHQtZGVjb3JhdGlvbi1zdHlsZTogc29saWQ7IHRl +eHQtdW5kZXJsaW5lLXBvc2l0aW9uOiB1bmRlciAhaW1wb3J0YW50O1wiPlNpY2hlcmhlaXRzYXVk +aXQ8L2gzPjxwIHN0eWxlPVwiYm94LXNpemluZzogaW5oZXJpdDsgdHJhbnNpdGlvbi1kZWxheTog +MHM7IHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluLW91dDsgdHJhbnNpdGlvbi1k +dXJhdGlvbjogMC4yczsgdHJhbnNpdGlvbi1wcm9wZXJ0eTogbm9uZTsgdGV4dC1yZW5kZXJpbmc6 +IG9wdGltaXplbGVnaWJpbGl0eTsgY2FyZXQtY29sb3I6IHJnYigwLCAwLCAwKTsgdGV4dC1kZWNv +cmF0aW9uLXRoaWNrbmVzczogYXV0bzsgdGV4dC1kZWNvcmF0aW9uLXN0eWxlOiBzb2xpZDsgdGV4 +dC11bmRlcmxpbmUtcG9zaXRpb246IHVuZGVyICFpbXBvcnRhbnQ7XCI+RGFzJm5ic3A7PGEgaHJl +Zj1cImh0dHBzOi8vd3d3Lm1vYmlsaXRhZXRzZm9ydW0uYnVuZC5kZS9ERS9UaGVtZW4vTmV3cy1S +QURhci9fdGV4dGUvVmVya2VocnNzaWNoZXJoZWl0c2FyYmVpdF9TaWNoZXJoZWl0c2F1ZGl0c18y +NTExLmh0bWw/bm49NDk0NDU2XCIgdGl0bGU9XCJTaWNoZXJoZWl0c2F1ZGl0cyB2b24gU3RyYcOf +ZW5cIiBzdHlsZT1cImJveC1zaXppbmc6IGluaGVyaXQ7IHRyYW5zaXRpb24tZGVsYXk6IDBzOyB0 +cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbi1vdXQ7IHRyYW5zaXRpb24tZHVyYXRp +b246IDAuMnM7IHRyYW5zaXRpb24tcHJvcGVydHk6IG5vbmU7IGN1cnNvcjogcG9pbnRlcjsgdGV4 +dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgbGV0dGVyLXNwYWNpbmc6IDJweDsgZm9udC13ZWlnaHQ6 +IDcwMDsgcG9zaXRpb246IHJlbGF0aXZlOyB0ZXh0LXVuZGVybGluZS1wb3NpdGlvbjogdW5kZXIg +IWltcG9ydGFudDtcIj5TSUNIRVJIRUlUU0FVRElUPC9hPiZuYnNwO2lzdCBlaW4gdmVyZ2xlaWNo +c3dlaXNlIGp1bmdlcyBWZXJmYWhyZW4gaW0gV2Vya3pldWdrYXN0ZW4gZGVyIFZlcmtlaHJzc2lj +aGVyaGVpdHNhcmJlaXQuIEbDvHIgZGllIER1cmNoZsO8aHJ1bmcgdm9uIFNpY2hlcmhlaXRzYXVk +aXRzIGluIERldXRzY2hsYW5kIHd1cmRlbiBlcnN0bWFscyBtaXQgZGVtIEFsbGdlbWVpbmVuIFJ1 +bmRzY2hyZWliZW4gU3RyYcOfZW5iYXUmbmJzcDs8YWJiciB0aXRsZT1cIlwiIGRhdGEtdG9vbHRp +cD1cImhiYjE2ZC10b29sdGlwXCIgYXJpYS1oYXNwb3B1cD1cInRydWVcIiBhcmlhLWRlc2NyaWJl +ZGJ5PVwiNWtxb3JwLXRvb2x0aXBcIiBkYXRhLXlldGktYm94PVwiNWtxb3JwLXRvb2x0aXBcIiBk +YXRhLXRvZ2dsZT1cIjVrcW9ycC10b29sdGlwXCIgZGF0YS1yZXNpemU9XCI1a3FvcnAtdG9vbHRp +cFwiIHN0eWxlPVwiYm94LXNpemluZzogaW5oZXJpdDsgdHJhbnNpdGlvbi1kZWxheTogMHM7IHRy +YW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluLW91dDsgdHJhbnNpdGlvbi1kdXJhdGlv +bjogMC4yczsgdHJhbnNpdGlvbi1wcm9wZXJ0eTogbm9uZTsgY3Vyc29yOiBoZWxwOyB0ZXh0LWRl +Y29yYXRpb24tdGhpY2tuZXNzOiAycHg7IHBvc2l0aW9uOiByZWxhdGl2ZTsgdGV4dC11bmRlcmxp +bmUtcG9zaXRpb246IHVuZGVyICFpbXBvcnRhbnQ7XCI+TnIuPC9hYmJyPiZuYnNwOzE4LzIwMDIg +ZGllIOKAnkVtcGZlaGx1bmdlbiBmw7xyIGRhcyBTaWNoZXJoZWl0c2F1ZGl0IHZvbiBTdHJhw59l +buKAnCAoPGFiYnIgdGl0bGU9XCJcIiBkYXRhLXRvb2x0aXA9XCJ0NnI2Ym0tdG9vbHRpcFwiIGFy +aWEtaGFzcG9wdXA9XCJ0cnVlXCIgYXJpYS1kZXNjcmliZWRieT1cImZhMjZwbS10b29sdGlwXCIg +ZGF0YS15ZXRpLWJveD1cImZhMjZwbS10b29sdGlwXCIgZGF0YS10b2dnbGU9XCJmYTI2cG0tdG9v +bHRpcFwiIGRhdGEtcmVzaXplPVwiZmEyNnBtLXRvb2x0aXBcIiBzdHlsZT1cImJveC1zaXppbmc6 +IGluaGVyaXQ7IHRyYW5zaXRpb24tZGVsYXk6IDBzOyB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlv +bjogZWFzZS1pbi1vdXQ7IHRyYW5zaXRpb24tZHVyYXRpb246IDAuMnM7IHRyYW5zaXRpb24tcHJv +cGVydHk6IG5vbmU7IGN1cnNvcjogaGVscDsgdGV4dC1kZWNvcmF0aW9uLXRoaWNrbmVzczogMnB4 +OyBwb3NpdGlvbjogcmVsYXRpdmU7IHRleHQtdW5kZXJsaW5lLXBvc2l0aW9uOiB1bmRlciAhaW1w +b3J0YW50O1wiPkVTQVM8L2FiYnI+KSB6dXIgQW53ZW5kdW5nIGVtcGZvaGxlbi4gTWl0IGRlbSBB +bGxnZW1laW5lbiBSdW5kc2NocmVpYmVuIFN0cmHDn2VuYmF1Jm5ic3A7PGFiYnIgdGl0bGU9XCJc +IiBkYXRhLXRvb2x0aXA9XCI2cTY1aTEtdG9vbHRpcFwiIGFyaWEtaGFzcG9wdXA9XCJ0cnVlXCIg +YXJpYS1kZXNjcmliZWRieT1cIm81dTkxZC10b29sdGlwXCIgZGF0YS15ZXRpLWJveD1cIm81dTkx +ZC10b29sdGlwXCIgZGF0YS10b2dnbGU9XCJvNXU5MWQtdG9vbHRpcFwiIGRhdGEtcmVzaXplPVwi +bzV1OTFkLXRvb2x0aXBcIiBzdHlsZT1cImJveC1zaXppbmc6IGluaGVyaXQ7IHRyYW5zaXRpb24t +ZGVsYXk6IDBzOyB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbi1vdXQ7IHRyYW5z +aXRpb24tZHVyYXRpb246IDAuMnM7IHRyYW5zaXRpb24tcHJvcGVydHk6IG5vbmU7IGN1cnNvcjog +aGVscDsgdGV4dC1kZWNvcmF0aW9uLXRoaWNrbmVzczogMnB4OyBwb3NpdGlvbjogcmVsYXRpdmU7 +IHRleHQtdW5kZXJsaW5lLXBvc2l0aW9uOiB1bmRlciAhaW1wb3J0YW50O1wiPk5yLjwvYWJicj4m +bmJzcDsyNS8yMDIxICg8YWJiciB0aXRsZT1cIlwiIGRhdGEtdG9vbHRpcD1cImxzOWF0OS10b29s +dGlwXCIgYXJpYS1oYXNwb3B1cD1cInRydWVcIiBhcmlhLWRlc2NyaWJlZGJ5PVwiODEzOXVtLXRv +b2x0aXBcIiBkYXRhLXlldGktYm94PVwiODEzOXVtLXRvb2x0aXBcIiBkYXRhLXRvZ2dsZT1cIjgx +Mzl1bS10b29sdGlwXCIgZGF0YS1yZXNpemU9XCI4MTM5dW0tdG9vbHRpcFwiIHN0eWxlPVwiYm94 +LXNpemluZzogaW5oZXJpdDsgdHJhbnNpdGlvbi1kZWxheTogMHM7IHRyYW5zaXRpb24tdGltaW5n +LWZ1bmN0aW9uOiBlYXNlLWluLW91dDsgdHJhbnNpdGlvbi1kdXJhdGlvbjogMC4yczsgdHJhbnNp +dGlvbi1wcm9wZXJ0eTogbm9uZTsgY3Vyc29yOiBoZWxwOyB0ZXh0LWRlY29yYXRpb24tdGhpY2tu +ZXNzOiAycHg7IHBvc2l0aW9uOiByZWxhdGl2ZTsgdGV4dC11bmRlcmxpbmUtcG9zaXRpb246IHVu +ZGVyICFpbXBvcnRhbnQ7XCI+QVJTPC9hYmJyPiZuYnNwOzxhYmJyIHRpdGxlPVwiXCIgZGF0YS10 +b29sdGlwPVwicTJsZTN4LXRvb2x0aXBcIiBhcmlhLWhhc3BvcHVwPVwidHJ1ZVwiIGFyaWEtZGVz +Y3JpYmVkYnk9XCI1czh1dW8tdG9vbHRpcFwiIGRhdGEteWV0aS1ib3g9XCI1czh1dW8tdG9vbHRp +cFwiIGRhdGEtdG9nZ2xlPVwiNXM4dXVvLXRvb2x0aXBcIiBkYXRhLXJlc2l6ZT1cIjVzOHV1by10 +b29sdGlwXCIgc3R5bGU9XCJib3gtc2l6aW5nOiBpbmhlcml0OyB0cmFuc2l0aW9uLWRlbGF5OiAw +czsgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW4tb3V0OyB0cmFuc2l0aW9uLWR1 +cmF0aW9uOiAwLjJzOyB0cmFuc2l0aW9uLXByb3BlcnR5OiBub25lOyBjdXJzb3I6IGhlbHA7IHRl +eHQtZGVjb3JhdGlvbi10aGlja25lc3M6IDJweDsgcG9zaXRpb246IHJlbGF0aXZlOyB0ZXh0LXVu +ZGVybGluZS1wb3NpdGlvbjogdW5kZXIgIWltcG9ydGFudDtcIj5Oci48L2FiYnI+Jm5ic3A7MjUv +MjAyMSwgc2llaGUmbmJzcDs8YSBocmVmPVwiaHR0cHM6Ly93d3cuYm12LmRlL1NoYXJlZERvY3Mv +REUvQW5sYWdlL1N0Qi9hcnMtYWt0dWVsbC9hbGxnZW1laW5lcy1ydW5kc2NocmVpYmVuLXN0cmFz +c2VuYmF1LTIwMjEtMjUucGRmP19fYmxvYj1wdWJsaWNhdGlvbkZpbGVcIiB0YXJnZXQ9XCJfYmxh +bmtcIiByZWw9XCJub29wZW5lciBub3JlZmVycmVyXCIgdGl0bGU9XCJFeHRlcm5lciBMaW5rJm5i +c3A7VGV4dCBkZXMgQWxsZ2VtZWluZW4gUnVuZHNjaHJlaWJlbnMgU3RyYcOfZW5iYXUgTnIuIDI1 +LzIwMjEgZGVzIGRhbWFsaWdlbiBCdW5kZXNtaW5pc3Rlcml1bXMgZsO8ciBWZXJrZWhyIHVuZCBk +aWdpdGFsZSBJbmZyYXN0cnVrdHVyLiAow5ZmZm5ldCZuYnNwO25ldWVzJm5ic3A7RmVuc3Rlcilc +IiBzdHlsZT1cImJveC1zaXppbmc6IGluaGVyaXQ7IHRyYW5zaXRpb24tZGVsYXk6IDBzOyB0cmFu +c2l0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbi1vdXQ7IHRyYW5zaXRpb24tZHVyYXRpb246 +IDAuMnM7IHRyYW5zaXRpb24tcHJvcGVydHk6IG5vbmU7IGN1cnNvcjogcG9pbnRlcjsgdGV4dC10 +cmFuc2Zvcm06IHVwcGVyY2FzZTsgbGV0dGVyLXNwYWNpbmc6IDJweDsgZm9udC13ZWlnaHQ6IDcw +MDsgcG9zaXRpb246IHJlbGF0aXZlOyB0ZXh0LXVuZGVybGluZS1wb3NpdGlvbjogdW5kZXIgIWlt +cG9ydGFudDtcIj48YWJiciB0aXRsZT1cIlwiIGRhdGEtdG9vbHRpcD1cImRtd2RxNS10b29sdGlw +XCIgYXJpYS1oYXNwb3B1cD1cInRydWVcIiBhcmlhLWRlc2NyaWJlZGJ5PVwiaXIwenNvLXRvb2x0 +aXBcIiBkYXRhLXlldGktYm94PVwiaXIwenNvLXRvb2x0aXBcIiBkYXRhLXRvZ2dsZT1cImlyMHpz +by10b29sdGlwXCIgZGF0YS1yZXNpemU9XCJpcjB6c28tdG9vbHRpcFwiIHN0eWxlPVwiYm94LXNp +emluZzogaW5oZXJpdDsgdHJhbnNpdGlvbi1kZWxheTogMHM7IHRyYW5zaXRpb24tdGltaW5nLWZ1 +bmN0aW9uOiBlYXNlLWluLW91dDsgdHJhbnNpdGlvbi1kdXJhdGlvbjogMC4yczsgdHJhbnNpdGlv +bi1wcm9wZXJ0eTogbm9uZTsgY3Vyc29yOiBoZWxwOyB0ZXh0LWRlY29yYXRpb24tdGhpY2tuZXNz +OiAycHg7IHBvc2l0aW9uOiByZWxhdGl2ZTsgZm9udC13ZWlnaHQ6IG5vcm1hbDsgdGV4dC11bmRl +cmxpbmUtcG9zaXRpb246IHVuZGVyICFpbXBvcnRhbnQ7XCI+UERGPC9hYmJyPjwvYT4pIHd1cmRl +IGRpZSBEdXJjaGbDvGhydW5nIHZvbiBTdHJhw59lbnZlcmtlaHJzc2ljaGVyaGVpdHNhdWRpdHMg +ZsO8ciBiZXN0aW1tdGUgU3RyYcOfZW4gbmF0aW9uYWwgdmVyYmluZGxpY2guPC9wPjxwIHN0eWxl +PVwiYm94LXNpemluZzogaW5oZXJpdDsgdHJhbnNpdGlvbi1kZWxheTogMHM7IHRyYW5zaXRpb24t +dGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluLW91dDsgdHJhbnNpdGlvbi1kdXJhdGlvbjogMC4yczsg +dHJhbnNpdGlvbi1wcm9wZXJ0eTogbm9uZTsgdGV4dC1yZW5kZXJpbmc6IG9wdGltaXplbGVnaWJp +bGl0eTsgY2FyZXQtY29sb3I6IHJnYigwLCAwLCAwKTsgdGV4dC1kZWNvcmF0aW9uLXRoaWNrbmVz +czogYXV0bzsgdGV4dC1kZWNvcmF0aW9uLXN0eWxlOiBzb2xpZDsgdGV4dC11bmRlcmxpbmUtcG9z +aXRpb246IHVuZGVyICFpbXBvcnRhbnQ7XCI+U2ljaGVyaGVpdHNhdWRpdHMgZmluZGVuIGRlbW5h +Y2ggZ3J1bmRzw6R0emxpY2ggaW0gUGxhbnVuZ3Nwcm96ZXNzIEFud2VuZHVuZywga8O2bm5lbiBh +YmVyIGF1Y2ggYmVpIGJlcmVpdHMgYmVzdGVoZW5kZW4gVmVya2VocnNhbmxhZ2VuICg8YWJiciB0 +aXRsZT1cIlwiIGRhdGEtdG9vbHRpcD1cImdnZDlkOC10b29sdGlwXCIgYXJpYS1oYXNwb3B1cD1c +InRydWVcIiBhcmlhLWRlc2NyaWJlZGJ5PVwiZnJ0cWRkLXRvb2x0aXBcIiBkYXRhLXlldGktYm94 +PVwiZnJ0cWRkLXRvb2x0aXBcIiBkYXRhLXRvZ2dsZT1cImZydHFkZC10b29sdGlwXCIgZGF0YS1y +ZXNpemU9XCJmcnRxZGQtdG9vbHRpcFwiIHN0eWxlPVwiYm94LXNpemluZzogaW5oZXJpdDsgdHJh +bnNpdGlvbi1kZWxheTogMHM7IHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluLW91 +dDsgdHJhbnNpdGlvbi1kdXJhdGlvbjogMC4yczsgdHJhbnNpdGlvbi1wcm9wZXJ0eTogbm9uZTsg +Y3Vyc29yOiBoZWxwOyB0ZXh0LWRlY29yYXRpb24tdGhpY2tuZXNzOiAycHg7IHBvc2l0aW9uOiBy +ZWxhdGl2ZTsgdGV4dC11bmRlcmxpbmUtcG9zaXRpb246IHVuZGVyICFpbXBvcnRhbnQ7XCI+c29n +LjwvYWJicj4mbmJzcDvigJ5hbmxhc3NiZXpvZ2VuZSBTaWNoZXJoZWl0c2F1ZGl0cyBpbSBCZXN0 +YW5k4oCcKSB3aWNodGlnZSBFcmtlbm50bmlzc2UgbGllZmVybi48L3A+PHAgc3R5bGU9XCJib3gt +c2l6aW5nOiBpbmhlcml0OyB0cmFuc2l0aW9uLWRlbGF5OiAwczsgdHJhbnNpdGlvbi10aW1pbmct +ZnVuY3Rpb246IGVhc2UtaW4tb3V0OyB0cmFuc2l0aW9uLWR1cmF0aW9uOiAwLjJzOyB0cmFuc2l0 +aW9uLXByb3BlcnR5OiBub25lOyB0ZXh0LXJlbmRlcmluZzogb3B0aW1pemVsZWdpYmlsaXR5OyBj +YXJldC1jb2xvcjogcmdiKDAsIDAsIDApOyB0ZXh0LWRlY29yYXRpb24tdGhpY2tuZXNzOiBhdXRv +OyB0ZXh0LWRlY29yYXRpb24tc3R5bGU6IHNvbGlkOyB0ZXh0LXVuZGVybGluZS1wb3NpdGlvbjog +dW5kZXIgIWltcG9ydGFudDtcIj48cSBzdHlsZT1cImJveC1zaXppbmc6IGluaGVyaXQ7IHRyYW5z +aXRpb24tZGVsYXk6IDBzOyB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbi1vdXQ7 +IHRyYW5zaXRpb24tZHVyYXRpb246IDAuMnM7IHRyYW5zaXRpb24tcHJvcGVydHk6IG5vbmU7IHF1 +b3RlczogJnF1b3Q7JnF1b3Q7ICZxdW90OyZxdW90OyAmcXVvdDsmcXVvdDsgJnF1b3Q7JnF1b3Q7 +OyBmb250LXN0eWxlOiBpdGFsaWM7IHRleHQtdW5kZXJsaW5lLXBvc2l0aW9uOiB1bmRlciAhaW1w +b3J0YW50O1wiPuKAnlN0cmHDn2VudmVya2VocnNzaWNoZXJoZWl0c2F1ZGl0cyBzaW5kIGluIGFs +bGVuIFBsYW51bmdzLSB1bmQgQmF1cGhhc2VuIHZvbiBkZXIgVm9ycGxhbnVuZyBiaXMgenVyIEZl +cnRpZ3N0ZWxsdW5nIHNvd2llIGluIGRlciBlcnN0ZW4gQmV0cmllYnNwaGFzZSBuYWNoIGRlciBW +ZXJrZWhyc2ZyZWlnYWJlIGR1cmNoenVmw7xocmVuLuKAnDwvcT48YnIgc3R5bGU9XCJib3gtc2l6 +aW5nOiBpbmhlcml0OyB0ZXh0LXVuZGVybGluZS1wb3NpdGlvbjogdW5kZXIgIWltcG9ydGFudDsg +dHJhbnNpdGlvbi1kZWxheTogMHM7IHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWlu +LW91dDsgdHJhbnNpdGlvbi1kdXJhdGlvbjogMC4yczsgdHJhbnNpdGlvbi1wcm9wZXJ0eTogbm9u +ZTtcIj48Y2l0ZSBzdHlsZT1cImJveC1zaXppbmc6IGluaGVyaXQ7IHRyYW5zaXRpb24tZGVsYXk6 +IDBzOyB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbi1vdXQ7IHRyYW5zaXRpb24t +ZHVyYXRpb246IDAuMnM7IHRyYW5zaXRpb24tcHJvcGVydHk6IG5vbmU7IHRleHQtdW5kZXJsaW5l +LXBvc2l0aW9uOiB1bmRlciAhaW1wb3J0YW50O1wiPjxhYmJyIHRpdGxlPVwiXCIgZGF0YS10b29s +dGlwPVwiMDhiaDA3LXRvb2x0aXBcIiBhcmlhLWhhc3BvcHVwPVwidHJ1ZVwiIGFyaWEtZGVzY3Jp +YmVkYnk9XCJlcHR1Z24tdG9vbHRpcFwiIGRhdGEteWV0aS1ib3g9XCJlcHR1Z24tdG9vbHRpcFwi +IGRhdGEtdG9nZ2xlPVwiZXB0dWduLXRvb2x0aXBcIiBkYXRhLXJlc2l6ZT1cImVwdHVnbi10b29s +dGlwXCIgc3R5bGU9XCJib3gtc2l6aW5nOiBpbmhlcml0OyB0cmFuc2l0aW9uLWRlbGF5OiAwczsg +dHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW4tb3V0OyB0cmFuc2l0aW9uLWR1cmF0 +aW9uOiAwLjJzOyB0cmFuc2l0aW9uLXByb3BlcnR5OiBub25lOyBjdXJzb3I6IGhlbHA7IHRleHQt +ZGVjb3JhdGlvbi10aGlja25lc3M6IDJweDsgcG9zaXRpb246IHJlbGF0aXZlOyB0ZXh0LXVuZGVy +bGluZS1wb3NpdGlvbjogdW5kZXIgIWltcG9ydGFudDtcIj5BUlM8L2FiYnI+PC9jaXRlPjxjaXRl +IHN0eWxlPVwiYm94LXNpemluZzogaW5oZXJpdDsgdHJhbnNpdGlvbi1kZWxheTogMHM7IHRyYW5z +aXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluLW91dDsgdHJhbnNpdGlvbi1kdXJhdGlvbjog +MC4yczsgdHJhbnNpdGlvbi1wcm9wZXJ0eTogbm9uZTsgdGV4dC11bmRlcmxpbmUtcG9zaXRpb246 +IHVuZGVyICFpbXBvcnRhbnQ7XCI+Jm5ic3A7PC9jaXRlPjxjaXRlIHN0eWxlPVwiYm94LXNpemlu +ZzogaW5oZXJpdDsgdHJhbnNpdGlvbi1kZWxheTogMHM7IHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0 +aW9uOiBlYXNlLWluLW91dDsgdHJhbnNpdGlvbi1kdXJhdGlvbjogMC4yczsgdHJhbnNpdGlvbi1w +cm9wZXJ0eTogbm9uZTsgdGV4dC11bmRlcmxpbmUtcG9zaXRpb246IHVuZGVyICFpbXBvcnRhbnQ7 +XCI+PGFiYnIgdGl0bGU9XCJcIiBkYXRhLXRvb2x0aXA9XCJ2ODFtbGMtdG9vbHRpcFwiIGFyaWEt +aGFzcG9wdXA9XCJ0cnVlXCIgYXJpYS1kZXNjcmliZWRieT1cIjdkZ3lkZy10b29sdGlwXCIgZGF0 +YS15ZXRpLWJveD1cIjdkZ3lkZy10b29sdGlwXCIgZGF0YS10b2dnbGU9XCI3ZGd5ZGctdG9vbHRp +cFwiIGRhdGEtcmVzaXplPVwiN2RneWRnLXRvb2x0aXBcIiBzdHlsZT1cImJveC1zaXppbmc6IGlu +aGVyaXQ7IHRyYW5zaXRpb24tZGVsYXk6IDBzOyB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjog +ZWFzZS1pbi1vdXQ7IHRyYW5zaXRpb24tZHVyYXRpb246IDAuMnM7IHRyYW5zaXRpb24tcHJvcGVy +dHk6IG5vbmU7IGN1cnNvcjogaGVscDsgdGV4dC1kZWNvcmF0aW9uLXRoaWNrbmVzczogMnB4OyBw +b3NpdGlvbjogcmVsYXRpdmU7IHRleHQtdW5kZXJsaW5lLXBvc2l0aW9uOiB1bmRlciAhaW1wb3J0 +YW50O1wiPk5yLjwvYWJicj48L2NpdGU+PGNpdGUgc3R5bGU9XCJib3gtc2l6aW5nOiBpbmhlcml0 +OyB0cmFuc2l0aW9uLWRlbGF5OiAwczsgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2Ut +aW4tb3V0OyB0cmFuc2l0aW9uLWR1cmF0aW9uOiAwLjJzOyB0cmFuc2l0aW9uLXByb3BlcnR5OiBu +b25lOyB0ZXh0LXVuZGVybGluZS1wb3NpdGlvbjogdW5kZXIgIWltcG9ydGFudDtcIj4mbmJzcDsy +NS8yMDIxLCBJSS4mbmJzcDs8L2NpdGU+PGNpdGUgc3R5bGU9XCJib3gtc2l6aW5nOiBpbmhlcml0 +OyB0cmFuc2l0aW9uLWRlbGF5OiAwczsgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2Ut +aW4tb3V0OyB0cmFuc2l0aW9uLWR1cmF0aW9uOiAwLjJzOyB0cmFuc2l0aW9uLXByb3BlcnR5OiBu +b25lOyB0ZXh0LXVuZGVybGluZS1wb3NpdGlvbjogdW5kZXIgIWltcG9ydGFudDtcIj48YWJiciB0 +aXRsZT1cIlwiIGRhdGEtdG9vbHRpcD1cIjI0a3loZy10b29sdGlwXCIgYXJpYS1oYXNwb3B1cD1c +InRydWVcIiBhcmlhLWRlc2NyaWJlZGJ5PVwidHNpYmZuLXRvb2x0aXBcIiBkYXRhLXlldGktYm94 +PVwidHNpYmZuLXRvb2x0aXBcIiBkYXRhLXRvZ2dsZT1cInRzaWJmbi10b29sdGlwXCIgZGF0YS1y +ZXNpemU9XCJ0c2liZm4tdG9vbHRpcFwiIHN0eWxlPVwiYm94LXNpemluZzogaW5oZXJpdDsgdHJh +bnNpdGlvbi1kZWxheTogMHM7IHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluLW91 +dDsgdHJhbnNpdGlvbi1kdXJhdGlvbjogMC4yczsgdHJhbnNpdGlvbi1wcm9wZXJ0eTogbm9uZTsg +Y3Vyc29yOiBoZWxwOyB0ZXh0LWRlY29yYXRpb24tdGhpY2tuZXNzOiAycHg7IHBvc2l0aW9uOiBy +ZWxhdGl2ZTsgdGV4dC11bmRlcmxpbmUtcG9zaXRpb246IHVuZGVyICFpbXBvcnRhbnQ7XCI+bGl0 +LjwvYWJicj48L2NpdGU+PGNpdGUgc3R5bGU9XCJib3gtc2l6aW5nOiBpbmhlcml0OyB0cmFuc2l0 +aW9uLWRlbGF5OiAwczsgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW4tb3V0OyB0 +cmFuc2l0aW9uLWR1cmF0aW9uOiAwLjJzOyB0cmFuc2l0aW9uLXByb3BlcnR5OiBub25lOyB0ZXh0 +LXVuZGVybGluZS1wb3NpdGlvbjogdW5kZXIgIWltcG9ydGFudDtcIj4mbmJzcDtmIHp1IGIuPC9j +aXRlPjwvcD48cCBzdHlsZT1cImJveC1zaXppbmc6IGluaGVyaXQ7IHRyYW5zaXRpb24tZGVsYXk6 +IDBzOyB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbi1vdXQ7IHRyYW5zaXRpb24t +ZHVyYXRpb246IDAuMnM7IHRyYW5zaXRpb24tcHJvcGVydHk6IG5vbmU7IHRleHQtcmVuZGVyaW5n +OiBvcHRpbWl6ZWxlZ2liaWxpdHk7IGNhcmV0LWNvbG9yOiByZ2IoMCwgMCwgMCk7IHRleHQtZGVj +b3JhdGlvbi10aGlja25lc3M6IGF1dG87IHRleHQtZGVjb3JhdGlvbi1zdHlsZTogc29saWQ7IHRl +eHQtdW5kZXJsaW5lLXBvc2l0aW9uOiB1bmRlciAhaW1wb3J0YW50O1wiPkltIFBsYW51bmdzcHJv +emVzcyBzaW5kIG5hY2ggZGVyIHZvcmFuZ2VzdGVsbHRlbiBEZWZpbml0aW9uIFNpY2hlcmhlaXRz +YXVkaXRzIGVpbiBUZWlsIGRlcyBRdWFsaXTDpHRzbWFuYWdlbWVudHMuIER1cmNoIGRpZSB1bmFi +aMOkbmdpZ2Ugw5xiZXJwcsO8ZnVuZyBiZXN0ZWh0IGRpZSBmcsO8aHplaXRpZ2UgTcO2Z2xpY2hr +ZWl0LCBEZWZpeml0ZSBpbiBkZXIgVmVya2VocnNzaWNoZXJoZWl0IHp1IGVya2VubmVuLCB6dSBi +ZXNlaXRpZ2VuIG9kZXIgenUga29tcGVuc2llcmVuLCBkaWUgc29uc3QgaW4gZGVyIHNww6R0ZXJl +biBVbXNldHp1bmcgenUgVW5mw6RsbGVuIGbDvGhyZW4ga8O2bm50ZW4uIERhIGVzIHNpY2ggdW0g +ZWluIGZyw7xoIHdpcmtlbmRlcyBWZXJmYWhyZW4gaGFuZGVsdCB1bmQgZWluZSBmcmVpd2lsbGln +ZSBBbndlbmR1bmcgZGllc2VzIFZlcmZhaHJlbnMgbmljaHQgdW50ZXJzYWd0IGlzdCwga8O2bm5l +biBTaWNoZXJoZWl0c2F1ZGl0cyBhdWNoIGZlc3QgaW4gZGVtIFBsYW51bmdzLSB1bmQgQmF1cHJv +emVzcyBzw6RtdGxpY2hlciBTdHJhw59lbmtsYXNzaWZpemllcnVuZ2VuIHZvcmdlc2VoZW4gd2Vy +ZGVuLjwvcD48cCBzdHlsZT1cImJveC1zaXppbmc6IGluaGVyaXQ7IHRyYW5zaXRpb24tZGVsYXk6 +IDBzOyB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbi1vdXQ7IHRyYW5zaXRpb24t +ZHVyYXRpb246IDAuMnM7IHRyYW5zaXRpb24tcHJvcGVydHk6IG5vbmU7IHRleHQtcmVuZGVyaW5n +OiBvcHRpbWl6ZWxlZ2liaWxpdHk7IGNhcmV0LWNvbG9yOiByZ2IoMCwgMCwgMCk7IHRleHQtZGVj +b3JhdGlvbi10aGlja25lc3M6IGF1dG87IHRleHQtZGVjb3JhdGlvbi1zdHlsZTogc29saWQ7IHRl +eHQtdW5kZXJsaW5lLXBvc2l0aW9uOiB1bmRlciAhaW1wb3J0YW50O1wiPkRhcyBTaWNoZXJoZWl0 +c2F1ZGl0IGltIEJlc3RhbmQgZGllbnQgZGF6dSwgc2ljaGVyaGVpdHNyZWxldmFudGUgRGVmaXpp +dGUgaW4gZGVyIEluZnJhc3RydWt0dXIgZWluZXIgVmVya2VocnNhbmxhZ2UgenUgZXJrZW5uZW4g +dW5kIGRhbWl0IHZlcmJ1bmRlbiBkaWUgZXJmb3JkZXJsaWNoZW4gTWHDn25haG1lbiB6dXIgVmVy +bWVpZHVuZyB2b24gVW5mw6RsbGVuJm5ic3A7PGFiYnIgdGl0bGU9XCJcIiBkYXRhLXRvb2x0aXA9 +XCIzd3E2azctdG9vbHRpcFwiIGFyaWEtaGFzcG9wdXA9XCJ0cnVlXCIgYXJpYS1kZXNjcmliZWRi +eT1cImUzOG5rNC10b29sdGlwXCIgZGF0YS15ZXRpLWJveD1cImUzOG5rNC10b29sdGlwXCIgZGF0 +YS10b2dnbGU9XCJlMzhuazQtdG9vbHRpcFwiIGRhdGEtcmVzaXplPVwiZTM4bms0LXRvb2x0aXBc +IiBzdHlsZT1cImJveC1zaXppbmc6IGluaGVyaXQ7IHRyYW5zaXRpb24tZGVsYXk6IDBzOyB0cmFu +c2l0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbi1vdXQ7IHRyYW5zaXRpb24tZHVyYXRpb246 +IDAuMnM7IHRyYW5zaXRpb24tcHJvcGVydHk6IG5vbmU7IGN1cnNvcjogaGVscDsgdGV4dC1kZWNv +cmF0aW9uLXRoaWNrbmVzczogMnB4OyBwb3NpdGlvbjogcmVsYXRpdmU7IHRleHQtdW5kZXJsaW5l +LXBvc2l0aW9uOiB1bmRlciAhaW1wb3J0YW50O1wiPmJ6dy48L2FiYnI+Jm5ic3A7enVyIE1pbmRl +cnVuZyB2b24gVW5mYWxsZm9sZ2VuIGVpbnp1bGVpdGVuLjwvcD48aDMgaWQ9XCJ2dC1zcHJnLTZc +IiBzdHlsZT1cImJveC1zaXppbmc6IGluaGVyaXQ7IHRyYW5zaXRpb24tZGVsYXk6IDBzOyB0cmFu +c2l0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbi1vdXQ7IHRyYW5zaXRpb24tZHVyYXRpb246 +IDAuMnM7IHRyYW5zaXRpb24tcHJvcGVydHk6IG5vbmU7IHRleHQtcmVuZGVyaW5nOiBvcHRpbWl6 +ZWxlZ2liaWxpdHk7IGNsZWFyOiBib3RoOyBzY3JvbGwtbWFyZ2luLXRvcDogMjAwcHg7IHBvc2l0 +aW9uOiByZWxhdGl2ZTsgY2FyZXQtY29sb3I6IHJnYigwLCAwLCAwKTsgdGV4dC1kZWNvcmF0aW9u +LXRoaWNrbmVzczogYXV0bzsgdGV4dC1kZWNvcmF0aW9uLXN0eWxlOiBzb2xpZDsgdGV4dC11bmRl +cmxpbmUtcG9zaXRpb246IHVuZGVyICFpbXBvcnRhbnQ7XCI+TmV0emFuYWx5c2VuPC9oMz48cCBz +dHlsZT1cImJveC1zaXppbmc6IGluaGVyaXQ7IHRyYW5zaXRpb24tZGVsYXk6IDBzOyB0cmFuc2l0 +aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbi1vdXQ7IHRyYW5zaXRpb24tZHVyYXRpb246IDAu +MnM7IHRyYW5zaXRpb24tcHJvcGVydHk6IG5vbmU7IHRleHQtcmVuZGVyaW5nOiBvcHRpbWl6ZWxl +Z2liaWxpdHk7IGNhcmV0LWNvbG9yOiByZ2IoMCwgMCwgMCk7IHRleHQtZGVjb3JhdGlvbi10aGlj +a25lc3M6IGF1dG87IHRleHQtZGVjb3JhdGlvbi1zdHlsZTogc29saWQ7IHRleHQtdW5kZXJsaW5l +LXBvc2l0aW9uOiB1bmRlciAhaW1wb3J0YW50O1wiPkRpZSZuYnNwOzxhIGhyZWY9XCJodHRwczov +L3d3dy5tb2JpbGl0YWV0c2ZvcnVtLmJ1bmQuZGUvREUvVGhlbWVuL05ld3MtUkFEYXIvX3RleHRl +L1ZlcmtlaHJzc2ljaGVyaGVpdHNhcmJlaXRfTmV0emFuYWx5c2VuXzIwMjUtMDkuaHRtbD9ubj00 +OTQ0NTZcIiB0aXRsZT1cIk5ldHphbmFseXNlblwiIHN0eWxlPVwiYm94LXNpemluZzogaW5oZXJp +dDsgdHJhbnNpdGlvbi1kZWxheTogMHM7IHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNl +LWluLW91dDsgdHJhbnNpdGlvbi1kdXJhdGlvbjogMC4yczsgdHJhbnNpdGlvbi1wcm9wZXJ0eTog +bm9uZTsgY3Vyc29yOiBwb2ludGVyOyB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyBsZXR0ZXIt +c3BhY2luZzogMnB4OyBmb250LXdlaWdodDogNzAwOyBwb3NpdGlvbjogcmVsYXRpdmU7IHRleHQt +dW5kZXJsaW5lLXBvc2l0aW9uOiB1bmRlciAhaW1wb3J0YW50O1wiPk5FVFpBTkFMWVNFPC9hPiZu +YnNwO2RpZW50IGRlciBJZGVudGlmaXppZXJ1bmcgdm9uIFN0cmHDn2VuYWJzY2huaXR0ZW4gbWl0 +IGVpbmVtIMO8YmVyZHVyY2hzY2huaXR0bGljaGVtIFVuZmFsbGdlc2NoZWhlbi4gRHVyY2ggZGll +c2VzIFZlcmZhaHJlbiBsYXNzZW4gc2ljaCBTdHJhw59lbmFic2Nobml0dGUgbWl0IGVpbmVtIGF1 +ZmbDpGxsaWdlbiBVbmZhbGxnZXNjaGVoZW4gZXJrZW5uZW4gdW5kIE1hw59uYWhtZW4genVyIFZl +cmJlc3NlcnVuZyBkZXIgVmVya2VocnNzaWNoZXJoZWl0IHByaW9yaXNpZXJlbi48L3A+PHAgc3R5 +bGU9XCJib3gtc2l6aW5nOiBpbmhlcml0OyB0cmFuc2l0aW9uLWRlbGF5OiAwczsgdHJhbnNpdGlv +bi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW4tb3V0OyB0cmFuc2l0aW9uLWR1cmF0aW9uOiAwLjJz +OyB0cmFuc2l0aW9uLXByb3BlcnR5OiBub25lOyB0ZXh0LXJlbmRlcmluZzogb3B0aW1pemVsZWdp +YmlsaXR5OyBjYXJldC1jb2xvcjogcmdiKDAsIDAsIDApOyB0ZXh0LWRlY29yYXRpb24tdGhpY2tu +ZXNzOiBhdXRvOyB0ZXh0LWRlY29yYXRpb24tc3R5bGU6IHNvbGlkOyB0ZXh0LXVuZGVybGluZS1w +b3NpdGlvbjogdW5kZXIgIWltcG9ydGFudDtcIj5EaWUgRHVyY2hmw7xocnVuZyB2b24gTmV0emFu +YWx5c2VuIGJhc2llcnQgYXVmIGRlbiDigJ5FbXBmZWhsdW5nZW4gZsO8ciBkaWUgU2ljaGVyaGVp +dHNhbmFseXNlIHZvbiBTdHJhw59lbm5ldHplbuKAnCAoPGFiYnIgdGl0bGU9XCJcIiBkYXRhLXRv +b2x0aXA9XCI1c3hwZngtdG9vbHRpcFwiIGFyaWEtaGFzcG9wdXA9XCJ0cnVlXCIgYXJpYS1kZXNj +cmliZWRieT1cIjgweXhybS10b29sdGlwXCIgZGF0YS15ZXRpLWJveD1cIjgweXhybS10b29sdGlw +XCIgZGF0YS10b2dnbGU9XCI4MHl4cm0tdG9vbHRpcFwiIGRhdGEtcmVzaXplPVwiODB5eHJtLXRv +b2x0aXBcIiBzdHlsZT1cImJveC1zaXppbmc6IGluaGVyaXQ7IHRyYW5zaXRpb24tZGVsYXk6IDBz +OyB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbi1vdXQ7IHRyYW5zaXRpb24tZHVy +YXRpb246IDAuMnM7IHRyYW5zaXRpb24tcHJvcGVydHk6IG5vbmU7IGN1cnNvcjogaGVscDsgdGV4 +dC1kZWNvcmF0aW9uLXRoaWNrbmVzczogMnB4OyBwb3NpdGlvbjogcmVsYXRpdmU7IHRleHQtdW5k +ZXJsaW5lLXBvc2l0aW9uOiB1bmRlciAhaW1wb3J0YW50O1wiPkVTTjwvYWJicj4pIGF1ZiBkZXIg +R3J1bmRsYWdlIHZvbiBVbmZhbGxkYXRlbi4gS8O8bmZ0aWcgd2lyZCBhYmVyIGF1Y2ggZWluZSBC +ZXdlcnR1bmcgZGVyIFZlcmtlaHJzc2ljaGVyaGVpdCDigJMgdW5hYmjDpG5naWcgdm9tIFVuZmFs +bGdlc2NoZWhlbiDigJMgYWxsZWluIMO8YmVyIERlZml6aXRlIGluIGRlciBHZXN0YWx0dW5nIHZv +biBWZXJrZWhyc2FubGFnZW4gbcO2Z2xpY2ggc2VpbiAoPGFiYnIgdGl0bGU9XCJcIiBkYXRhLXRv +b2x0aXA9XCI4OWVmZ3YtdG9vbHRpcFwiIGFyaWEtaGFzcG9wdXA9XCJ0cnVlXCIgYXJpYS1kZXNj +cmliZWRieT1cInZ3ODkybS10b29sdGlwXCIgZGF0YS15ZXRpLWJveD1cInZ3ODkybS10b29sdGlw +XCIgZGF0YS10b2dnbGU9XCJ2dzg5Mm0tdG9vbHRpcFwiIGRhdGEtcmVzaXplPVwidnc4OTJtLXRv +b2x0aXBcIiBzdHlsZT1cImJveC1zaXppbmc6IGluaGVyaXQ7IHRyYW5zaXRpb24tZGVsYXk6IDBz +OyB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbi1vdXQ7IHRyYW5zaXRpb24tZHVy +YXRpb246IDAuMnM7IHRyYW5zaXRpb24tcHJvcGVydHk6IG5vbmU7IGN1cnNvcjogaGVscDsgdGV4 +dC1kZWNvcmF0aW9uLXRoaWNrbmVzczogMnB4OyBwb3NpdGlvbjogcmVsYXRpdmU7IHRleHQtdW5k +ZXJsaW5lLXBvc2l0aW9uOiB1bmRlciAhaW1wb3J0YW50O1wiPnZnbC48L2FiYnI+Jm5ic3A7PGEg +aHJlZj1cImh0dHBzOi8vYmFzdC5vcHVzLmhiei1ucncuZGUvZnJvbnRkb29yL2luZGV4L2luZGV4 +L2RvY0lkLzI5NjVcIiB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lciBub3JlZmVycmVy +XCIgdGl0bGU9XCJFeHRlcm5lciBMaW5rJm5ic3A7RGllIHZvcmxpZWdlbmRlIFVudGVyc3VjaHVu +ZyB0aGVtYXRpc2llcnQgZGllIEZvcnRzY2hyZWlidW5nIGRlcyAyMDAzIHZlcsO2ZmZlbnRsaWNo +dGVuIFJlZ2Vsd2Vya3Mg4oCeRW1wZmVobHVuZ2VuIGbDvHIgZGllIFNpY2hlcmhlaXRzYW5hbHlz +ZSB2b24gU3RyYcOfZW5uZXR6ZW4g4oCTIEVTTuKAnCwgbWl0IExpbmtzIHp1IHdlaXRlcmVuIERv +a3VtZW50ZW4uICjDlmZmbmV0Jm5ic3A7bmV1ZXMmbmJzcDtGZW5zdGVyKVwiIHN0eWxlPVwiYm94 +LXNpemluZzogaW5oZXJpdDsgdHJhbnNpdGlvbi1kZWxheTogMHM7IHRyYW5zaXRpb24tdGltaW5n +LWZ1bmN0aW9uOiBlYXNlLWluLW91dDsgdHJhbnNpdGlvbi1kdXJhdGlvbjogMC4yczsgdHJhbnNp +dGlvbi1wcm9wZXJ0eTogbm9uZTsgY3Vyc29yOiBwb2ludGVyOyB0ZXh0LXRyYW5zZm9ybTogdXBw +ZXJjYXNlOyBsZXR0ZXItc3BhY2luZzogMnB4OyBmb250LXdlaWdodDogNzAwOyBwb3NpdGlvbjog +cmVsYXRpdmU7IHRleHQtdW5kZXJsaW5lLXBvc2l0aW9uOiB1bmRlciAhaW1wb3J0YW50O1wiPkJB +U1QgMjAyNDwvYT4pLjwvcD48cCBzdHlsZT1cImJveC1zaXppbmc6IGluaGVyaXQ7IHRyYW5zaXRp +b24tZGVsYXk6IDBzOyB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbi1vdXQ7IHRy +YW5zaXRpb24tZHVyYXRpb246IDAuMnM7IHRyYW5zaXRpb24tcHJvcGVydHk6IG5vbmU7IHRleHQt +cmVuZGVyaW5nOiBvcHRpbWl6ZWxlZ2liaWxpdHk7IGNhcmV0LWNvbG9yOiByZ2IoMCwgMCwgMCk7 +IHRleHQtZGVjb3JhdGlvbi10aGlja25lc3M6IGF1dG87IHRleHQtZGVjb3JhdGlvbi1zdHlsZTog +c29saWQ7IHRleHQtdW5kZXJsaW5lLXBvc2l0aW9uOiB1bmRlciAhaW1wb3J0YW50O1wiPjxxIHN0 +eWxlPVwiYm94LXNpemluZzogaW5oZXJpdDsgdHJhbnNpdGlvbi1kZWxheTogMHM7IHRyYW5zaXRp +b24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluLW91dDsgdHJhbnNpdGlvbi1kdXJhdGlvbjogMC4y +czsgdHJhbnNpdGlvbi1wcm9wZXJ0eTogbm9uZTsgcXVvdGVzOiAmcXVvdDsmcXVvdDsgJnF1b3Q7 +JnF1b3Q7ICZxdW90OyZxdW90OyAmcXVvdDsmcXVvdDs7IGZvbnQtc3R5bGU6IGl0YWxpYzsgdGV4 +dC11bmRlcmxpbmUtcG9zaXRpb246IHVuZGVyICFpbXBvcnRhbnQ7XCI+4oCeRGFzIFZlcmZhaHJl +biBkZXIgbmV0endlaXRlbiBTdHJhw59lbnZlcmtlaHJzc2ljaGVyaGVpdHNiZXdlcnR1bmcgdHJp +dHQgYW4gU3RlbGxlIGRlcyB2b3JoZXJpZ2VuIFZlcmZhaHJlbnMgZGVyIFNpY2hlcmhlaXRzZWlu +c3R1ZnVuZyB1bmQgLW1hbmFnZW1lbnRzIFtzaWNdIGRlcyBpbiBCZXRyaWViIGJlZmluZGxpY2hl +biBTdHJhw59lbm5ldHplcy4gQW5oYW5kIGRlcyBWZXJmYWhyZW5zIGVyZm9sZ3QgZWluZSBTaWNo +ZXJoZWl0c2VpbnN0dWZ1bmcgZsO8ciBhbGxlIEFic2Nobml0dGUgZGVzIGJldHJhY2h0ZXRlbiBT +dHJhw59lbm5ldHplcyBpbiB2ZXJzY2hpZWRlbmUgUHJpb3JpdMOkdGVuLiBJbSBHZWdlbnNhdHog +enUgZGVyIGJpc2hlciBhbmdld2FuZHRlbiBTaWNoZXJoZWl0c2VpbnN0dWZ1bmcgd2lyZCBkaWUg +RWluc3R1ZnVuZyBuaWNodCBtZWhyIGF1c3NjaGxpZcOfbGljaCBhbmhhbmQgdm9uIFVuZmFsbGtl +bm5ncsO2w59lbiB2b3JnZW5vbW1lbiwgc29uZGVybiB6dWRlbSBhdWYgQmFzaXMgZWluZXIg4oCT +IGVudHdlZGVyIHZvciBPcnQgb2RlciBtaXQgZWxla3Ryb25pc2NoZW4gTWl0dGVsbiBkdXJjaGdl +ZsO8aHJ0ZW4g4oCTIHZpc3VlbGxlbiBVbnRlcnN1Y2h1bmcgZGVyIEluZnJhc3RydWt0dXJtZXJr +bWFsZSBkZXIgU3RyYcOfZS48L3E+PC9wPjxwIHN0eWxlPVwiYm94LXNpemluZzogaW5oZXJpdDsg +dHJhbnNpdGlvbi1kZWxheTogMHM7IHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWlu +LW91dDsgdHJhbnNpdGlvbi1kdXJhdGlvbjogMC4yczsgdHJhbnNpdGlvbi1wcm9wZXJ0eTogbm9u +ZTsgdGV4dC1yZW5kZXJpbmc6IG9wdGltaXplbGVnaWJpbGl0eTsgY2FyZXQtY29sb3I6IHJnYigw +LCAwLCAwKTsgdGV4dC1kZWNvcmF0aW9uLXRoaWNrbmVzczogYXV0bzsgdGV4dC1kZWNvcmF0aW9u +LXN0eWxlOiBzb2xpZDsgdGV4dC11bmRlcmxpbmUtcG9zaXRpb246IHVuZGVyICFpbXBvcnRhbnQ7 +XCI+PHEgc3R5bGU9XCJib3gtc2l6aW5nOiBpbmhlcml0OyB0cmFuc2l0aW9uLWRlbGF5OiAwczsg +dHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW4tb3V0OyB0cmFuc2l0aW9uLWR1cmF0 +aW9uOiAwLjJzOyB0cmFuc2l0aW9uLXByb3BlcnR5OiBub25lOyBxdW90ZXM6ICZxdW90OyZxdW90 +OyAmcXVvdDsmcXVvdDsgJnF1b3Q7JnF1b3Q7ICZxdW90OyZxdW90OzsgZm9udC1zdHlsZTogaXRh +bGljOyB0ZXh0LXVuZGVybGluZS1wb3NpdGlvbjogdW5kZXIgIWltcG9ydGFudDtcIj5adXIgYnVu +ZGVzZWluaGVpdGxpY2hlbiBBbndlbmR1bmcgZW50d2lja2VsdCBkaWUgQnVuZGVzYW5zdGFsdCBm +w7xyIFN0cmHDn2Vud2VzZW4gKDxhYmJyIHRpdGxlPVwiXCIgZGF0YS10b29sdGlwPVwiMHlpdnRu +LXRvb2x0aXBcIiBhcmlhLWhhc3BvcHVwPVwidHJ1ZVwiIGFyaWEtZGVzY3JpYmVkYnk9XCJvOW56 +czQtdG9vbHRpcFwiIGRhdGEteWV0aS1ib3g9XCJvOW56czQtdG9vbHRpcFwiIGRhdGEtdG9nZ2xl +PVwibzluenM0LXRvb2x0aXBcIiBkYXRhLXJlc2l6ZT1cIm85bnpzNC10b29sdGlwXCIgc3R5bGU9 +XCJib3gtc2l6aW5nOiBpbmhlcml0OyB0cmFuc2l0aW9uLWRlbGF5OiAwczsgdHJhbnNpdGlvbi10 +aW1pbmctZnVuY3Rpb246IGVhc2UtaW4tb3V0OyB0cmFuc2l0aW9uLWR1cmF0aW9uOiAwLjJzOyB0 +cmFuc2l0aW9uLXByb3BlcnR5OiBub25lOyBjdXJzb3I6IGhlbHA7IHRleHQtZGVjb3JhdGlvbi10 +aGlja25lc3M6IDJweDsgcG9zaXRpb246IHJlbGF0aXZlOyB0ZXh0LXVuZGVybGluZS1wb3NpdGlv +bjogdW5kZXIgIWltcG9ydGFudDtcIj5CQVN0PC9hYmJyPikgZGVyemVpdCBlaW4gVmVyZmFocmVu +IGbDvHIgZWluZSBtaXQgZWxla3Ryb25pc2NoZW4gTWl0dGVsbiBkdXJjaGdlZsO8aHJ0ZSBVbnRl +cnN1Y2h1bmcgZsO8ciBkaWUgQnVuZGVzZmVybnN0cmHDn2VuIHVuZCB3aXJkIG5hY2ggQWJzY2hs +dXNzIGVyc3RtYWxpZyAyMDI0IHVuZCBkYW5uIGFsbGUgZsO8bmYgSmFocmUgQmV3ZXJ0dW5nZW4g +ZsO8ciBkYXMgQnVuZGVzZmVybnN0cmHDn2VubmV0eiBkdXJjaGbDvGhyZW4gdW5kIElobmVuIGRp +ZSBFcmdlYm5pc3NlIHp1ciB3ZWl0ZXJlbiBBbmFseXNlICg8YWJiciB0aXRsZT1cIlwiIGRhdGEt +dG9vbHRpcD1cIm83eDNmbS10b29sdGlwXCIgYXJpYS1oYXNwb3B1cD1cInRydWVcIiBhcmlhLWRl +c2NyaWJlZGJ5PVwidGd5ZXYyLXRvb2x0aXBcIiBkYXRhLXlldGktYm94PVwidGd5ZXYyLXRvb2x0 +aXBcIiBkYXRhLXRvZ2dsZT1cInRneWV2Mi10b29sdGlwXCIgZGF0YS1yZXNpemU9XCJ0Z3lldjIt +dG9vbHRpcFwiIHN0eWxlPVwiYm94LXNpemluZzogaW5oZXJpdDsgdHJhbnNpdGlvbi1kZWxheTog +MHM7IHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluLW91dDsgdHJhbnNpdGlvbi1k +dXJhdGlvbjogMC4yczsgdHJhbnNpdGlvbi1wcm9wZXJ0eTogbm9uZTsgY3Vyc29yOiBoZWxwOyB0 +ZXh0LWRlY29yYXRpb24tdGhpY2tuZXNzOiAycHg7IHBvc2l0aW9uOiByZWxhdGl2ZTsgdGV4dC11 +bmRlcmxpbmUtcG9zaXRpb246IHVuZGVyICFpbXBvcnRhbnQ7XCI+dmdsLjwvYWJicj4mbmJzcDs8 +YWJiciB0aXRsZT1cIlwiIGRhdGEtdG9vbHRpcD1cIjRldDFhYS10b29sdGlwXCIgYXJpYS1oYXNw +b3B1cD1cInRydWVcIiBhcmlhLWRlc2NyaWJlZGJ5PVwienI1eDN6LXRvb2x0aXBcIiBkYXRhLXll +dGktYm94PVwienI1eDN6LXRvb2x0aXBcIiBkYXRhLXRvZ2dsZT1cInpyNXgzei10b29sdGlwXCIg +ZGF0YS1yZXNpemU9XCJ6cjV4M3otdG9vbHRpcFwiIHN0eWxlPVwiYm94LXNpemluZzogaW5oZXJp +dDsgdHJhbnNpdGlvbi1kZWxheTogMHM7IHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNl +LWluLW91dDsgdHJhbnNpdGlvbi1kdXJhdGlvbjogMC4yczsgdHJhbnNpdGlvbi1wcm9wZXJ0eTog +bm9uZTsgY3Vyc29yOiBoZWxwOyB0ZXh0LWRlY29yYXRpb24tdGhpY2tuZXNzOiAycHg7IHBvc2l0 +aW9uOiByZWxhdGl2ZTsgdGV4dC11bmRlcmxpbmUtcG9zaXRpb246IHVuZGVyICFpbXBvcnRhbnQ7 +XCI+QXJ0LjwvYWJicj4mbmJzcDs2YSkgdW5kIElkZW50aWZpemllcnVuZyBtw7ZnbGljaGVyIFZl +cmJlc3NlcnVuZ3NtYcOfbmFobWVuIHp1ciBWZXJmw7xndW5nIHN0ZWxsZW4u4oCcPC9xPjxiciBz +dHlsZT1cImJveC1zaXppbmc6IGluaGVyaXQ7IHRleHQtdW5kZXJsaW5lLXBvc2l0aW9uOiB1bmRl +ciAhaW1wb3J0YW50OyB0cmFuc2l0aW9uLWRlbGF5OiAwczsgdHJhbnNpdGlvbi10aW1pbmctZnVu +Y3Rpb246IGVhc2UtaW4tb3V0OyB0cmFuc2l0aW9uLWR1cmF0aW9uOiAwLjJzOyB0cmFuc2l0aW9u +LXByb3BlcnR5OiBub25lO1wiPjxjaXRlIHN0eWxlPVwiYm94LXNpemluZzogaW5oZXJpdDsgdHJh +bnNpdGlvbi1kZWxheTogMHM7IHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluLW91 +dDsgdHJhbnNpdGlvbi1kdXJhdGlvbjogMC4yczsgdHJhbnNpdGlvbi1wcm9wZXJ0eTogbm9uZTsg +dGV4dC11bmRlcmxpbmUtcG9zaXRpb246IHVuZGVyICFpbXBvcnRhbnQ7XCI+PGFiYnIgdGl0bGU9 +XCJcIiBkYXRhLXRvb2x0aXA9XCJ0Y28ycDQtdG9vbHRpcFwiIGFyaWEtaGFzcG9wdXA9XCJ0cnVl +XCIgYXJpYS1kZXNjcmliZWRieT1cImlsZncxeS10b29sdGlwXCIgZGF0YS15ZXRpLWJveD1cImls +ZncxeS10b29sdGlwXCIgZGF0YS10b2dnbGU9XCJpbGZ3MXktdG9vbHRpcFwiIGRhdGEtcmVzaXpl +PVwiaWxmdzF5LXRvb2x0aXBcIiBzdHlsZT1cImJveC1zaXppbmc6IGluaGVyaXQ7IHRyYW5zaXRp +b24tZGVsYXk6IDBzOyB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbi1vdXQ7IHRy +YW5zaXRpb24tZHVyYXRpb246IDAuMnM7IHRyYW5zaXRpb24tcHJvcGVydHk6IG5vbmU7IGN1cnNv +cjogaGVscDsgdGV4dC1kZWNvcmF0aW9uLXRoaWNrbmVzczogMnB4OyBwb3NpdGlvbjogcmVsYXRp +dmU7IHRleHQtdW5kZXJsaW5lLXBvc2l0aW9uOiB1bmRlciAhaW1wb3J0YW50O1wiPkFSUzwvYWJi +cj48L2NpdGU+PGNpdGUgc3R5bGU9XCJib3gtc2l6aW5nOiBpbmhlcml0OyB0cmFuc2l0aW9uLWRl +bGF5OiAwczsgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW4tb3V0OyB0cmFuc2l0 +aW9uLWR1cmF0aW9uOiAwLjJzOyB0cmFuc2l0aW9uLXByb3BlcnR5OiBub25lOyB0ZXh0LXVuZGVy +bGluZS1wb3NpdGlvbjogdW5kZXIgIWltcG9ydGFudDtcIj4mbmJzcDs8L2NpdGU+PGNpdGUgc3R5 +bGU9XCJib3gtc2l6aW5nOiBpbmhlcml0OyB0cmFuc2l0aW9uLWRlbGF5OiAwczsgdHJhbnNpdGlv +bi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW4tb3V0OyB0cmFuc2l0aW9uLWR1cmF0aW9uOiAwLjJz +OyB0cmFuc2l0aW9uLXByb3BlcnR5OiBub25lOyB0ZXh0LXVuZGVybGluZS1wb3NpdGlvbjogdW5k +ZXIgIWltcG9ydGFudDtcIj48YWJiciB0aXRsZT1cIlwiIGRhdGEtdG9vbHRpcD1cImdvYThxNS10 +b29sdGlwXCIgYXJpYS1oYXNwb3B1cD1cInRydWVcIiBhcmlhLWRlc2NyaWJlZGJ5PVwicXgwdDRk +LXRvb2x0aXBcIiBkYXRhLXlldGktYm94PVwicXgwdDRkLXRvb2x0aXBcIiBkYXRhLXRvZ2dsZT1c +InF4MHQ0ZC10b29sdGlwXCIgZGF0YS1yZXNpemU9XCJxeDB0NGQtdG9vbHRpcFwiIHN0eWxlPVwi +Ym94LXNpemluZzogaW5oZXJpdDsgdHJhbnNpdGlvbi1kZWxheTogMHM7IHRyYW5zaXRpb24tdGlt +aW5nLWZ1bmN0aW9uOiBlYXNlLWluLW91dDsgdHJhbnNpdGlvbi1kdXJhdGlvbjogMC4yczsgdHJh +bnNpdGlvbi1wcm9wZXJ0eTogbm9uZTsgY3Vyc29yOiBoZWxwOyB0ZXh0LWRlY29yYXRpb24tdGhp +Y2tuZXNzOiAycHg7IHBvc2l0aW9uOiByZWxhdGl2ZTsgdGV4dC11bmRlcmxpbmUtcG9zaXRpb246 +IHVuZGVyICFpbXBvcnRhbnQ7XCI+TnIuPC9hYmJyPjwvY2l0ZT48Y2l0ZSBzdHlsZT1cImJveC1z +aXppbmc6IGluaGVyaXQ7IHRyYW5zaXRpb24tZGVsYXk6IDBzOyB0cmFuc2l0aW9uLXRpbWluZy1m +dW5jdGlvbjogZWFzZS1pbi1vdXQ7IHRyYW5zaXRpb24tZHVyYXRpb246IDAuMnM7IHRyYW5zaXRp +b24tcHJvcGVydHk6IG5vbmU7IHRleHQtdW5kZXJsaW5lLXBvc2l0aW9uOiB1bmRlciAhaW1wb3J0 +YW50O1wiPiZuYnNwOzI1LzIwMjEsIElJLiZuYnNwOzwvY2l0ZT48Y2l0ZSBzdHlsZT1cImJveC1z +aXppbmc6IGluaGVyaXQ7IHRyYW5zaXRpb24tZGVsYXk6IDBzOyB0cmFuc2l0aW9uLXRpbWluZy1m +dW5jdGlvbjogZWFzZS1pbi1vdXQ7IHRyYW5zaXRpb24tZHVyYXRpb246IDAuMnM7IHRyYW5zaXRp +b24tcHJvcGVydHk6IG5vbmU7IHRleHQtdW5kZXJsaW5lLXBvc2l0aW9uOiB1bmRlciAhaW1wb3J0 +YW50O1wiPjxhYmJyIHRpdGxlPVwiXCIgZGF0YS10b29sdGlwPVwiaTgxODBwLXRvb2x0aXBcIiBh +cmlhLWhhc3BvcHVwPVwidHJ1ZVwiIGFyaWEtZGVzY3JpYmVkYnk9XCIyem9qbXEtdG9vbHRpcFwi +IGRhdGEteWV0aS1ib3g9XCIyem9qbXEtdG9vbHRpcFwiIGRhdGEtdG9nZ2xlPVwiMnpvam1xLXRv +b2x0aXBcIiBkYXRhLXJlc2l6ZT1cIjJ6b2ptcS10b29sdGlwXCIgc3R5bGU9XCJib3gtc2l6aW5n +OiBpbmhlcml0OyB0cmFuc2l0aW9uLWRlbGF5OiAwczsgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rp +b246IGVhc2UtaW4tb3V0OyB0cmFuc2l0aW9uLWR1cmF0aW9uOiAwLjJzOyB0cmFuc2l0aW9uLXBy +b3BlcnR5OiBub25lOyBjdXJzb3I6IGhlbHA7IHRleHQtZGVjb3JhdGlvbi10aGlja25lc3M6IDJw +eDsgcG9zaXRpb246IHJlbGF0aXZlOyB0ZXh0LXVuZGVybGluZS1wb3NpdGlvbjogdW5kZXIgIWlt +cG9ydGFudDtcIj5saXQuPC9hYmJyPjwvY2l0ZT48Y2l0ZSBzdHlsZT1cImJveC1zaXppbmc6IGlu +aGVyaXQ7IHRyYW5zaXRpb24tZGVsYXk6IDBzOyB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjog +ZWFzZS1pbi1vdXQ7IHRyYW5zaXRpb24tZHVyYXRpb246IDAuMnM7IHRyYW5zaXRpb24tcHJvcGVy +dHk6IG5vbmU7IHRleHQtdW5kZXJsaW5lLXBvc2l0aW9uOiB1bmRlciAhaW1wb3J0YW50O1wiPiZu +YnNwO2YgenUgYy48L2NpdGU+PC9wPjxoMyBpZD1cInZ0LXNwcmctN1wiIHN0eWxlPVwiYm94LXNp +emluZzogaW5oZXJpdDsgdHJhbnNpdGlvbi1kZWxheTogMHM7IHRyYW5zaXRpb24tdGltaW5nLWZ1 +bmN0aW9uOiBlYXNlLWluLW91dDsgdHJhbnNpdGlvbi1kdXJhdGlvbjogMC4yczsgdHJhbnNpdGlv +bi1wcm9wZXJ0eTogbm9uZTsgdGV4dC1yZW5kZXJpbmc6IG9wdGltaXplbGVnaWJpbGl0eTsgY2xl +YXI6IGJvdGg7IHNjcm9sbC1tYXJnaW4tdG9wOiAyMDBweDsgcG9zaXRpb246IHJlbGF0aXZlOyBj +YXJldC1jb2xvcjogcmdiKDAsIDAsIDApOyB0ZXh0LWRlY29yYXRpb24tdGhpY2tuZXNzOiBhdXRv +OyB0ZXh0LWRlY29yYXRpb24tc3R5bGU6IHNvbGlkOyB0ZXh0LXVuZGVybGluZS1wb3NpdGlvbjog +dW5kZXIgIWltcG9ydGFudDtcIj5TY2h1bHdlZ3Bsw6RuZTwvaDM+PHAgc3R5bGU9XCJib3gtc2l6 +aW5nOiBpbmhlcml0OyB0cmFuc2l0aW9uLWRlbGF5OiAwczsgdHJhbnNpdGlvbi10aW1pbmctZnVu +Y3Rpb246IGVhc2UtaW4tb3V0OyB0cmFuc2l0aW9uLWR1cmF0aW9uOiAwLjJzOyB0cmFuc2l0aW9u +LXByb3BlcnR5OiBub25lOyB0ZXh0LXJlbmRlcmluZzogb3B0aW1pemVsZWdpYmlsaXR5OyBjYXJl +dC1jb2xvcjogcmdiKDAsIDAsIDApOyB0ZXh0LWRlY29yYXRpb24tdGhpY2tuZXNzOiBhdXRvOyB0 +ZXh0LWRlY29yYXRpb24tc3R5bGU6IHNvbGlkOyB0ZXh0LXVuZGVybGluZS1wb3NpdGlvbjogdW5k +ZXIgIWltcG9ydGFudDtcIj5MYXV0IGVpbmVyJm5ic3A7PGEgaHJlZj1cImh0dHBzOi8vd3d3LnVk +di5kZS91ZHYvdGhlbWVuL2dlc2Nod2luZGlna2VpdHN3YWhybmVobXVuZy1iZWkta2luZGVybi03 +NTM4NFwiIHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyIG5vcmVmZXJyZXJcIiB0aXRs +ZT1cIkV4dGVybmVyIExpbmsmbmJzcDtUZXh0IG1pdCBMaW5rIHp1bSBGb3JzY2h1bmdzYmVyaWNo +dC4gKMOWZmZuZXQmbmJzcDtuZXVlcyZuYnNwO0ZlbnN0ZXIpXCIgc3R5bGU9XCJib3gtc2l6aW5n +OiBpbmhlcml0OyB0cmFuc2l0aW9uLWRlbGF5OiAwczsgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rp +b246IGVhc2UtaW4tb3V0OyB0cmFuc2l0aW9uLWR1cmF0aW9uOiAwLjJzOyB0cmFuc2l0aW9uLXBy +b3BlcnR5OiBub25lOyBjdXJzb3I6IHBvaW50ZXI7IHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7 +IGxldHRlci1zcGFjaW5nOiAycHg7IGZvbnQtd2VpZ2h0OiA3MDA7IHBvc2l0aW9uOiByZWxhdGl2 +ZTsgdGV4dC11bmRlcmxpbmUtcG9zaXRpb246IHVuZGVyICFpbXBvcnRhbnQ7XCI+Rk9SU0NIVU5H +U0FSQkVJVDwvYT4mbmJzcDtkZXIgVW5mYWxsZm9yc2NodW5nIGRlciBWZXJzaWNoZXJlciAoPGFi +YnIgdGl0bGU9XCJcIiBkYXRhLXRvb2x0aXA9XCIwZ2pqa3otdG9vbHRpcFwiIGFyaWEtaGFzcG9w +dXA9XCJ0cnVlXCIgYXJpYS1kZXNjcmliZWRieT1cIjgwbDFtaC10b29sdGlwXCIgZGF0YS15ZXRp +LWJveD1cIjgwbDFtaC10b29sdGlwXCIgZGF0YS10b2dnbGU9XCI4MGwxbWgtdG9vbHRpcFwiIGRh +dGEtcmVzaXplPVwiODBsMW1oLXRvb2x0aXBcIiBzdHlsZT1cImJveC1zaXppbmc6IGluaGVyaXQ7 +IHRyYW5zaXRpb24tZGVsYXk6IDBzOyB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1p +bi1vdXQ7IHRyYW5zaXRpb24tZHVyYXRpb246IDAuMnM7IHRyYW5zaXRpb24tcHJvcGVydHk6IG5v +bmU7IGN1cnNvcjogaGVscDsgdGV4dC1kZWNvcmF0aW9uLXRoaWNrbmVzczogMnB4OyBwb3NpdGlv +bjogcmVsYXRpdmU7IHRleHQtdW5kZXJsaW5lLXBvc2l0aW9uOiB1bmRlciAhaW1wb3J0YW50O1wi +PlVEVjwvYWJicj4pIGxlcm5lbiBLaW5kZXIgZXJzdCBtaXQgenVuZWhtZW5kZW0gQWx0ZXIsIEVu +dGZlcm51bmdlbiB1bmQgR2VzY2h3aW5kaWdrZWl0ZW4gdm9uIEZhaHJ6ZXVnZW4gc293aWUga29t +cGxleGUgU2l0dWF0aW9uZW4gaW0gU3RyYcOfZW52ZXJrZWhyIGd1dCBlaW56dXNjaMOkdHplbi4g +RGFtaXQgc2llIGRlbiBXZWcgenVyIFNjaHVsZSBzaWNoZXIgYmV3w6RsdGlnZW4ga8O2bm5lbiwg +c2luZCBuZWJlbiBkZXIgTW9iaWxpdMOkdHNiaWxkdW5nIFNjaHVsd2VncGzDpG5lIGVpbiB3aWNo +dGlnZXIgQmVzdGFuZHRlaWwgc2ljaGVyZXIgU2NodWx3ZWdlLiBTY2h1bHdlZ3Bsw6RuZSB6ZWln +ZW4gS2luZGVybiB1bmQgRWx0ZXJuIHNpY2hlcmUgV2VnZSB6dXIgU2NodWxlIHVuZCBzZW5zaWJp +bGlzaWVyZW4gc2llIGbDvHIgcG90ZW56aWVsbGUgR2VmYWhyZW5zdGVsbGVuIGF1ZiBkZW0gU2No +dWx3ZWcuPC9wPjxmaWd1cmUgc3R5bGU9XCJib3gtc2l6aW5nOiBpbmhlcml0OyB0cmFuc2l0aW9u +LWRlbGF5OiAwczsgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW4tb3V0OyB0cmFu +c2l0aW9uLWR1cmF0aW9uOiAwLjJzOyB0cmFuc2l0aW9uLXByb3BlcnR5OiBub25lOyBvdmVyZmxv +dzogaGlkZGVuOyBjYXJldC1jb2xvcjogcmdiKDAsIDAsIDApOyB0ZXh0LWRlY29yYXRpb24tdGhp +Y2tuZXNzOiBhdXRvOyB0ZXh0LWRlY29yYXRpb24tc3R5bGU6IHNvbGlkOyB0ZXh0LXVuZGVybGlu +ZS1wb3NpdGlvbjogdW5kZXIgIWltcG9ydGFudDtcIj48c3BhbiBzdHlsZT1cImJveC1zaXppbmc6 +IGluaGVyaXQ7IHRyYW5zaXRpb24tZGVsYXk6IDBzOyB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlv +bjogZWFzZS1pbi1vdXQ7IHRyYW5zaXRpb24tZHVyYXRpb246IDAuMnM7IHRyYW5zaXRpb24tcHJv +cGVydHk6IG5vbmU7IGhlaWdodDogNDMzcHg7IHBvc2l0aW9uOiByZWxhdGl2ZTsgdGV4dC11bmRl +cmxpbmUtcG9zaXRpb246IHVuZGVyICFpbXBvcnRhbnQ7XCI+PGZpZ3VyZSBjbGFzcz1cImRyaXZl +LW1lZGlhIG1lZGlhLWxhcmdlXCIgZGF0YS1tZWRpYS1pZD1cIm0wMDNcIiBjb250ZW50ZWRpdGFi +bGU9XCJmYWxzZVwiPjxpbWcgc3JjPVwibWVkaWEvRDAwNS93ZWJfMTc3NDU3MTU3MjA5MF8yLmpw +ZWdcIiBhbHQ9XCJFaW4gS2luZCBzdGVodCBtaXQgZWluZW0gVHJldHJvbGxlciBhbSBSYW5kZSBl +aW5lcyBCw7xyZ2Vyc3RlaWdzIGFtIEZhaHJiYWhucmFuZCB1bmQgd2lsbCBlaW5lIFN0cmHDn2Ug +w7xiZXJxdWVyZW4sIGF1ZiBkZXIgZWluIEF1dG8gdW5kIGVpbiBCdXMgdW50ZXJ3ZWdzIHNpbmQu +XCI+PC9maWd1cmU+PGEgaHJlZj1cImh0dHBzOi8vd3d3Lm1vYmlsaXRhZXRzZm9ydW0uYnVuZC5k +ZS9TaGFyZWREb2NzL0JpbGRlci9ERS9UZXJtaW5lL0tpbmRfU2Nvb3Rlcl9TdHJhc3NlX0F1dG9z +X1ZlcmtlaHJzc2ljaGVyaGVpdC5qcGc/X19ibG9iPXBvc3RlciZhbXA7dj0yXCIgdGFyZ2V0PVwi +X2JsYW5rXCIgdGl0bGU9XCJLaW5kIG1pdCBTY29vdGVyIMO8YmVycXVlcnQgU3RyYcOfZSAoVmVy +Z3LDtsOfZXJ1bmcgw7ZmZm5ldCBzaWNoIGltIG5ldWVuIEZlbnN0ZXIpXCIgYXJpYS1sYWJlbD1c +IktpbmQgbWl0IFNjb290ZXIgw7xiZXJxdWVydCBTdHJhw59lIChWZXJncsO2w59lcnVuZyDDtmZm +bmV0IHNpY2ggaW0gbmV1ZW4gRmVuc3RlcilcIiBkYXRhLWxpZ2h0Ym94LWhyZWY9XCJTaGFyZWRE +b2NzL0JpbGRlci9ERS9UZXJtaW5lL0tpbmRfU2Nvb3Rlcl9TdHJhc3NlX0F1dG9zX1ZlcmtlaHJz +c2ljaGVyaGVpdC5odG1sP3ZpZXc9cmVuZGVyTGlnaHRib3hcIiBzdHlsZT1cImJveC1zaXppbmc6 +IGluaGVyaXQ7IHRyYW5zaXRpb246IDAuMnMgZWFzZS1pbi1vdXQ7IGN1cnNvcjogcG9pbnRlcjsg +cG9zaXRpb246IGFic29sdXRlOyBib3R0b206IDVweDsgcmlnaHQ6IDVweDsgaGVpZ2h0OiA0NHB4 +OyBmbG9hdDogcmlnaHQ7IHRyYW5zZm9ybTogc2NhbGUoMC43NSk7IHRleHQtdW5kZXJsaW5lLXBv +c2l0aW9uOiB1bmRlciAhaW1wb3J0YW50O1wiPjxmaWd1cmUgY2xhc3M9XCJkcml2ZS1tZWRpYSBt +ZWRpYS1sYXJnZVwiIGRhdGEtbWVkaWEtaWQ9XCJtMDA0XCIgY29udGVudGVkaXRhYmxlPVwiZmFs +c2VcIj48aW1nIHNyYz1cIm1lZGlhL0QwMDUvd2ViXzE3NzQ1NzE1NzIyNzJfMy5zdmdfeG1sXCIg +YWx0PVwiS2luZCBtaXQgU2Nvb3RlciDDvGJlcnF1ZXJ0IFN0cmHDn2VcIj48L2ZpZ3VyZT48L2E+ +PC9zcGFuPjxmaWdjYXB0aW9uIHN0eWxlPVwiYm94LXNpemluZzogaW5oZXJpdDsgdHJhbnNpdGlv +bi1kZWxheTogMHM7IHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluLW91dDsgdHJh +bnNpdGlvbi1kdXJhdGlvbjogMC4yczsgdHJhbnNpdGlvbi1wcm9wZXJ0eTogbm9uZTsgdGV4dC11 +bmRlcmxpbmUtcG9zaXRpb246IHVuZGVyICFpbXBvcnRhbnQ7XCI+PHNwYW4gc3R5bGU9XCJib3gt +c2l6aW5nOiBpbmhlcml0OyB0ZXh0LXVuZGVybGluZS1wb3NpdGlvbjogdW5kZXIgIWltcG9ydGFu +dDsgdHJhbnNpdGlvbi1kZWxheTogMHM7IHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNl +LWluLW91dDsgdHJhbnNpdGlvbi1kdXJhdGlvbjogMC4yczsgdHJhbnNpdGlvbi1wcm9wZXJ0eTog +bm9uZTtcIj5HZWZhaHJlbnpvbmU6IEVpbiBLaW5kIG1pdCBUcmV0cm9sbGVyIHdpbGwgZWluZSBT +dHJhw59lIMO8YmVycXVlcmVuPC9zcGFuPjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48aDMgaWQ9XCJ2 +dC1zcHJnLThcIiBzdHlsZT1cImJveC1zaXppbmc6IGluaGVyaXQ7IHRyYW5zaXRpb24tZGVsYXk6 +IDBzOyB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbi1vdXQ7IHRyYW5zaXRpb24t +ZHVyYXRpb246IDAuMnM7IHRyYW5zaXRpb24tcHJvcGVydHk6IG5vbmU7IHRleHQtcmVuZGVyaW5n +OiBvcHRpbWl6ZWxlZ2liaWxpdHk7IGNsZWFyOiBib3RoOyBzY3JvbGwtbWFyZ2luLXRvcDogMjAw +cHg7IHBvc2l0aW9uOiByZWxhdGl2ZTsgY2FyZXQtY29sb3I6IHJnYigwLCAwLCAwKTsgdGV4dC1k +ZWNvcmF0aW9uLXRoaWNrbmVzczogYXV0bzsgdGV4dC1kZWNvcmF0aW9uLXN0eWxlOiBzb2xpZDsg +dGV4dC11bmRlcmxpbmUtcG9zaXRpb246IHVuZGVyICFpbXBvcnRhbnQ7XCI+w5ZmZmVudGxpY2hr +ZWl0c2FyYmVpdDwvaDM+PHAgc3R5bGU9XCJib3gtc2l6aW5nOiBpbmhlcml0OyB0cmFuc2l0aW9u +LWRlbGF5OiAwczsgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW4tb3V0OyB0cmFu +c2l0aW9uLWR1cmF0aW9uOiAwLjJzOyB0cmFuc2l0aW9uLXByb3BlcnR5OiBub25lOyB0ZXh0LXJl +bmRlcmluZzogb3B0aW1pemVsZWdpYmlsaXR5OyBjYXJldC1jb2xvcjogcmdiKDAsIDAsIDApOyB0 +ZXh0LWRlY29yYXRpb24tdGhpY2tuZXNzOiBhdXRvOyB0ZXh0LWRlY29yYXRpb24tc3R5bGU6IHNv +bGlkOyB0ZXh0LXVuZGVybGluZS1wb3NpdGlvbjogdW5kZXIgIWltcG9ydGFudDtcIj7DlmZmZW50 +bGljaGtlaXRzYXJiZWl0IGthbm4gZGllIGtvbW11bmFsZSBWZXJrZWhyc3NpY2hlcmhlaXRzYXJi +ZWl0IGJlZ2xlaXRlbi4gUG9ydGFsZSB6dXIgQsO8cmdlcmJldGVpbGlndW5nIG9kZXIgS2FtcGFn +bmVuYXJiZWl0IGvDtm5uZW4gZGF6dSBiZWl0cmFnZW4sIFVuZsOkbGxlbiB2b3J6dWJldWdlbiB1 +bmQgZGFzIFNpY2hlcmhlaXRzZW1wZmluZGVuIGRlciBCZXbDtmxrZXJ1bmcgenUgYmVyw7xja3Np +Y2h0aWdlbi48L3A+PGgzIGlkPVwidnQtc3ByZy05XCIgc3R5bGU9XCJib3gtc2l6aW5nOiBpbmhl +cml0OyB0cmFuc2l0aW9uLWRlbGF5OiAwczsgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGVh +c2UtaW4tb3V0OyB0cmFuc2l0aW9uLWR1cmF0aW9uOiAwLjJzOyB0cmFuc2l0aW9uLXByb3BlcnR5 +OiBub25lOyB0ZXh0LXJlbmRlcmluZzogb3B0aW1pemVsZWdpYmlsaXR5OyBjbGVhcjogYm90aDsg +c2Nyb2xsLW1hcmdpbi10b3A6IDIwMHB4OyBwb3NpdGlvbjogcmVsYXRpdmU7IGNhcmV0LWNvbG9y +OiByZ2IoMCwgMCwgMCk7IHRleHQtZGVjb3JhdGlvbi10aGlja25lc3M6IGF1dG87IHRleHQtZGVj +b3JhdGlvbi1zdHlsZTogc29saWQ7IHRleHQtdW5kZXJsaW5lLXBvc2l0aW9uOiB1bmRlciAhaW1w +b3J0YW50O1wiPlZlcmtlaHJzc2ljaGVyaGVpdHNrb256ZXB0ZTwvaDM+PHAgc3R5bGU9XCJib3gt +c2l6aW5nOiBpbmhlcml0OyB0cmFuc2l0aW9uLWRlbGF5OiAwczsgdHJhbnNpdGlvbi10aW1pbmct +ZnVuY3Rpb246IGVhc2UtaW4tb3V0OyB0cmFuc2l0aW9uLWR1cmF0aW9uOiAwLjJzOyB0cmFuc2l0 +aW9uLXByb3BlcnR5OiBub25lOyB0ZXh0LXJlbmRlcmluZzogb3B0aW1pemVsZWdpYmlsaXR5OyBj +YXJldC1jb2xvcjogcmdiKDAsIDAsIDApOyB0ZXh0LWRlY29yYXRpb24tdGhpY2tuZXNzOiBhdXRv +OyB0ZXh0LWRlY29yYXRpb24tc3R5bGU6IHNvbGlkOyB0ZXh0LXVuZGVybGluZS1wb3NpdGlvbjog +dW5kZXIgIWltcG9ydGFudDtcIj5WZXJrZWhyc3NpY2hlcmhlaXRza29uemVwdGUmbmJzcDs8YWJi +ciB0aXRsZT1cIlwiIGRhdGEtdG9vbHRpcD1cInV5dnZ1ay10b29sdGlwXCIgYXJpYS1oYXNwb3B1 +cD1cInRydWVcIiBhcmlhLWRlc2NyaWJlZGJ5PVwidHBoMjZnLXRvb2x0aXBcIiBkYXRhLXlldGkt +Ym94PVwidHBoMjZnLXRvb2x0aXBcIiBkYXRhLXRvZ2dsZT1cInRwaDI2Zy10b29sdGlwXCIgZGF0 +YS1yZXNpemU9XCJ0cGgyNmctdG9vbHRpcFwiIHN0eWxlPVwiYm94LXNpemluZzogaW5oZXJpdDsg +dHJhbnNpdGlvbi1kZWxheTogMHM7IHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWlu +LW91dDsgdHJhbnNpdGlvbi1kdXJhdGlvbjogMC4yczsgdHJhbnNpdGlvbi1wcm9wZXJ0eTogbm9u +ZTsgY3Vyc29yOiBoZWxwOyB0ZXh0LWRlY29yYXRpb24tdGhpY2tuZXNzOiAycHg7IHBvc2l0aW9u +OiByZWxhdGl2ZTsgdGV4dC11bmRlcmxpbmUtcG9zaXRpb246IHVuZGVyICFpbXBvcnRhbnQ7XCI+ +Ynp3LjwvYWJicj4mbmJzcDstcHJvZ3JhbW1lIGvDtm5uZW4gZGVuIFJhaG1lbiBmw7xyIGVpbmUg +c3RydWt0dXJpZXJ0ZSBWZXJrZWhyc3NpY2hlcmhlaXRzYXJiZWl0IGluIGRlbiBHZW1laW5kZW4g +dW5kIExhbmRrcmVpc2VuIGJpbGRlbi4gRGVyIEJ1bmQgaGF0IGRhenUgMjAyMSBlaW4mbmJzcDs8 +YSBocmVmPVwiaHR0cHM6Ly9ibWR2LmJ1bmQuZGUvU2hhcmVkRG9jcy9ERS9BcnRpa2VsL1N0Vi9W +ZXJrZWhyc3NpY2hlcmhlaXQvdmVya2VocnNzaWNoZXJoZWl0c3Byb2dyYW1tLTIwMjEtYmlzLTIw +MzAuaHRtbFwiIHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyIG5vcmVmZXJyZXJcIiB0 +aXRsZT1cIkV4dGVybmVyIExpbmsmbmJzcDvDnGJlcnNpY2h0IHp1ciBWZXJrZWhyc3NpY2hlcmhl +aXRzc3RyYXRlZ2llIGRlcyBCdW5kZXMsIG1pdCBEb3dubG9hZC1Nw7ZnbGljaGtlaXRlbi4gKMOW +ZmZuZXQmbmJzcDtuZXVlcyZuYnNwO0ZlbnN0ZXIpXCIgc3R5bGU9XCJib3gtc2l6aW5nOiBpbmhl +cml0OyB0cmFuc2l0aW9uLWRlbGF5OiAwczsgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGVh +c2UtaW4tb3V0OyB0cmFuc2l0aW9uLWR1cmF0aW9uOiAwLjJzOyB0cmFuc2l0aW9uLXByb3BlcnR5 +OiBub25lOyBjdXJzb3I6IHBvaW50ZXI7IHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IGxldHRl +ci1zcGFjaW5nOiAycHg7IGZvbnQtd2VpZ2h0OiA3MDA7IHBvc2l0aW9uOiByZWxhdGl2ZTsgdGV4 +dC11bmRlcmxpbmUtcG9zaXRpb246IHVuZGVyICFpbXBvcnRhbnQ7XCI+VkVSS0VIUlNTSUNIRVJI +RUlUU1BST0dSQU1NPC9hPiZuYnNwO2dlc2NoYWZmZW4sIGRhcyBMw6RuZGVyIHVuZCBrb21tdW5h +bGUgU3BpdHplbnZlcmLDpG5kZSBlaW5iaW5kZXQsIGFiZXIgYXVjaCBkaWUgRmFjaMO2ZmZlbnRs +aWNoa2VpdCBiZWkgVmVyYsOkbmRlbiwgSW5zdGl0dXRpb25lbiB1bmQgVW50ZXJuZWhtZW4uIERp +ZSB2ZXJzY2hpZWRlbmVuIEFrdGV1cmlubmVuIHVuZCBBa3RldXJlbiBkZXIgVmVya2VocnNzaWNo +ZXJoZWl0c2FyYmVpdCBrw7ZubmVuIGR1cmNoIFp1c2FtbWVuYXJiZWl0IGF1ZiBkaWUgRXJyZWlj +aHVuZyBkZXIgVmlzaW9uIFplcm8gaGlud2lya2VuLjwvcD48YnI+Iiwic3RhdHVzIjoiRnJlaWdl +Z2ViZW4iLCJlcnN0ZWxsdCI6IjIwMjYtMDMtMjciLCJnZWFlbmRlcnQiOiIyMDI2LTAzLTI3Iiwi +ZXJzdGVsbHRWb24iOiJyaGlubyIsImJlYXJiZWl0ZXRWb24iOiJyaGlubyIsInZlcnNpb24iOiJ2 +MC4xIiwibWVkaWFzIjpbeyJ0eXBlIjoiaW1hZ2UiLCJ1cmwiOiJtZWRpYS9EMDA1L3dlYl8xNzc0 +NTcxNTcxNTkzXzAuanBlZyIsInRpdGxlIjoid2ViXzE3NzQ1NzE1NzE1OTNfMC5qcGVnIiwiZGVz +Y3JpcHRpb24iOiIiLCJkaXNwbGF5TW9kZSI6ImlubGluZSIsImFsaWdubWVudCI6IiIsInNpemUi +OiJsYXJnZSIsIm1lZGlhSWQiOiJtMDAxIn0seyJ0eXBlIjoiaW1hZ2UiLCJ1cmwiOiJtZWRpYS9E +MDA1L3dlYl8xNzc0NTcxNTcxODE1XzEuc3ZnX3htbCIsInRpdGxlIjoid2ViXzE3NzQ1NzE1NzE4 +MTVfMS5zdmcreG1sIiwiZGVzY3JpcHRpb24iOiIiLCJkaXNwbGF5TW9kZSI6ImlubGluZSIsImFs +aWdubWVudCI6IiIsInNpemUiOiJsYXJnZSIsIm1lZGlhSWQiOiJtMDAyIn0seyJ0eXBlIjoiaW1h +Z2UiLCJ1cmwiOiJtZWRpYS9EMDA1L3dlYl8xNzc0NTcxNTcyMDkwXzIuanBlZyIsInRpdGxlIjoi +d2ViXzE3NzQ1NzE1NzIwOTBfMi5qcGVnIiwiZGVzY3JpcHRpb24iOiIiLCJkaXNwbGF5TW9kZSI6 +ImlubGluZSIsImFsaWdubWVudCI6IiIsInNpemUiOiJsYXJnZSIsIm1lZGlhSWQiOiJtMDAzIn0s +eyJ0eXBlIjoiaW1hZ2UiLCJ1cmwiOiJtZWRpYS9EMDA1L3dlYl8xNzc0NTcxNTcyMjcyXzMuc3Zn +X3htbCIsInRpdGxlIjoid2ViXzE3NzQ1NzE1NzIyNzJfMy5zdmcreG1sIiwiZGVzY3JpcHRpb24i +OiIiLCJkaXNwbGF5TW9kZSI6ImlubGluZSIsImFsaWdubWVudCI6IiIsInNpemUiOiJsYXJnZSIs +Im1lZGlhSWQiOiJtMDA0In1dLCJzY2hsYWd3b2VydGVyIjpbXSwicGFyZW50SWQiOm51bGwsImNv +bnRyaWJ1dG9ycyI6W3sidXNlcm5hbWUiOiJyaGlubyIsInJvbGUiOiJhdXRvciIsImVudHJpZXMi +OjIsImZpcnN0Q29udHJpYiI6IjIwMjYtMDMtMjdUMDA6MzM6MjAuNDM4WiIsImxhc3RDb250cmli +IjoiMjAyNi0wMy0yN1QwMDozNTo0NS42NjZaIn0seyJ1c2VybmFtZSI6InJoaW5vIiwicm9sZSI6 +InJlZGFrdGlvbiIsImVudHJpZXMiOjEsImZpcnN0Q29udHJpYiI6IjIwMjYtMDMtMjdUMDA6MzY6 +MTUuNzQwWiJ9XX0seyJpZCI6IkQwMDYiLCJ0aXRlbCI6IkZhaHJ6ZXVndGVjaG5payAtIExlYmVu +IHJldHRlbiBkdXJjaCB0ZWNobmlzY2hlIFNpY2hlcmhlaXQuIiwia2F0ZWdvcmllIjoiRmFocnpl +dWd0ZWNobmlrIiwiaW5oYWx0IjoiPHNwYW4gc3R5bGU9XCJjYXJldC1jb2xvcjogcmdiKDMwLCAz +MCwgMzApOyBmb250LXdlaWdodDogNjAwOyBsZXR0ZXItc3BhY2luZzogMC4ycHg7XCI+RGFzIHNw +ZXppZWxsIGluIGRlciBGYWhyYW5mw6RuZ2VycGhhc2UgaG9oZSBVbmZhbGxwb3RlbnppYWwgbMOk +c3N0IHNpY2ggbWl0aGlsZmUgZGVyIEZhaHJ6ZXVndGVjaG5payBkdXJjaGF1cyB2ZXJyaW5nZXJu +LiBEYWJlaSBzcGllbHQgdW50ZXIgYW5kZXJlbSBhdWNoIGRlciBzdGV0aWdlIEZvcnRzY2hyaXR0 +IGJlaSBkZXIgRGlnaXRhbGlzaWVydW5nIGRlciBGYWhyemV1Z2FudHJpZWJlIGluIFZlcmJpbmR1 +bmcgbWl0IGRlbSBCZWRpZW4tRXF1aXBtZW50IGVpbmUgZW50c2NoZWlkZW5kZSBSb2xsZS4gRGFm +w7xyIGTDvHJmZW4gZGllIHZlcmJhdXRlbiBTeXN0ZW1lIGFsbGVyZGluZ3Mga2VpbmUgZ3Jhdmll +cmVuZGVuIE3DpG5nZWwgb2RlciB1bnp1bMOkc3NpZ2VuIEJhdWFydHZlcsOkbmRlcnVuZ2VuIGF1 +ZndlaXNlbiB1bmQgbcO8c3NlbiBlaW53YW5kZnJlaSBmdW5rdGlvbmllcmVuLiBXaWUgd2ljaHRp +ZyBkYXMgaXN0LCBoYXQgREVLUkEgaW4gbWVocmVyZW4gRmFocnZlcnN1Y2hlbiBlcm5ldXQgZWlu +ZHLDvGNrbGljaCB1bnRlciBCZXdlaXMgZ2VzdGVsbHQuIEluIFp1a3VuZnQga8O2bm50ZW4gZGFi +ZWkgZ3J1bmRzw6R0emxpY2ggYXVjaCBTeXN0ZW1lIHdpZSBkZXIgYXV0b21hdGlzY2hlIFNwZWVk +bGltaXRlciBkYXMgVW5mYWxscmlzaWtvIHJlZHV6aWVyZW4uIFNjaGxpZcOfbGljaCBnZWjDtnJ0 +IMO8YmVyaMO2aHRlIGJlemllaHVuZ3N3ZWlzZSBkZXIgU2l0dWF0aW9uIG5pY2h0IGFuZ2VwYXNz +dGUgR2VzY2h3aW5kaWdrZWl0IHp1IGRlbiBIYXVwdHVuZmFsbHVyc2FjaGVuIGp1bmdlciBGYWhy +ZXIuPC9zcGFuPiIsInN0YXR1cyI6IkZyZWlnZWdlYmVuIiwiZXJzdGVsbHQiOiIyMDI2LTAzLTI3 +IiwiZ2VhZW5kZXJ0IjoiMjAyNi0wMy0yNyIsImVyc3RlbGx0Vm9uIjoicmhpbm8iLCJiZWFyYmVp +dGV0Vm9uIjoicmhpbm8iLCJ2ZXJzaW9uIjoidjAuMSIsIm1lZGlhcyI6W10sInNjaGxhZ3dvZXJ0 +ZXIiOltdLCJwYXJlbnRJZCI6bnVsbCwiY29udHJpYnV0b3JzIjpbeyJ1c2VybmFtZSI6InJoaW5v +Iiwicm9sZSI6ImF1dG9yIiwiZW50cmllcyI6MSwiZmlyc3RDb250cmliIjoiMjAyNi0wMy0yN1Qw +MDozMzo1NC40OTFaIn1dfSx7ImlkIjoiRDAwNyIsInRpdGVsIjoiRmFsc2NoZmFocmVyIiwia2F0 +ZWdvcmllIjoiRmFsc2NoZmFocmVyIiwiaW5oYWx0IjoiPHAgc3R5bGU9XCJjYXJldC1jb2xvcjog +cmdiKDIzLCA0MywgNzcpOyB0ZXh0LWRlY29yYXRpb24tdGhpY2tuZXNzOiBhdXRvOyB0ZXh0LWRl +Y29yYXRpb24tc3R5bGU6IHNvbGlkO1wiPkRlciBEZXV0c2NoZSBWZXJrZWhyc3NpY2hlcmhlaXRz +cmF0IGUuIFYuIChEVlIpIHN0ZWxsdCBhYiBzb2ZvcnQgZWluZW4gQW5pbWF0aW9uc2ZpbG0gdW5k +IGVpbmUgQnJvc2Now7xyZSB6dW0gVGhlbWEgXCJHZWlzdGVyZmFocmVyXCIgenVyIFZlcmbDvGd1 +bmcuPC9wPjxwIHN0eWxlPVwiY2FyZXQtY29sb3I6IHJnYigyMywgNDMsIDc3KTsgdGV4dC1kZWNv +cmF0aW9uLXRoaWNrbmVzczogYXV0bzsgdGV4dC1kZWNvcmF0aW9uLXN0eWxlOiBzb2xpZDtcIj5E +ZXIgRmlsbSBiZWxldWNodGV0IGF1cyB1bnRlcnNjaGllZGxpY2hlbiBQZXJzcGVrdGl2ZW4gZGll +IFNpdHVhdGlvbiBlaW5lcyBGYWxzY2hmYWhyZXJzLiBFaW5lcnNlaXRzIHdpcmQgZGllIFNpY2h0 +IGRlcyBGYWhyZXJzIGVpbmdlbm9tbWVuLCBkZXIgdmVyc2VoZW50bGljaCB6dW0gR2Vpc3RlcmZh +aHJlciBnZXdvcmRlbiBpc3QuIEFuZGVyZXJzZWl0cyBiZXNjaHJlaWJ0IGRlciBGaWxtIGRpZSBT +aWNodCBkZXIgZW50Z2VnZW5rb21tZW5kZW4gVmVya2VocnN0ZWlsbmVobWVyLiBGw7xyIGJlaWRl +IFNpdHVhdGlvbmVuIGdlYmVuIGFuc2NoYXVsaWNoZSBCaWxkZXIgdW5kIGxlaWNodCB2ZXJzdMOk +bmRsaWNoZSBFcmtsw6RydW5nZW4gZGVtIFp1c2NoYXVlciBUaXBwcyB6dW0gcmljaHRpZ2VuIFZl +cmhhbHRlbiB1bmQga29ua3JldGUgSGFuZGx1bmdzZW1wZmVobHVuZ2VuLjwvcD48cCBzdHlsZT1c +ImNhcmV0LWNvbG9yOiByZ2IoMjMsIDQzLCA3Nyk7IHRleHQtZGVjb3JhdGlvbi10aGlja25lc3M6 +IGF1dG87IHRleHQtZGVjb3JhdGlvbi1zdHlsZTogc29saWQ7XCI+V2VpdGVyZSBpbnRlcmVzc2Fu +dGUgQmVpdHLDpGdlIHVuZCBCcm9zY2jDvHJlbiBmaW5kZW4gU2llIGF1ZiBkZXImbmJzcDs8YSBo +cmVmPVwiaHR0cDovL3J1bnRlcnZvbWdhcy5kZS9cIiBkYXRhLWV4dGxpbms9XCJcIiB0YXJnZXQ9 +XCJfYmxhbmtcIiByZWw9XCJub29wZW5lclwiIHRpdGxlPVwiKG9wZW5zIGluIGEgbmV3IHdpbmRv +dylcIiB0YWJpbmRleD1cIjBcIiBzdHlsZT1cInZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcIj7i +gJ5SdW50ZXIgdm9tIEdhc+KAnC1XZWJzaXRlPC9hPiZuYnNwO29kZXIgZXJoYWx0ZW4gU2llIHBl +ciBFLU1haWwgYW4mbmJzcDs8YSBocmVmPVwibWFpbHRvOmtvbnRha3RAcnVudGVydm9tZ2FzLmRl +XCIgdGFiaW5kZXg9XCIwXCIgc3R5bGU9XCJ2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XCI+a29u +dGFrdEBydW50ZXJ2b21nYXMuZGU8L2E+LjwvcD4iLCJzdGF0dXMiOiJGcmVpZ2VnZWJlbiIsImVy +c3RlbGx0IjoiMjAyNi0wMy0yNyIsImdlYWVuZGVydCI6IjIwMjYtMDMtMjciLCJlcnN0ZWxsdFZv +biI6InJoaW5vIiwiYmVhcmJlaXRldFZvbiI6InJoaW5vIiwidmVyc2lvbiI6InYwLjEiLCJtZWRp +YXMiOltdLCJzY2hsYWd3b2VydGVyIjpbXSwicGFyZW50SWQiOm51bGwsImNvbnRyaWJ1dG9ycyI6 +W3sidXNlcm5hbWUiOiJyaGlubyIsInJvbGUiOiJhdXRvciIsImVudHJpZXMiOjEsImZpcnN0Q29u +dHJpYiI6IjIwMjYtMDMtMjdUMDA6MzQ6MzMuMjU2WiJ9XX0seyJpZCI6IkQwMDgiLCJ0aXRlbCI6 +Ikdlc2Nod2luZGlna2VpdCBhbHMgdW5mYWxsYmVnw7xuc3RpZ2VuZGVyIEZha3RvciIsImthdGVn +b3JpZSI6Ikdlc2Nod2luZGlna2VpdCIsImluaGFsdCI6IjxwIHN0eWxlPVwiYm94LXNpemluZzog +aW5oZXJpdDsgY2FyZXQtY29sb3I6IHJnYigzMiwgNTksIDEyMSk7IHRleHQtZGVjb3JhdGlvbi10 +aGlja25lc3M6IGF1dG87IHRleHQtZGVjb3JhdGlvbi1zdHlsZTogc29saWQ7XCI+TWHDn25haG1l +biB6dXIgUmVkdXppZXJ1bmcgZGVyIGdlZmFocmVuZW4gR2VzY2h3aW5kaWdrZWl0ZW4gaW0gU3Ry +YcOfZW52ZXJrZWhyIHNwaWVsZW4gaW4gZGVyIFZlcmtlaHJzc2ljaGVyaGVpdHNhcmJlaXQgZWlu +ZSB6ZW50cmFsZSBSb2xsZS4gVmVya2VocnNyZWNodGxpY2hlIE1hw59uYWhtZW4gd2llIGRpZSBC +ZXNjaGlsZGVydW5nLCBkaWUgbWVpc3QgZWluZmFjaCB1bXp1c2V0emVuIHNpbmQsIG3DvHNzZW4g +YXVjaCDDvGJlcndhY2h0IHVuZCBkdXJjaGdlc2V0enQgd2VyZGVuLiBBdWNoIGRpZSBHZXN0YWx0 +dW5nIHZvbiBWZXJrZWhyc2FubGFnZW4ga2FubiBhdWYgZGFzIEdlc2Nod2luZGlna2VpdHNuaXZl +YXUgZWlud2lya2VuLiZuYnNwOzxzcGFuIHN0eWxlPVwiYm94LXNpemluZzogaW5oZXJpdDsgZm9u +dC13ZWlnaHQ6IDcwMDtcIj5EYXMgV2ViaW5hciBlcmtsw6RydCBkaWUgd2ljaHRpZ3N0ZW4gRmFr +dGVuIHVuZCBSYWhtZW5iZWRpbmd1bmdlbiB1bmQgemVpZ3QgYmV3w6RocnRlIE1hw59uYWhtZW4s +IHVtIGRpZSBHZXNjaHdpbmRpZ2tlaXRlbiB6dSBzZW5rZW4gdW5kIGRpZSBWZXJrZWhyc3NpY2hl +cmhlaXQgenUgZXJow7ZoZW4uPC9zcGFuPjwvcD48cCBzdHlsZT1cImJveC1zaXppbmc6IGluaGVy +aXQ7IGNhcmV0LWNvbG9yOiByZ2IoMzIsIDU5LCAxMjEpOyB0ZXh0LWRlY29yYXRpb24tdGhpY2tu +ZXNzOiBhdXRvOyB0ZXh0LWRlY29yYXRpb24tc3R5bGU6IHNvbGlkO1wiPjxzcGFuIHN0eWxlPVwi +Ym94LXNpemluZzogaW5oZXJpdDsgZm9udC13ZWlnaHQ6IDcwMDtcIj5Eci4gSGFnZW4gU2Now7xs +bGVyIHZvbiBQVFYgVHJhbnNwb3J0IENvbnN1bHQ8L3NwYW4+Jm5ic3A7c3RlbGx0IGluIHNlaW5l +bSBCZWl0cmFnIGF1ZiBHcnVuZGxhZ2UgYWt0dWVsbGVyIEVya2VubnRuaXNzZSBkaWUgWnVzYW1t +ZW5ow6RuZ2Ugendpc2NoZW4gR2VzY2h3aW5kaWdrZWl0IHVuZCBVbmZhbGxnZXNjaGVoZW4gdm9y +IHVuZCBnZWh0IGF1ZiBtw7ZnbGljaGUgTWHDn25haG1lbiBlaW4uIERpZSBOb3ZlbGxlbiBkZXIg +U3RyYcOfZW52ZXJrZWhycy1PcmRudW5nIChTdFZPKSB1bmQgZGVyIEFsbGdlbWVpbmVuIFZlcndh +bHR1bmdzdm9yc2NocmlmdCB6dXIgU3RyYcOfZW52ZXJrZWhycy1PcmRudW5nIChWd1YtU3RWTykg +YmlldGVuIG1laHIgSGFuZGx1bmdzc3BpZWxyw6R1bWUsIHVtIGRpZSB6dWzDpHNzaWdlIEjDtmNo +c3RnZXNjaHdpbmRpZ2tlaXQgaW0gaW5uZXLDtnJ0bGljaGVuIEJlcmVpY2ggenUgcmVkdXppZXJl +bi4mbmJzcDs8c3BhbiBzdHlsZT1cImJveC1zaXppbmc6IGluaGVyaXQ7IGZvbnQtd2VpZ2h0OiA3 +MDA7XCI+VG9iaWFzIFRlc2NobmVyIHZvbiBkZXIgU3RhZHQgSGFsbGUgKFNhYWxlKTwvc3Bhbj4m +bmJzcDt6ZWlndCBhdWYsIHdpZSBkaWUgU3RhZHQgZGFzIFN0cmVja2VubmV0eiBzdHJ1a3R1cmll +cnQgYXVmIEFucGFzc3VuZ3NiZWRhcmYgZ2VwcsO8ZnQgaGF0LCB1bSBkaWUgVmVya2VocnNzaWNo +ZXJoZWl0IHp1IGVyaMO2aGVuLiAmbmJzcDs8L3A+PHAgc3R5bGU9XCJib3gtc2l6aW5nOiBpbmhl +cml0OyBjYXJldC1jb2xvcjogcmdiKDMyLCA1OSwgMTIxKTsgdGV4dC1kZWNvcmF0aW9uLXRoaWNr +bmVzczogYXV0bzsgdGV4dC1kZWNvcmF0aW9uLXN0eWxlOiBzb2xpZDtcIj5NZWhyIEluZm9ybWF0 +aW9uZW4gc293aWUgZGllIE3DtmdsaWNoa2VpdCB6dXIgQW5tZWxkdW5nIGZpbmRlbiBTaWUgYXVm +IGRlciZuYnNwOzxhIGhyZWY9XCJodHRwczovL3d3dy5tb2JpbGl0YWV0c2ZvcnVtLmJ1bmQuZGUv +U2hhcmVkRG9jcy9UZXJtaW5lL0RFL1dlYmluYXIvV2ViaW5hcjQvV2ViaW5hcl8yNTExMDZfVlNf +R2VzY2h3aW5kaWdrZWl0Lmh0bWxcIiB0YXJnZXQ9XCJfYmxhbmtcIiB0aXRsZT1cIk1vYmlsaXTD +pHRzZm9ydW0gQnVuZDogR2VzY2h3aW5kaWdrZWl0IGFscyB1bmZhbGxiZWfDvG5zdGlnZW5kZXIg +RmFrdG9yXCIgcmVsPVwibm9yZWZlcnJlclwiIHN0eWxlPVwiYm94LXNpemluZzogaW5oZXJpdDtc +Ij48c3BhbiBzdHlsZT1cImJveC1zaXppbmc6IGluaGVyaXQ7IGZvbnQtd2VpZ2h0OiA3MDA7XCI+ +V2Vic2l0ZSBkZXMgTW9iaWxpdMOkdHNmb3J1bSBCdW5kLjwvc3Bhbj48L2E+PC9wPiIsInN0YXR1 +cyI6IkZyZWlnZWdlYmVuIiwiZXJzdGVsbHQiOiIyMDI2LTAzLTI3IiwiZ2VhZW5kZXJ0IjoiMjAy +Ni0wMy0yNyIsImVyc3RlbGx0Vm9uIjoicmhpbm8iLCJiZWFyYmVpdGV0Vm9uIjoicmhpbm8iLCJ2 +ZXJzaW9uIjoidjAuMSIsIm1lZGlhcyI6W10sInNjaGxhZ3dvZXJ0ZXIiOltdLCJwYXJlbnRJZCI6 +bnVsbCwiY29udHJpYnV0b3JzIjpbeyJ1c2VybmFtZSI6InJoaW5vIiwicm9sZSI6ImF1dG9yIiwi +ZW50cmllcyI6MSwiZmlyc3RDb250cmliIjoiMjAyNi0wMy0yN1QwMDozNzowNC4wMzZaIn1dfSx7 +ImlkIjoiRDAwOSIsInRpdGVsIjoiR2VmYWhyZ3V0dmVyb3JkbnVuZyBTdHJhw59lIiwia2F0ZWdv +cmllIjoiR0dWUyIsImluaGFsdCI6IjxwIHN0eWxlPVwiZm9udC1zaXplLWFkanVzdDogaW5oZXJp +dDsgZm9udC1rZXJuaW5nOiBpbmhlcml0OyBmb250LXZhcmlhbnQtYWx0ZXJuYXRlczogaW5oZXJp +dDsgZm9udC12YXJpYW50LWxpZ2F0dXJlczogaW5oZXJpdDsgZm9udC12YXJpYW50LW51bWVyaWM6 +IGluaGVyaXQ7IGZvbnQtdmFyaWFudC1lYXN0LWFzaWFuOiBpbmhlcml0OyBmb250LXZhcmlhbnQt +cG9zaXRpb246IGluaGVyaXQ7IGZvbnQtdmFyaWFudC1lbW9qaTogaW5oZXJpdDsgZm9udC1mZWF0 +dXJlLXNldHRpbmdzOiBpbmhlcml0OyBmb250LW9wdGljYWwtc2l6aW5nOiBpbmhlcml0OyBmb250 +LXZhcmlhdGlvbi1zZXR0aW5nczogaW5oZXJpdDsgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lOyBj +YXJldC1jb2xvcjogcmdiKDUxLCA1MSwgNTEpOyB0ZXh0LWRlY29yYXRpb24tdGhpY2tuZXNzOiBh +dXRvOyB0ZXh0LWRlY29yYXRpb24tc3R5bGU6IHNvbGlkO1wiPkRpZSBHZWZhaHJndXR2ZXJvcmRu +dW5nIFN0cmHDn2UgKEdHVlMpIHJlZ2VsdCBkaWUgaW5uZXJzdGFhdGxpY2hlIHVuZCBncmVuesO8 +YmVyc2NocmVpdGVuZGUgQmVmw7ZyZGVydW5nIGdlZsOkaHJsaWNoZXIgR8O8dGVyIGF1ZiBkZXIg +U3RyYcOfZSBtaXQgRmFocnpldWdlbiBpbiBEZXV0c2NobGFuZC48YnI+PC9wPjxwIHN0eWxlPVwi +Zm9udC1zaXplLWFkanVzdDogaW5oZXJpdDsgZm9udC1rZXJuaW5nOiBpbmhlcml0OyBmb250LXZh +cmlhbnQtYWx0ZXJuYXRlczogaW5oZXJpdDsgZm9udC12YXJpYW50LWxpZ2F0dXJlczogaW5oZXJp +dDsgZm9udC12YXJpYW50LW51bWVyaWM6IGluaGVyaXQ7IGZvbnQtdmFyaWFudC1lYXN0LWFzaWFu +OiBpbmhlcml0OyBmb250LXZhcmlhbnQtcG9zaXRpb246IGluaGVyaXQ7IGZvbnQtdmFyaWFudC1l +bW9qaTogaW5oZXJpdDsgZm9udC1mZWF0dXJlLXNldHRpbmdzOiBpbmhlcml0OyBmb250LW9wdGlj +YWwtc2l6aW5nOiBpbmhlcml0OyBmb250LXZhcmlhdGlvbi1zZXR0aW5nczogaW5oZXJpdDsgdmVy +dGljYWwtYWxpZ246IGJhc2VsaW5lOyBjYXJldC1jb2xvcjogcmdiKDUxLCA1MSwgNTEpOyB0ZXh0 +LWRlY29yYXRpb24tdGhpY2tuZXNzOiBhdXRvOyB0ZXh0LWRlY29yYXRpb24tc3R5bGU6IHNvbGlk +O1wiPkdlZsOkaHJsaWNoZSBHw7x0ZXIgaW0gU2lubmUgZGVyIEdHVlMgc2luZCBkaWUgU3RvZmZl +IHVuZCBHZWdlbnN0w6RuZGUsIGRlcmVuIEJlZsO2cmRlcnVuZyBhdWYgZGVyIFN0cmHDn2UgbmFj +aCBkZW4gQW5sYWdlbiBBIChWb3JzY2hyaWZ0IMO8YmVyIGRpZSBnZWbDpGhybGljaGVuIFN0b2Zm +ZSB1bmQgR2VnZW5zdMOkbmRlKSB1bmQgQiAoVm9yc2NocmlmdGVuIGbDvHIgZGllIEJlZsO2cmRl +cnVuZ3NtaXR0ZWwgdW5kIGRpZSBCZWbDtnJkZXJ1bmcpIHZlcmJvdGVuIG9kZXIgbnVyIHVudGVy +IGJlc3RpbW10ZW4gQmVzdGltbXVuZ2VuIGdlc3RhdHRldCBpc3QuJm5ic3A7PC9wPjxwIHN0eWxl +PVwiZm9udC1zaXplLWFkanVzdDogaW5oZXJpdDsgZm9udC1rZXJuaW5nOiBpbmhlcml0OyBmb250 +LXZhcmlhbnQtYWx0ZXJuYXRlczogaW5oZXJpdDsgZm9udC12YXJpYW50LWxpZ2F0dXJlczogaW5o +ZXJpdDsgZm9udC12YXJpYW50LW51bWVyaWM6IGluaGVyaXQ7IGZvbnQtdmFyaWFudC1lYXN0LWFz +aWFuOiBpbmhlcml0OyBmb250LXZhcmlhbnQtcG9zaXRpb246IGluaGVyaXQ7IGZvbnQtdmFyaWFu +dC1lbW9qaTogaW5oZXJpdDsgZm9udC1mZWF0dXJlLXNldHRpbmdzOiBpbmhlcml0OyBmb250LW9w +dGljYWwtc2l6aW5nOiBpbmhlcml0OyBmb250LXZhcmlhdGlvbi1zZXR0aW5nczogaW5oZXJpdDsg +dmVydGljYWwtYWxpZ246IGJhc2VsaW5lOyBjYXJldC1jb2xvcjogcmdiKDUxLCA1MSwgNTEpOyB0 +ZXh0LWRlY29yYXRpb24tdGhpY2tuZXNzOiBhdXRvOyB0ZXh0LWRlY29yYXRpb24tc3R5bGU6IHNv +bGlkO1wiPlwiR2Vmw6RocmxpY2hlIEfDvHRlclwiIGlzdCBkZXIgT2JlcmJlZ3JpZmYgZsO8ciBc +ImdlZsOkaHJsaWNoZSBTdG9mZmUgdW5kIEdlZ2Vuc3TDpG5kZVwiLCB2b24gZGVuZW4gYXVmIEdy +dW5kIGlocmVyIE5hdHVyLCBpaHJlciBFaWdlbnNjaGFmdGVuIG9kZXIgaWhyZXMgWnVzdGFuZGVz +IGltIFp1c2FtbWVuaGFuZyBtaXQgZGVyIEJlZsO2cmRlcnVuZyBHZWZhaHJlbiBmw7xyIGRpZSDD +tmZmZW50bGljaGUgU2ljaGVyaGVpdCB1bmQgT3JkbnVuZywgaW5zYmVzb25kZXJlIGbDvHIgZGll +IEFsbGdlbWVpbmhlaXQsIGbDvHIgd2ljaHRpZ2UgR2VtZWluZ8O8dGVyLCBmw7xyIExlYmVuIHVu +ZCBHZXN1bmRoZWl0IHZvbiBNZW5zY2hlbiBzb3dpZSBmw7xyIFRpZXJlIHVuZCBTYWNoZW4gYXVz +Z2VoZW4ga8O2bm5lbi4mbmJzcDs8L3A+PHAgc3R5bGU9XCJmb250LXNpemUtYWRqdXN0OiBpbmhl +cml0OyBmb250LWtlcm5pbmc6IGluaGVyaXQ7IGZvbnQtdmFyaWFudC1hbHRlcm5hdGVzOiBpbmhl +cml0OyBmb250LXZhcmlhbnQtbGlnYXR1cmVzOiBpbmhlcml0OyBmb250LXZhcmlhbnQtbnVtZXJp +YzogaW5oZXJpdDsgZm9udC12YXJpYW50LWVhc3QtYXNpYW46IGluaGVyaXQ7IGZvbnQtdmFyaWFu +dC1wb3NpdGlvbjogaW5oZXJpdDsgZm9udC12YXJpYW50LWVtb2ppOiBpbmhlcml0OyBmb250LWZl +YXR1cmUtc2V0dGluZ3M6IGluaGVyaXQ7IGZvbnQtb3B0aWNhbC1zaXppbmc6IGluaGVyaXQ7IGZv +bnQtdmFyaWF0aW9uLXNldHRpbmdzOiBpbmhlcml0OyB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7 +IGNhcmV0LWNvbG9yOiByZ2IoNTEsIDUxLCA1MSk7IHRleHQtZGVjb3JhdGlvbi10aGlja25lc3M6 +IGF1dG87IHRleHQtZGVjb3JhdGlvbi1zdHlsZTogc29saWQ7XCI+RsO8ciBkaWUgQmVmw7ZyZGVy +dW5nIGJlc3RpbW10ZXIgZ2Vmw6RocmxpY2hlciBHw7x0ZXIgaXN0IGVpbmUgRmFocndlZ2Jlc3Rp +bW11bmcgZ2Vtw6TDnyDCpyA3IGRlciBHR1ZTIGVyZm9yZGVybGljaC4mbmJzcDs8L3A+PHAgc3R5 +bGU9XCJmb250LXNpemUtYWRqdXN0OiBpbmhlcml0OyBmb250LWtlcm5pbmc6IGluaGVyaXQ7IGZv +bnQtdmFyaWFudC1hbHRlcm5hdGVzOiBpbmhlcml0OyBmb250LXZhcmlhbnQtbGlnYXR1cmVzOiBp +bmhlcml0OyBmb250LXZhcmlhbnQtbnVtZXJpYzogaW5oZXJpdDsgZm9udC12YXJpYW50LWVhc3Qt +YXNpYW46IGluaGVyaXQ7IGZvbnQtdmFyaWFudC1wb3NpdGlvbjogaW5oZXJpdDsgZm9udC12YXJp +YW50LWVtb2ppOiBpbmhlcml0OyBmb250LWZlYXR1cmUtc2V0dGluZ3M6IGluaGVyaXQ7IGZvbnQt +b3B0aWNhbC1zaXppbmc6IGluaGVyaXQ7IGZvbnQtdmFyaWF0aW9uLXNldHRpbmdzOiBpbmhlcml0 +OyB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7IGNhcmV0LWNvbG9yOiByZ2IoNTEsIDUxLCA1MSk7 +IHRleHQtZGVjb3JhdGlvbi10aGlja25lc3M6IGF1dG87IHRleHQtZGVjb3JhdGlvbi1zdHlsZTog +c29saWQ7XCI+SW4gendlaSBMaXN0ZW4gc2luZCBkaWVqZW5pZ2VuIGdlZsOkaHJsaWNoZW4gR8O8 +dGVyIGF1ZmdlZsO8aHJ0LCBkaWUgYmVpIEZyZWl3ZXJkZW4gZHVyY2ggZWluZW4gVmVya2VocnN1 +bmZhbGwgYWIgZWluZXIgYmVzdGltbXRlbiBNZW5nZSBzY2h3ZXJ3aWVnZW5kZSBGb2xnZW4sIHNv +Z2FyIEthdGFzdHJvcGhlbiBiZWbDvHJjaHRlbiBsYXNzZW4uJm5ic3A7PC9wPjxwIHN0eWxlPVwi +Zm9udC1zaXplLWFkanVzdDogaW5oZXJpdDsgZm9udC1rZXJuaW5nOiBpbmhlcml0OyBmb250LXZh +cmlhbnQtYWx0ZXJuYXRlczogaW5oZXJpdDsgZm9udC12YXJpYW50LWxpZ2F0dXJlczogaW5oZXJp +dDsgZm9udC12YXJpYW50LW51bWVyaWM6IGluaGVyaXQ7IGZvbnQtdmFyaWFudC1lYXN0LWFzaWFu +OiBpbmhlcml0OyBmb250LXZhcmlhbnQtcG9zaXRpb246IGluaGVyaXQ7IGZvbnQtdmFyaWFudC1l +bW9qaTogaW5oZXJpdDsgZm9udC1mZWF0dXJlLXNldHRpbmdzOiBpbmhlcml0OyBmb250LW9wdGlj +YWwtc2l6aW5nOiBpbmhlcml0OyBmb250LXZhcmlhdGlvbi1zZXR0aW5nczogaW5oZXJpdDsgdmVy +dGljYWwtYWxpZ246IGJhc2VsaW5lOyBjYXJldC1jb2xvcjogcmdiKDUxLCA1MSwgNTEpOyB0ZXh0 +LWRlY29yYXRpb24tdGhpY2tuZXNzOiBhdXRvOyB0ZXh0LWRlY29yYXRpb24tc3R5bGU6IHNvbGlk +O1wiPkRlciBGYWhyd2VnIGF1w59lcmhhbGIgZGVyIEF1dG9iYWhuIHdpcmQgdm9uIGRlciBTdHJh +w59lbnZlcmtlaHJzYmVow7ZyZGUgZsO8ciBlaW5lIGVpbnplbG5lIEZhaHJ0IG9kZXIgYmVpIHZl +cmdsZWljaGJhcmVuIFNhY2h2ZXJoYWx0ZW4gZsO8ciBlaW5lIGJlZ3Jlbnp0ZSBvZGVyIHVuYmVn +cmVuenRlIFphaGwgdm9uIEZhaHJ0ZW4gaW5uZXJoYWxiIGVpbmVyIGJlc3RpbW10ZW4gWmVpdCB2 +b24gaMO2Y2hzdGVucyAzIEphaHJlbiBzY2hyaWZ0bGljaCBiZXN0aW1tdC4mbmJzcDs8L3A+PHAg +c3R5bGU9XCJmb250LXNpemUtYWRqdXN0OiBpbmhlcml0OyBmb250LWtlcm5pbmc6IGluaGVyaXQ7 +IGZvbnQtdmFyaWFudC1hbHRlcm5hdGVzOiBpbmhlcml0OyBmb250LXZhcmlhbnQtbGlnYXR1cmVz +OiBpbmhlcml0OyBmb250LXZhcmlhbnQtbnVtZXJpYzogaW5oZXJpdDsgZm9udC12YXJpYW50LWVh +c3QtYXNpYW46IGluaGVyaXQ7IGZvbnQtdmFyaWFudC1wb3NpdGlvbjogaW5oZXJpdDsgZm9udC12 +YXJpYW50LWVtb2ppOiBpbmhlcml0OyBmb250LWZlYXR1cmUtc2V0dGluZ3M6IGluaGVyaXQ7IGZv +bnQtb3B0aWNhbC1zaXppbmc6IGluaGVyaXQ7IGZvbnQtdmFyaWF0aW9uLXNldHRpbmdzOiBpbmhl +cml0OyB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7IGNhcmV0LWNvbG9yOiByZ2IoNTEsIDUxLCA1 +MSk7IHRleHQtZGVjb3JhdGlvbi10aGlja25lc3M6IGF1dG87IHRleHQtZGVjb3JhdGlvbi1zdHls +ZTogc29saWQ7XCI+RGllIEZhaHJ3ZWdiZXN0aW1tdW5nIGlzdCBhdWNoIGR1cmNoIEFsbGdlbWVp +bnZlcmbDvGd1bmcgbcO2Z2xpY2guJm5ic3A7PC9wPjxwIHN0eWxlPVwiZm9udC1zaXplLWFkanVz +dDogaW5oZXJpdDsgZm9udC1rZXJuaW5nOiBpbmhlcml0OyBmb250LXZhcmlhbnQtYWx0ZXJuYXRl +czogaW5oZXJpdDsgZm9udC12YXJpYW50LWxpZ2F0dXJlczogaW5oZXJpdDsgZm9udC12YXJpYW50 +LW51bWVyaWM6IGluaGVyaXQ7IGZvbnQtdmFyaWFudC1lYXN0LWFzaWFuOiBpbmhlcml0OyBmb250 +LXZhcmlhbnQtcG9zaXRpb246IGluaGVyaXQ7IGZvbnQtdmFyaWFudC1lbW9qaTogaW5oZXJpdDsg +Zm9udC1mZWF0dXJlLXNldHRpbmdzOiBpbmhlcml0OyBmb250LW9wdGljYWwtc2l6aW5nOiBpbmhl +cml0OyBmb250LXZhcmlhdGlvbi1zZXR0aW5nczogaW5oZXJpdDsgdmVydGljYWwtYWxpZ246IGJh +c2VsaW5lOyBjYXJldC1jb2xvcjogcmdiKDUxLCA1MSwgNTEpOyB0ZXh0LWRlY29yYXRpb24tdGhp +Y2tuZXNzOiBhdXRvOyB0ZXh0LWRlY29yYXRpb24tc3R5bGU6IHNvbGlkO1wiPkJlaSBkZXIgQmVz +dGltbXVuZyBlaW5lcyBGYWhyd2VnZXMgd2VyZGVuIGluIGRlciBSZWdlbCB6d2VpIFN0cmHDn2Vu +dmVya2VocnNiZWjDtnJkZW4gYXVmIEFudHJhZyB0w6R0aWcuJm5ic3A7PC9wPjxwIHN0eWxlPVwi +Zm9udC1zaXplLWFkanVzdDogaW5oZXJpdDsgZm9udC1rZXJuaW5nOiBpbmhlcml0OyBmb250LXZh +cmlhbnQtYWx0ZXJuYXRlczogaW5oZXJpdDsgZm9udC12YXJpYW50LWxpZ2F0dXJlczogaW5oZXJp +dDsgZm9udC12YXJpYW50LW51bWVyaWM6IGluaGVyaXQ7IGZvbnQtdmFyaWFudC1lYXN0LWFzaWFu +OiBpbmhlcml0OyBmb250LXZhcmlhbnQtcG9zaXRpb246IGluaGVyaXQ7IGZvbnQtdmFyaWFudC1l +bW9qaTogaW5oZXJpdDsgZm9udC1mZWF0dXJlLXNldHRpbmdzOiBpbmhlcml0OyBmb250LW9wdGlj +YWwtc2l6aW5nOiBpbmhlcml0OyBmb250LXZhcmlhdGlvbi1zZXR0aW5nczogaW5oZXJpdDsgdmVy +dGljYWwtYWxpZ246IGJhc2VsaW5lOyBjYXJldC1jb2xvcjogcmdiKDUxLCA1MSwgNTEpOyB0ZXh0 +LWRlY29yYXRpb24tdGhpY2tuZXNzOiBhdXRvOyB0ZXh0LWRlY29yYXRpb24tc3R5bGU6IHNvbGlk +O1wiPkRpZSBmw7xyIGRpZSBCZWxhZGVzdGVsbGUgenVzdMOkbmRpZ2UgQmVow7ZyZGUgYmVzdGlt +bXQgZGVuIEZhaHJ3ZWcgYmlzIHp1ciBBdXRvYmFobiB1bmQgZGllIGFuZGVyZSBCZWjDtnJkZSBi +ZXN0aW1tdCBkZW4gV2VnIHZvbiBkZXIgQXV0b2JhaG4gYmlzIHp1ciBFbnRsYWRlc3RlbGxlLjwv +cD4iLCJzdGF0dXMiOiJGcmVpZ2VnZWJlbiIsImVyc3RlbGx0IjoiMjAyNi0wMy0yNyIsImdlYWVu +ZGVydCI6IjIwMjYtMDMtMjciLCJlcnN0ZWxsdFZvbiI6InJoaW5vIiwiYmVhcmJlaXRldFZvbiI6 +InJoaW5vIiwidmVyc2lvbiI6InYwLjEiLCJtZWRpYXMiOltdLCJzY2hsYWd3b2VydGVyIjpbXSwi +cGFyZW50SWQiOm51bGwsImNvbnRyaWJ1dG9ycyI6W3sidXNlcm5hbWUiOiJyaGlubyIsInJvbGUi +OiJhdXRvciIsImVudHJpZXMiOjEsImZpcnN0Q29udHJpYiI6IjIwMjYtMDMtMjdUMDA6Mzc6NDAu +OTEwWiJ9XX1dfTs= +### FILE: favicon.ico | 4443 +iVBORw0KGgoAAAANSUhEUgAAADQAAAAzCAYAAADYfStTAAAFPmlUWHRYTUw6Y29tLmFkb2JlLnht +cAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQi +Pz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iWE1QIENvcmUg +NS41LjAiPgogPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIy +LXJkZi1zeW50YXgtbnMjIj4KICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgeG1s +bnM6ZXhpZj0iaHR0cDovL25zLmFkb2JlLmNvbS9leGlmLzEuMC8iCiAgICB4bWxuczpwaG90b3No +b3A9Imh0dHA6Ly9ucy5hZG9iZS5jb20vcGhvdG9zaG9wLzEuMC8iCiAgICB4bWxuczp0aWZmPSJo +dHRwOi8vbnMuYWRvYmUuY29tL3RpZmYvMS4wLyIKICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFk +b2JlLmNvbS94YXAvMS4wLyIKICAgIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hh +cC8xLjAvbW0vIgogICAgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9z +VHlwZS9SZXNvdXJjZUV2ZW50IyIKICAgZXhpZjpDb2xvclNwYWNlPSIxIgogICBleGlmOlBpeGVs +WERpbWVuc2lvbj0iNTIiCiAgIGV4aWY6UGl4ZWxZRGltZW5zaW9uPSI1MSIKICAgcGhvdG9zaG9w +OkNvbG9yTW9kZT0iMyIKICAgcGhvdG9zaG9wOklDQ1Byb2ZpbGU9InNSR0IgSUVDNjE5NjYtMi4x +IgogICB0aWZmOkltYWdlTGVuZ3RoPSI1MSIKICAgdGlmZjpJbWFnZVdpZHRoPSI1MiIKICAgdGlm +ZjpSZXNvbHV0aW9uVW5pdD0iMiIKICAgdGlmZjpYUmVzb2x1dGlvbj0iOTYvMSIKICAgdGlmZjpZ +UmVzb2x1dGlvbj0iOTYvMSIKICAgeG1wOk1ldGFkYXRhRGF0ZT0iMjAyNi0wMy0yNVQxOToxMzow +NyswMTowMCIKICAgeG1wOk1vZGlmeURhdGU9IjIwMjYtMDMtMjVUMTk6MTM6MDcrMDE6MDAiPgog +ICA8eG1wTU06SGlzdG9yeT4KICAgIDxyZGY6U2VxPgogICAgIDxyZGY6bGkKICAgICAgeG1wTU06 +YWN0aW9uPSJwcm9kdWNlZCIKICAgICAgeG1wTU06c29mdHdhcmVBZ2VudD0iQWZmaW5pdHkgUGhv +dG8gMiAyLjYuNCIKICAgICAgeG1wTU06d2hlbj0iMjAyNS0xMC0yMFQyMDowNjowMCswMjowMCIv +PgogICAgIDxyZGY6bGkKICAgICAgc3RFdnQ6YWN0aW9uPSJwcm9kdWNlZCIKICAgICAgc3RFdnQ6 +c29mdHdhcmVBZ2VudD0iQWZmaW5pdHkgUGhvdG8gMiAyLjYuNSIKICAgICAgc3RFdnQ6d2hlbj0i +MjAyNi0wMy0yNVQxOToxMzowNyswMTowMCIvPgogICAgPC9yZGY6U2VxPgogICA8L3htcE1NOkhp +c3Rvcnk+CiAgPC9yZGY6RGVzY3JpcHRpb24+CiA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgo8P3hw +YWNrZXQgZW5kPSJyIj8+F+Tf+AAAAYFpQ0NQc1JHQiBJRUM2MTk2Ni0yLjEAACiRdZHfK4NRGMc/ +24hsmnBBuVgaV6aZWtwok1BLa6b8utne/VLbvL3vJLlVbhUlbvy64C/gVrlWikjJtVwSN6zX826r +Ldlzes7zOd9znqdzngPWSEbJ6nVeyObyWngi4JqbX3A1vGGjk1bs+KKKro6GQkFq2tcDFjPeecxa +tc/9a/Z4QlfA0ig8oqhaXnhSOLiWV03eFW5X0tG48LlwnyYXFL439ViJX01OlfjHZC0SHgNri7Ar +VcWxKlbSWlZYXo47m1lVyvcxX+JI5GZnJHaLd6ETZoIALqYYZww/AwzL7MeDj35ZUSPfW8yfZkVy +FZlV1tFYJkWaPH2irkr1hMSk6AkZGdbN/v/tq54c9JWqOwJQ/2IYHz3QsAOFbcP4PjaMwgnYnuEq +V8lfOYKhT9G3K5r7EJybcHFd0WJ7cLkFHU9qVIsWJZu4NZmE9zNonoe2W2haLPWsvM/pI0Q25Ktu +YP8AeuW8c+kXbBln6GNQQzUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAo2SURBVGiB3ZpXcxvXFYC/ +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 diff --git a/DRIVE/sync-bundle-02.txt b/DRIVE/sync-bundle-02.txt new file mode 100644 index 0000000..f0ce3a2 --- /dev/null +++ b/DRIVE/sync-bundle-02.txt @@ -0,0 +1,10623 @@ +### SYNC-TRANSFER 2/2 -- mit sync-entpacken.bat entpacken +### Base64 +### FILE: index.html | 553864 +PCFET0NUWVBFIGh0bWw+CjxodG1sIGxhbmc9ImRlIj4KPGhlYWQ+CiAgICA8bWV0YSBjaGFyc2V0 +PSJVVEYtOCI+CiAgICA8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNl +LXdpZHRoLCBpbml0aWFsLXNjYWxlPTEuMCI+CiAgICA8dGl0bGU+RC5SLkkuVi5FLiAtIFZJMyBD +bHVzdGVyPC90aXRsZT4KICAgIDxzdHlsZT4KLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09 +PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgRC5S +LkkuVi5FLiBQb3J0YWwgdjEuMCAtIFN0eWxlc2hlZXQKICAgT3B0aW1pZXJ0IGZ1ZXIgMTkyMHgx +MDgwIChGdWxsIEhEKQogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 +PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKKiB7IG1hcmdpbjogMDsg +cGFkZGluZzogMDsgYm94LXNpemluZzogYm9yZGVyLWJveDsgfQoKLyogLS0tIFRoZW1lIFZhcmlh +YmxlcyAtLS0gKi8KOnJvb3QgewogICAgLS1iZy1wcmltYXJ5OiAjMWEyMzMyOwogICAgLS1iZy1w +cmltYXJ5LWRhcms6ICMxMTFkMmE7CiAgICAtLWJnLWJvZHk6ICNmNWY1ZjU7CiAgICAtLWJnLWNh +cmQ6ICNmZmZmZmY7CiAgICAtLWJnLWNhcmQtYWx0OiAjZThlY2YwOwogICAgLS1iZy10b29sYmFy +OiAjZjBmMGYwOwogICAgLS1iZy1ob3ZlcjogI2YwZjhmZjsKICAgIC0tYmctYWN0aXZlOiAjZThm +MWY3OwogICAgLS1iZy1pbnB1dDogI2ZmZmZmZjsKICAgIC0tdGV4dC1wcmltYXJ5OiAjMzMzOwog +ICAgLS10ZXh0LXNlY29uZGFyeTogIzY2NjsKICAgIC0tdGV4dC1tdXRlZDogIzk5OTsKICAgIC0t +dGV4dC1oZWFkaW5nOiAjMkU0QTYyOwogICAgLS1ib3JkZXItY29sb3I6ICNkZGQ7CiAgICAtLWJv +cmRlci1saWdodDogI2UwZTBlMDsKICAgIC0tYm9yZGVyLXN0cm9uZzogI2MwYzBjMDsKICAgIC0t +c2hhZG93LWxpZ2h0OiByZ2JhKDAsMCwwLDAuMSk7CiAgICAtLXNoYWRvdy1tZWRpdW06IHJnYmEo +MCwwLDAsMC4xNSk7CiAgICAtLXNoYWRvdy1tb2RhbDogMCAxMHB4IDQwcHggcmdiYSgwLDAsMCww +LjMpOwogICAgLS10cmFuc2l0aW9uLXN0ZDogYWxsIDAuM3M7CiAgICAtLXJhZGl1cy1zbTogNHB4 +OwogICAgLS1yYWRpdXMtbW9kYWw6IDhweDsKfQoKW2RhdGEtdGhlbWU9Im5pZ2h0Il0gewogICAg +LS1iZy1wcmltYXJ5OiAjMWEyMzMyOwogICAgLS1iZy1wcmltYXJ5LWRhcms6ICMxMTE4Mjc7CiAg +ICAtLWJnLWJvZHk6ICMwZjE0MTk7CiAgICAtLWJnLWNhcmQ6ICMxYzIzMzM7CiAgICAtLWJnLWNh +cmQtYWx0OiAjMjMyYjNhOwogICAgLS1iZy10b29sYmFyOiAjMjMyYjNhOwogICAgLS1iZy1ob3Zl +cjogIzI1MzA0NTsKICAgIC0tYmctYWN0aXZlOiAjMmEzNjUwOwogICAgLS1iZy1pbnB1dDogIzFj +MjMzMzsKICAgIC0tdGV4dC1wcmltYXJ5OiAjZTBlNmVkOwogICAgLS10ZXh0LXNlY29uZGFyeTog +I2EwYWVjMDsKICAgIC0tdGV4dC1tdXRlZDogIzcxODA5NjsKICAgIC0tdGV4dC1oZWFkaW5nOiAj +N2ViOGRhOwogICAgLS1ib3JkZXItY29sb3I6ICMyZDM3NDg7CiAgICAtLWJvcmRlci1saWdodDog +IzJkMzc0ODsKICAgIC0tYm9yZGVyLXN0cm9uZzogIzRhNTU2ODsKICAgIC0tc2hhZG93LWxpZ2h0 +OiByZ2JhKDAsMCwwLDAuMyk7CiAgICAtLXNoYWRvdy1tZWRpdW06IHJnYmEoMCwwLDAsMC40KTsK +ICAgIC0tc2hhZG93LW1vZGFsOiAwIDEwcHggNDBweCByZ2JhKDAsMCwwLDAuNSk7CiAgICAtLXRy +YW5zaXRpb24tc3RkOiBhbGwgMC4zczsKICAgIC0tcmFkaXVzLXNtOiA0cHg7CiAgICAtLXJhZGl1 +cy1tb2RhbDogOHB4Owp9Cgpib2R5IHsKICAgIGZvbnQtZmFtaWx5OiAtYXBwbGUtc3lzdGVtLCBC +bGlua01hY1N5c3RlbUZvbnQsICJTZWdvZSBVSSIsIFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwg +QXJpYWwsIHNhbnMtc2VyaWY7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1iZy1ib2R5KTsK +ICAgIGNvbG9yOiB2YXIoLS10ZXh0LXByaW1hcnkpOwogICAgZGlzcGxheTogZmxleDsKICAgIGZs +ZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICBoZWlnaHQ6IDEwMHZoOwogICAgb3ZlcmZsb3c6IGhp +ZGRlbjsKICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4zcywgY29sb3IgMC4zczsK +fQoKLyogLS0tIEhlYWRlciAtLS0gKi8KaGVhZGVyIHsKICAgIGJhY2tncm91bmQtY29sb3I6IHZh +cigtLWJnLXByaW1hcnkpOwogICAgY29sb3I6IHdoaXRlOwogICAgYm94LXNoYWRvdzogMCAycHgg +NHB4IHZhcigtLXNoYWRvdy1saWdodCk7CiAgICBmbGV4LXNocmluazogMDsKICAgIHotaW5kZXg6 +IDEwMDsKICAgIGRpc3BsYXk6IGZsZXg7CiAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAganVz +dGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgcGFkZGluZzogMTZweCAzMnB4OwogICAg +dHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjNzOwp9CgouZHJpdmUtbG9nbyB7IHdpZHRo +OiAyMDBweDsgbWF4LXdpZHRoOiAxMDAlOyBoZWlnaHQ6IGF1dG87IH0KCi5kcml2ZS1oZWFkZXIt +Y2VudGVyIHsKICAgIGZsZXg6IDE7CiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICB3aGl0ZS1z +cGFjZTogbm93cmFwOwp9CgouZHJpdmUtaGVhZGVyLWNlbnRlciBwIHsgZm9udC1zaXplOiAyMHB4 +OyBmb250LXdlaWdodDogNTAwOyBsZXR0ZXItc3BhY2luZzogMC41cHg7IG9wYWNpdHk6IDAuOTU7 +IG1hcmdpbjogMDsgfQoKLyogLS0tIFRoZW1lIFRvZ2dsZSAtLS0gKi8KLnRoZW1lLXRvZ2dsZSB7 +CiAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwyNTUsMjU1LDAuMTUpOwogICAgYm9yZGVyOiAxcHgg +c29saWQgcmdiYSgyNTUsMjU1LDI1NSwwLjMpOwogICAgY29sb3I6IHdoaXRlOwogICAgd2lkdGg6 +IDQ0cHg7CiAgICBoZWlnaHQ6IDQ0cHg7CiAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgICBjdXJz +b3I6IHBvaW50ZXI7CiAgICBkaXNwbGF5OiBmbGV4OwogICAgYWxpZ24taXRlbXM6IGNlbnRlcjsK +ICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgdHJhbnNpdGlvbjogdmFyKC0tdHJhbnNp +dGlvbi1zdGQpOwogICAgZmxleC1zaHJpbms6IDA7Cn0KCi50aGVtZS10b2dnbGU6aG92ZXIgeyBi +YWNrZ3JvdW5kOiByZ2JhKDI1NSwyNTUsMjU1LDAuMjUpOyB0cmFuc2Zvcm06IHNjYWxlKDEuMSk7 +IH0KCi50aGVtZS10b2dnbGUgLmljb24tZGF5LCAudGhlbWUtdG9nZ2xlIC5pY29uLW5pZ2h0IHsK +ICAgIGZvbnQtc2l6ZTogMjJweDsgY29sb3I6IHdoaXRlOyB3aWR0aDogNDRweDsgaGVpZ2h0OiA0 +NHB4OwogICAgZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsganVzdGlmeS1jb250 +ZW50OiBjZW50ZXI7CiAgICBtYXJnaW4tdG9wOiAtMnB4Owp9Ci50aGVtZS10b2dnbGUgLmljb24t +ZGF5IHsgfQoudGhlbWUtdG9nZ2xlIC5pY29uLW5pZ2h0IHsgZGlzcGxheTogbm9uZTsgfQpbZGF0 +YS10aGVtZT0ibmlnaHQiXSAudGhlbWUtdG9nZ2xlIC5pY29uLWRheSB7IGRpc3BsYXk6IG5vbmU7 +IH0KW2RhdGEtdGhlbWU9Im5pZ2h0Il0gLnRoZW1lLXRvZ2dsZSAuaWNvbi1uaWdodCB7IGRpc3Bs +YXk6IGZsZXg7IH0KCi8qIC0tLSBDb25uZWN0aW9uIEJhciAtLS0gKi8KLmNvbm5lY3Rpb24tYmFy +IHsKICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJnLXByaW1hcnktZGFyayk7CiAgICBjb2xv +cjogd2hpdGU7CiAgICBwYWRkaW5nOiA2cHggMzJweDsKICAgIGRpc3BsYXk6IGZsZXg7CiAgICBh +bGlnbi1pdGVtczogY2VudGVyOwogICAgZ2FwOiAxMnB4OwogICAgZm9udC1zaXplOiAxM3B4Owog +ICAgZmxleC1zaHJpbms6IDA7CiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuM3M7 +Cn0KCi5jb25uZWN0aW9uLWJhciAuc3RhdHVzLWRvdCB7CiAgICB3aWR0aDogOHB4OyBoZWlnaHQ6 +IDhweDsgYm9yZGVyLXJhZGl1czogNTAlOwogICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmNDQ0NDsK +ICAgIGZsZXgtc2hyaW5rOiAwOwp9CgouY29ubmVjdGlvbi1iYXIgLnN0YXR1cy1kb3QuY29ubmVj +dGVkIHsgYmFja2dyb3VuZC1jb2xvcjogIzRDQUY1MDsgfQouY29ubmVjdGlvbi1iYXIgLnN0YXR1 +cy1kb3QucmVhZG9ubHkgeyBiYWNrZ3JvdW5kLWNvbG9yOiAjZTY3ZTIyOyB9CgouY29ubmVjdGlv +bi1iYXIgYnV0dG9uIHsKICAgIHBhZGRpbmc6IDRweCAxMnB4OwogICAgYmFja2dyb3VuZDogdHJh +bnNwYXJlbnQ7CiAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDI1NSwyNTUsMjU1LDAuNCk7CiAg +ICBjb2xvcjogd2hpdGU7CiAgICBib3JkZXItcmFkaXVzOiAzcHg7CiAgICBjdXJzb3I6IHBvaW50 +ZXI7CiAgICBmb250LXNpemU6IDEycHg7CiAgICB0cmFuc2l0aW9uOiBhbGwgMC4yczsKfQoKLmNv +bm5lY3Rpb24tYmFyIGJ1dHRvbjpob3ZlciB7IGJhY2tncm91bmQ6IHJnYmEoMjU1LDI1NSwyNTUs +MC4xNSk7IH0KCi5jb25uZWN0aW9uLWJhciAuc3BhY2VyIHsgZmxleDogMTsgfQoKLmNvbm5lY3Rp +b24tYmFyIC5zeW5jLWluZm8geyBvcGFjaXR5OiAwLjc7IGZvbnQtc2l6ZTogMTJweDsgfQoKLyog +LS0tIE1haW4gQ29udGFpbmVyIC0tLSAqLwptYWluIHsKICAgIHdpZHRoOiAxMDAlOwogICAgbWF4 +LXdpZHRoOiAxODAwcHg7CiAgICBtYXJnaW46IDAgYXV0bzsKICAgIHBhZGRpbmc6IDE1cHggMzBw +eDsKICAgIGZsZXg6IDE7CiAgICBkaXNwbGF5OiBmbGV4OwogICAgZmxleC1kaXJlY3Rpb246IGNv +bHVtbjsKICAgIG92ZXJmbG93OiBoaWRkZW47Cn0KCi8qIC0tLSBDb250cm9scyAtLS0gKi8KLmNv +bnRyb2xzIHsKICAgIGRpc3BsYXk6IGZsZXg7CiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwog +ICAgZ2FwOiA4cHg7CiAgICBtYXJnaW4tYm90dG9tOiAxMnB4OwogICAgZmxleC1zaHJpbms6IDA7 +Cn0KCi5jb250cm9scy1yb3ctdG9wIHsKICAgIGRpc3BsYXk6IGZsZXg7CiAgICBnYXA6IDEwcHg7 +CiAgICBhbGlnbi1pdGVtczogY2VudGVyOwp9CgouY29udHJvbHMtcm93LWNhdGVnb3JpZXMgewog +ICAgZGlzcGxheTogZmxleDsKICAgIGdhcDogOHB4OwogICAgZmxleC13cmFwOiB3cmFwOwogICAg +YWxpZ24taXRlbXM6IGNlbnRlcjsKfQoKLnNlYXJjaC1ib3ggeyBmbGV4OiAxOyBtaW4td2lkdGg6 +IDI1MHB4OyB9Cgouc2VhcmNoLWJveCBpbnB1dCB7CiAgICB3aWR0aDogMTAwJTsKICAgIHBhZGRp +bmc6IDhweCAxNXB4OwogICAgYm9yZGVyOiAycHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG9yKTsK +ICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgIGZvbnQtc2l6ZTogMTRweDsKICAgIHRyYW5zaXRp +b246IGJvcmRlci1jb2xvciAwLjNzLCBiYWNrZ3JvdW5kLWNvbG9yIDAuM3MsIGNvbG9yIDAuM3M7 +CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1iZy1pbnB1dCk7CiAgICBjb2xvcjogdmFyKC0t +dGV4dC1wcmltYXJ5KTsKfQoKLnNlYXJjaC1ib3ggaW5wdXQ6Zm9jdXMgewogICAgb3V0bGluZTog +bm9uZTsKICAgIGJvcmRlci1jb2xvcjogdmFyKC0tdGV4dC1oZWFkaW5nKTsKICAgIGJveC1zaGFk +b3c6IDAgMCA1cHggcmdiYSg0NiwgNzQsIDk4LCAwLjIpOwp9CgouZmlsdGVyLWJ1dHRvbnMsIC5z +dGF0dXMtZmlsdGVycyB7IGRpc3BsYXk6IGZsZXg7IGdhcDogOHB4OyBmbGV4LXdyYXA6IHdyYXA7 +IH0KCi5maWx0ZXItYnRuIHsKICAgIHBhZGRpbmc6IDhweCAxNXB4OwogICAgYmFja2dyb3VuZC1j +b2xvcjogdmFyKC0tYmctY2FyZCk7CiAgICBib3JkZXI6IDJweCBzb2xpZCB2YXIoLS10ZXh0LWhl +YWRpbmcpOwogICAgY29sb3I6IHZhcigtLXRleHQtaGVhZGluZyk7CiAgICBib3JkZXItcmFkaXVz +OiA0cHg7CiAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICBmb250LXdlaWdodDogNTAwOwogICAgZm9u +dC1zaXplOiAxNHB4OwogICAgdHJhbnNpdGlvbjogdmFyKC0tdHJhbnNpdGlvbi1zdGQpOwp9Cgou +ZmlsdGVyLWJ0bjpob3ZlciwgLmZpbHRlci1idG4uYWN0aXZlIHsgYmFja2dyb3VuZC1jb2xvcjog +dmFyKC0tdGV4dC1oZWFkaW5nKTsgY29sb3I6IHdoaXRlOyB9Cgouc3RhdHVzLWZpbHRlci1idG4g +ewogICAgcGFkZGluZzogOHB4IDEycHg7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1iZy1j +YXJkKTsKICAgIGJvcmRlcjogMnB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvcik7CiAgICBib3Jk +ZXItcmFkaXVzOiA0cHg7CiAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICBmb250LXdlaWdodDogNTAw +OwogICAgZm9udC1zaXplOiAxM3B4OwogICAgdHJhbnNpdGlvbjogdmFyKC0tdHJhbnNpdGlvbi1z +dGQpOwogICAgZGlzcGxheTogZmxleDsKICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICBnYXA6 +IDVweDsKICAgIGNvbG9yOiB2YXIoLS10ZXh0LXByaW1hcnkpOwp9Cgouc3RhdHVzLWZpbHRlci1i +dG46aG92ZXIgeyBib3JkZXItY29sb3I6IHZhcigtLXRleHQtaGVhZGluZyk7IH0KLnN0YXR1cy1m +aWx0ZXItYnRuLmFjdGl2ZSB7IGJvcmRlci1jb2xvcjogdmFyKC0tdGV4dC1oZWFkaW5nKTsgYmFj +a2dyb3VuZC1jb2xvcjogdmFyKC0tdGV4dC1oZWFkaW5nKTsgY29sb3I6IHdoaXRlOyB9CgovKiAt +LS0gVHdvLUNvbHVtbiBMYXlvdXQgLS0tICovCi5jb250YWluZXIgewogICAgZGlzcGxheTogZ3Jp +ZDsKICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMzUwcHggMWZyOwogICAgZ2FwOiAyMHB4Owog +ICAgZmxleDogMTsKICAgIG92ZXJmbG93OiBoaWRkZW47Cn0KCi8qIC0tLSBMaXN0ZSAtLS0gKi8K +LmRvY3VtZW50LWxpc3QgewogICAgYmFja2dyb3VuZDogdmFyKC0tYmctY2FyZCk7CiAgICBib3Jk +ZXItcmFkaXVzOiA0cHg7CiAgICBib3gtc2hhZG93OiAwIDFweCAzcHggdmFyKC0tc2hhZG93LWxp +Z2h0KTsKICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICBkaXNwbGF5OiBmbGV4OwogICAgZmxleC1k +aXJlY3Rpb246IGNvbHVtbjsKICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4zczsK +fQoKLmxpc3QtaGVhZGVyIHsKICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJnLWNhcmQtYWx0 +KTsKICAgIHBhZGRpbmc6IDE1cHg7CiAgICBib3JkZXItYm90dG9tOiAycHggc29saWQgdmFyKC0t +dGV4dC1oZWFkaW5nKTsKICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICBjb2xvcjogdmFyKC0tdGV4 +dC1oZWFkaW5nKTsKICAgIGRpc3BsYXk6IGZsZXg7CiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNl +LWJldHdlZW47CiAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgdHJhbnNpdGlvbjogYmFja2dy +b3VuZC1jb2xvciAwLjNzOwp9CgoubGlzdC1oZWFkZXIgLmRvYy1jb3VudCB7IGZvbnQtc2l6ZTog +MTJweDsgZm9udC13ZWlnaHQ6IDQwMDsgb3BhY2l0eTogMC43OyB9CgoubGlzdC1pdGVtcyB7IG92 +ZXJmbG93LXk6IGF1dG87IGZsZXg6IDE7IH0KCi5kb2N1bWVudC1pdGVtIHsKICAgIHBhZGRpbmc6 +IDE2cHg7CiAgICBwYWRkaW5nLWxlZnQ6IDE2cHg7CiAgICBib3JkZXItYm90dG9tOiAxcHggc29s +aWQgdmFyKC0tYm9yZGVyLWxpZ2h0KTsKICAgIGJvcmRlci1sZWZ0OiA0cHggc29saWQgdHJhbnNw +YXJlbnQ7CiAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICB0cmFuc2l0aW9uOiB2YXIoLS10cmFuc2l0 +aW9uLXN0ZCk7CiAgICBwb3NpdGlvbjogcmVsYXRpdmU7Cn0KCi5kb2N1bWVudC1pdGVtOmhvdmVy +IHsKICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJnLWhvdmVyKTsKICAgIGJvcmRlci1sZWZ0 +LWNvbG9yOiB2YXIoLS10ZXh0LWhlYWRpbmcpOwp9CgouZG9jdW1lbnQtaXRlbS5hY3RpdmUgewog +ICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYmctYWN0aXZlKTsKICAgIGJvcmRlci1sZWZ0LWNv +bG9yOiB2YXIoLS10ZXh0LWhlYWRpbmcpOwp9CgouZG9jdW1lbnQtaXRlbS5kcmFmdCB7IG9wYWNp +dHk6IDAuNzsgfQoKLmRvYy1pdGVtLXRpdGxlIHsgZm9udC13ZWlnaHQ6IDYwMDsgZm9udC1zaXpl +OiAxNXB4OyBjb2xvcjogdmFyKC0tdGV4dC1oZWFkaW5nKTsgbWFyZ2luLWJvdHRvbTogNXB4OyB9 +CgouZG9jLWl0ZW0tbWV0YSB7IGRpc3BsYXk6IGZsZXg7IGdhcDogMTBweDsgZmxleC13cmFwOiB3 +cmFwOyBtYXJnaW4tYm90dG9tOiA1cHg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IH0KCi5kb2MtaXRl +bS1jYXRlZ29yeSB7CiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICBiYWNrZ3JvdW5kLWNv +bG9yOiB2YXIoLS1ib3JkZXItbGlnaHQpOwogICAgcGFkZGluZzogMnB4IDhweDsKICAgIGJvcmRl +ci1yYWRpdXM6IDNweDsKICAgIGZvbnQtc2l6ZTogMTJweDsKICAgIGNvbG9yOiB2YXIoLS10ZXh0 +LXNlY29uZGFyeSk7Cn0KCi5zdGF0dXMtYmFkZ2Utc21hbGwgewogICAgZGlzcGxheTogaW5saW5l +LWJsb2NrOwogICAgcGFkZGluZzogMnB4IDZweDsKICAgIGJvcmRlci1yYWRpdXM6IDNweDsKICAg +IGZvbnQtc2l6ZTogMTFweDsKICAgIGZvbnQtd2VpZ2h0OiA2MDA7Cn0KCi5kb2MtaXRlbS1kYXRl +IHsgZm9udC1zaXplOiAxMnB4OyBjb2xvcjogdmFyKC0tdGV4dC1tdXRlZCk7IH0KCi8qIC0tLSBE +ZXRhaWwgVmlldyAtLS0gKi8KLmRvY3VtZW50LWRldGFpbCB7CiAgICBiYWNrZ3JvdW5kOiB2YXIo +LS1iZy1jYXJkKTsKICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgIGJveC1zaGFkb3c6IDAgMXB4 +IDNweCB2YXIoLS1zaGFkb3ctbGlnaHQpOwogICAgcGFkZGluZzogMzBweDsKICAgIG92ZXJmbG93 +LXk6IGF1dG87CiAgICBoZWlnaHQ6IDEwMCU7CiAgICBhbmltYXRpb246IGZhZGVJbiAwLjNzIGVh +c2UtaW47CiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuM3M7Cn0KCi5kZXRhaWwt +ZW1wdHkgewogICAgZGlzcGxheTogZmxleDsKICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICBq +dXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgIGhlaWdodDogMTAwJTsKICAgIGNvbG9yOiB2YXIo +LS10ZXh0LW11dGVkKTsKICAgIHRleHQtYWxpZ246IGNlbnRlcjsKfQoKLmRldGFpbC1oZWFkZXIg +ewogICAgbWFyZ2luLWJvdHRvbTogMjBweDsKICAgIHBhZGRpbmctYm90dG9tOiAxNXB4OwogICAg +Ym9yZGVyLWJvdHRvbTogMnB4IHNvbGlkIHZhcigtLXRleHQtaGVhZGluZyk7Cn0KCi5kZXRhaWwt +dGl0bGUgeyBmb250LXNpemU6IDI4cHg7IGNvbG9yOiB2YXIoLS10ZXh0LWhlYWRpbmcpOyBtYXJn +aW4tYm90dG9tOiAxMHB4OyBmb250LXdlaWdodDogNjAwOyB9CgouZGV0YWlsLW1ldGEgeyBkaXNw +bGF5OiBmbGV4OyBnYXA6IDI1cHg7IGZsZXgtd3JhcDogd3JhcDsgZm9udC1zaXplOiAxNXB4OyBj +b2xvcjogdmFyKC0tdGV4dC1zZWNvbmRhcnkpOyB9CgoubWV0YS1pdGVtIHsgZGlzcGxheTogZmxl +eDsgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgfQoubWV0YS1sYWJlbCB7IGZvbnQtd2VpZ2h0OiA2 +MDA7IGNvbG9yOiB2YXIoLS10ZXh0LWhlYWRpbmcpOyBtYXJnaW4tYm90dG9tOiAzcHg7IH0KCi5z +dGF0dXMtYmFkZ2UgewogICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgcGFkZGluZzogM3B4 +IDEwcHg7CiAgICBib3JkZXItcmFkaXVzOiAzcHg7CiAgICBmb250LXNpemU6IDEycHg7CiAgICBm +b250LXdlaWdodDogNjAwOwogICAgd2lkdGg6IGZpdC1jb250ZW50OwogICAgbGluZS1oZWlnaHQ6 +IDEuNDsKfQoKLmRldGFpbC1jb250ZW50IHsKICAgIGZvbnQtc2l6ZTogMTVweDsKICAgIGxpbmUt +aGVpZ2h0OiAxLjY7CiAgICBjb2xvcjogdmFyKC0tdGV4dC1wcmltYXJ5KTsKICAgIG1hcmdpbjog +MTVweCAwIDI1cHggMDsKICAgIHdvcmQtd3JhcDogYnJlYWstd29yZDsKICAgIG92ZXJmbG93LXdy +YXA6IGJyZWFrLXdvcmQ7CiAgICBvdmVyZmxvdy14OiBoaWRkZW47Cn0KCi5kZXRhaWwtY29udGVu +dCBoMSB7CiAgICBmb250LXNpemU6IDI0cHg7IGNvbG9yOiB2YXIoLS10ZXh0LWhlYWRpbmcpOyBm +b250LXdlaWdodDogNzAwOwogICAgbWFyZ2luOiAyNHB4IDAgMTJweCAwOyBwYWRkaW5nOiAxMnB4 +IDA7IGJvcmRlci1ib3R0b206IDNweCBzb2xpZCB2YXIoLS10ZXh0LWhlYWRpbmcpOwp9Ci5kZXRh +aWwtY29udGVudCBoMiB7CiAgICBmb250LXNpemU6IDIwcHg7IGNvbG9yOiB2YXIoLS10ZXh0LWhl +YWRpbmcpOyBmb250LXdlaWdodDogNzAwOwogICAgbWFyZ2luOiAyMHB4IDAgMTBweCAwOyBwYWRk +aW5nOiAxMHB4IDA7IGJvcmRlci1ib3R0b206IDJweCBzb2xpZCB2YXIoLS1ib3JkZXItbGlnaHQp +Owp9Ci5kZXRhaWwtY29udGVudCBoMyB7CiAgICBmb250LXNpemU6IDE3cHg7IGNvbG9yOiB2YXIo +LS10ZXh0LWhlYWRpbmcpOyBmb250LXdlaWdodDogNzAwOwogICAgbWFyZ2luOiAxNnB4IDAgOHB4 +IDA7IHBhZGRpbmc6IDZweCAwOwp9Ci5kZXRhaWwtY29udGVudCBoNCB7CiAgICBmb250LXNpemU6 +IDE1cHg7IGNvbG9yOiB2YXIoLS10ZXh0LWhlYWRpbmcpOyBmb250LXdlaWdodDogNjAwOwogICAg +bWFyZ2luOiAxMnB4IDAgNnB4IDA7Cn0KCi5kZXRhaWwtY29udGVudCBwIHsgbWFyZ2luOiAwIDAg +MC40ZW0gMDsgfQouZGV0YWlsLWNvbnRlbnQgKiB7IG1heC13aWR0aDogMTAwJSAhaW1wb3J0YW50 +OyBvdmVyZmxvdy13cmFwOiBicmVhay13b3JkICFpbXBvcnRhbnQ7IHdvcmQtYnJlYWs6IGJyZWFr +LXdvcmQgIWltcG9ydGFudDsgfQouZGV0YWlsLWNvbnRlbnQgc3BhbiB7IHdoaXRlLXNwYWNlOiBp +bmhlcml0ICFpbXBvcnRhbnQ7IH0KLmRldGFpbC1jb250ZW50OjphZnRlciB7IGNvbnRlbnQ6ICIi +OyBkaXNwbGF5OiB0YWJsZTsgY2xlYXI6IGJvdGg7IH0KCi8qIC0tLSBBY2NvcmRpb24gKEF1Zmts +YXBwYmFyZSBUZXh0YmVyZWljaGUpIC0tLSAqLwouZHJpdmUtYWNjb3JkaW9uIHsKICAgIGJvcmRl +cjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1saWdodCk7IGJvcmRlci1yYWRpdXM6IDhweDsKICAg +IG1hcmdpbjogNnB4IDA7IG92ZXJmbG93OiBoaWRkZW47CiAgICBiYWNrZ3JvdW5kOiAjZjBmNWZh +Owp9Ci5kcml2ZS1hY2NvcmRpb24gKyAuZHJpdmUtYWNjb3JkaW9uIHsgbWFyZ2luLXRvcDogMDsg +Ym9yZGVyLXRvcDogbm9uZTsgYm9yZGVyLXJhZGl1czogMDsgfQouZHJpdmUtYWNjb3JkaW9uOmZp +cnN0LWNoaWxkLCAuZHJpdmUtYWNjb3JkaW9uOm5vdCguZHJpdmUtYWNjb3JkaW9uICsgLmRyaXZl +LWFjY29yZGlvbikgeyBib3JkZXItcmFkaXVzOiA4cHggOHB4IDAgMDsgfQouZHJpdmUtYWNjb3Jk +aW9uOmxhc3Qtb2YtdHlwZSB7IGJvcmRlci1yYWRpdXM6IDAgMCA4cHggOHB4OyB9Ci5kcml2ZS1h +Y2NvcmRpb246b25seS1vZi10eXBlIHsgYm9yZGVyLXJhZGl1czogOHB4OyB9CltkYXRhLXRoZW1l +PSJuaWdodCJdIC5kcml2ZS1hY2NvcmRpb24geyBiYWNrZ3JvdW5kOiAjMWMyYTNhOyB9CgouZHJp +dmUtYWNjb3JkaW9uLWhlYWRlciB7CiAgICBkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogY2Vu +dGVyOyBnYXA6IDEwcHg7CiAgICBwYWRkaW5nOiAxMXB4IDE2cHg7IGN1cnNvcjogcG9pbnRlcjsg +dXNlci1zZWxlY3Q6IG5vbmU7CiAgICBmb250LXdlaWdodDogNjAwOyBmb250LXNpemU6IDE0cHg7 +IGNvbG9yOiB2YXIoLS10ZXh0LWhlYWRpbmcpOwogICAgYmFja2dyb3VuZDogI2U0ZWNmNDsgdHJh +bnNpdGlvbjogYmFja2dyb3VuZCAwLjE1czsKfQpbZGF0YS10aGVtZT0ibmlnaHQiXSAuZHJpdmUt +YWNjb3JkaW9uLWhlYWRlciB7IGJhY2tncm91bmQ6ICMyNDMwNDA7IH0KLmRyaXZlLWFjY29yZGlv +bi1oZWFkZXI6aG92ZXIgeyBiYWNrZ3JvdW5kOiAjZDhlNGYwOyB9CltkYXRhLXRoZW1lPSJuaWdo +dCJdIC5kcml2ZS1hY2NvcmRpb24taGVhZGVyOmhvdmVyIHsgYmFja2dyb3VuZDogIzJhM2E0ZTsg +fQoKLmRyaXZlLWFjY29yZGlvbi1hcnJvdyB7CiAgICBmbGV4LXNocmluazogMDsgd2lkdGg6IDE2 +cHg7IGhlaWdodDogMTZweDsKICAgIGJhY2tncm91bmQ6IHVybCgnY3NzL2ljb25zL0NoZXZyb25f +YXJ0aWNsZV9jbG9zZWQucG5nJykgY2VudGVyL2NvbnRhaW4gbm8tcmVwZWF0OwogICAgdHJhbnNp +dGlvbjogdHJhbnNmb3JtIDAuMnM7Cn0KLmRyaXZlLWFjY29yZGlvbi1hcnJvdyBpbWcgeyBkaXNw +bGF5OiBub25lOyB9Ci5kcml2ZS1hY2NvcmRpb24ub3BlbiAuZHJpdmUtYWNjb3JkaW9uLWFycm93 +IHsgdHJhbnNmb3JtOiByb3RhdGUoOTBkZWcpOyB9CltkYXRhLXRoZW1lPSJuaWdodCJdIC5kcml2 +ZS1hY2NvcmRpb24tYXJyb3cgeyBmaWx0ZXI6IGludmVydCgxKSBicmlnaHRuZXNzKDEuNSk7IH0K +Ci5kcml2ZS1hY2NvcmRpb24tYm9keSB7CiAgICBkaXNwbGF5OiBub25lOyBwYWRkaW5nOiAxNHB4 +IDE4cHg7CiAgICBmb250LXNpemU6IDE0cHg7IGxpbmUtaGVpZ2h0OiAxLjc7IGNvbG9yOiB2YXIo +LS10ZXh0LXByaW1hcnkpOwp9Ci5kcml2ZS1hY2NvcmRpb24ub3BlbiAuZHJpdmUtYWNjb3JkaW9u +LWJvZHkgeyBkaXNwbGF5OiBibG9jazsgfQouZHJpdmUtYWNjb3JkaW9uLWJvZHkgdWwsIC5kcml2 +ZS1hY2NvcmRpb24tYm9keSBvbCB7IHBhZGRpbmctbGVmdDogMjBweDsgbWFyZ2luOiA2cHggMDsg +fQouZHJpdmUtYWNjb3JkaW9uLWJvZHkgbGkgeyBtYXJnaW4tYm90dG9tOiAycHg7IH0KCi8qIFN1 +Yi1IZWFkZXIgaW5uZXJoYWxiIGVpbmVzIEFjY29yZGlvbnMgKEZBUS1TdGlsKSAqLwouZHJpdmUt +YWNjb3JkaW9uLXN1YiB7CiAgICBtYXJnaW46IDEwcHggMCA2cHggMDsgcGFkZGluZzogOHB4IDEy +cHg7CiAgICBiYWNrZ3JvdW5kOiAjZGNlNmYwOyBib3JkZXItcmFkaXVzOiA1cHg7IGJvcmRlci1s +ZWZ0OiAzcHggc29saWQgdmFyKC0tdGV4dC1oZWFkaW5nKTsKICAgIGZvbnQtd2VpZ2h0OiA2MDA7 +IGZvbnQtc2l6ZTogMTNweDsgY29sb3I6IHZhcigtLXRleHQtaGVhZGluZyk7Cn0KW2RhdGEtdGhl +bWU9Im5pZ2h0Il0gLmRyaXZlLWFjY29yZGlvbi1zdWIgeyBiYWNrZ3JvdW5kOiAjMWUyZTQwOyB9 +CgovKiAtLS0gRkFRLUJlcmVpY2ggLS0tICovCi5kcml2ZS1mYXEgewogICAgYm9yZGVyOiAxcHgg +c29saWQgdmFyKC0tYm9yZGVyLWxpZ2h0KTsgYm9yZGVyLXJhZGl1czogOHB4OwogICAgbWFyZ2lu +OiAxNnB4IDA7IG92ZXJmbG93OiBoaWRkZW47Cn0KLmRyaXZlLWZhcS1oZWFkZXIgewogICAgZGlz +cGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsgZ2FwOiAxMHB4OwogICAgcGFkZGluZzog +MTJweCAxNnB4OyBmb250LXdlaWdodDogNzAwOyBmb250LXNpemU6IDE1cHg7CiAgICBjb2xvcjog +d2hpdGU7IGJhY2tncm91bmQ6IHZhcigtLXRleHQtaGVhZGluZyk7Cn0KLmRyaXZlLWZhcS1ib2R5 +IHsgcGFkZGluZzogMDsgfQouZHJpdmUtZmFxLWl0ZW0geyBib3JkZXItYm90dG9tOiAxcHggc29s +aWQgdmFyKC0tYm9yZGVyLWxpZ2h0KTsgfQouZHJpdmUtZmFxLWl0ZW06bGFzdC1jaGlsZCB7IGJv +cmRlci1ib3R0b206IG5vbmU7IH0KLmRyaXZlLWZhcS1xdWVzdGlvbiB7CiAgICBkaXNwbGF5OiBm +bGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyBnYXA6IDEwcHg7CiAgICBwYWRkaW5nOiAxMHB4IDE2 +cHg7IGN1cnNvcjogcG9pbnRlcjsgdXNlci1zZWxlY3Q6IG5vbmU7CiAgICBmb250LXdlaWdodDog +NjAwOyBmb250LXNpemU6IDE0cHg7IGNvbG9yOiB2YXIoLS10ZXh0LWhlYWRpbmcpOwogICAgYmFj +a2dyb3VuZDogI2VkZjJmODsgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjE1czsKfQpbZGF0YS10 +aGVtZT0ibmlnaHQiXSAuZHJpdmUtZmFxLXF1ZXN0aW9uIHsgYmFja2dyb3VuZDogIzFlMmEzODsg +fQouZHJpdmUtZmFxLXF1ZXN0aW9uOmhvdmVyIHsgYmFja2dyb3VuZDogI2UwZWFmNDsgfQpbZGF0 +YS10aGVtZT0ibmlnaHQiXSAuZHJpdmUtZmFxLXF1ZXN0aW9uOmhvdmVyIHsgYmFja2dyb3VuZDog +IzI1MzQ0NDsgfQouZHJpdmUtZmFxLWFycm93IHsKICAgIGZsZXgtc2hyaW5rOiAwOyB3aWR0aDog +MTRweDsgaGVpZ2h0OiAxNHB4OwogICAgYmFja2dyb3VuZDogdXJsKCdjc3MvaWNvbnMvQ2hldnJv +bl9hcnRpY2xlX2Nsb3NlZC5wbmcnKSBjZW50ZXIvY29udGFpbiBuby1yZXBlYXQ7CiAgICB0cmFu +c2l0aW9uOiB0cmFuc2Zvcm0gMC4yczsKfQouZHJpdmUtZmFxLWFycm93IGltZyB7IGRpc3BsYXk6 +IG5vbmU7IH0KLmRyaXZlLWZhcS1pdGVtLm9wZW4gLmRyaXZlLWZhcS1hcnJvdyB7IHRyYW5zZm9y +bTogcm90YXRlKDkwZGVnKTsgfQpbZGF0YS10aGVtZT0ibmlnaHQiXSAuZHJpdmUtZmFxLWFycm93 +IHsgZmlsdGVyOiBpbnZlcnQoMSkgYnJpZ2h0bmVzcygxLjUpOyB9Ci5kcml2ZS1mYXEtYW5zd2Vy +IHsKICAgIGRpc3BsYXk6IG5vbmU7IHBhZGRpbmc6IDEwcHggMTZweCAxNHB4IDE2cHg7CiAgICBm +b250LXNpemU6IDE0cHg7IGxpbmUtaGVpZ2h0OiAxLjc7IGNvbG9yOiB2YXIoLS10ZXh0LXByaW1h +cnkpOwogICAgYmFja2dyb3VuZDogI2Y2ZjlmYzsKfQpbZGF0YS10aGVtZT0ibmlnaHQiXSAuZHJp +dmUtZmFxLWFuc3dlciB7IGJhY2tncm91bmQ6ICMxYTI0MzA7IH0KLmRyaXZlLWZhcS1pdGVtLm9w +ZW4gLmRyaXZlLWZhcS1hbnN3ZXIgeyBkaXNwbGF5OiBibG9jazsgfQouZHJpdmUtZmFxLWFuc3dl +ciB1bCwgLmRyaXZlLWZhcS1hbnN3ZXIgb2wgeyBwYWRkaW5nLWxlZnQ6IDIwcHg7IG1hcmdpbjog +NnB4IDA7IH0KCi8qIC0tLSBJbmZvYm94IChoZXJ2b3JnZWhvYmVuZXIgQmxvY2ssIHdpZSBpbmZv +LXNlY3Rpb24gYXVmIGRlciBTdGFydHNlaXRlKSAtLS0gKi8KLmRyaXZlLWluZm9ib3ggewogICAg +YmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYmctY2FyZC1hbHQpOyBib3JkZXItbGVmdDogNHB4IHNv +bGlkIHZhcigtLXRleHQtaGVhZGluZyk7CiAgICBwYWRkaW5nOiAxOHB4IDIwcHg7IG1hcmdpbjog +MTRweCAwOyBib3JkZXItcmFkaXVzOiA2cHg7CiAgICBmb250LXNpemU6IDE0cHg7IGxpbmUtaGVp +Z2h0OiAxLjc7IGNvbG9yOiB2YXIoLS10ZXh0LXByaW1hcnkpOwp9Ci5kcml2ZS1pbmZvYm94IGgy +IHsgY29sb3I6IHZhcigtLXRleHQtaGVhZGluZyk7IGZvbnQtc2l6ZTogMThweDsgZm9udC13ZWln +aHQ6IDcwMDsgbWFyZ2luOiAwIDAgOHB4IDA7IH0KLmRyaXZlLWluZm9ib3ggaDMgeyBjb2xvcjog +dmFyKC0tdGV4dC1oZWFkaW5nKTsgZm9udC1zaXplOiAxNnB4OyBmb250LXdlaWdodDogNzAwOyBt +YXJnaW46IDAgMCA2cHggMDsgfQouZHJpdmUtaW5mb2JveCB1bCwgLmRyaXZlLWluZm9ib3ggb2wg +eyBtYXJnaW4tbGVmdDogMjBweDsgY29sb3I6IHZhcigtLXRleHQtc2Vjb25kYXJ5KTsgfQouZHJp +dmUtaW5mb2JveCBsaSB7IG1hcmdpbi1ib3R0b206IDZweDsgbGluZS1oZWlnaHQ6IDEuNTsgfQou +ZHJpdmUtaW5mb2JveCBzdHJvbmcgeyBjb2xvcjogdmFyKC0tdGV4dC1oZWFkaW5nKTsgfQoKLyog +LS0tIFdpY2h0aWctQmxvY2sgKGF1ZmZhZWxsaWdlIEhlcnZvcmhlYnVuZyBmdWVyIHdpY2h0aWdl +IEhpbndlaXNlKSAtLS0gKi8KLmRyaXZlLWltcG9ydGFudCB7CiAgICBib3JkZXI6IDFweCBzb2xp +ZCAjM2E3YWEzOyBib3JkZXItbGVmdDogNHB4IHNvbGlkICMxYTIzMzI7CiAgICBib3JkZXItcmFk +aXVzOiA4cHg7IG1hcmdpbjogMTRweCAwOyBvdmVyZmxvdzogaGlkZGVuOwp9Ci5kcml2ZS1pbXBv +cnRhbnQtaGVhZGVyIHsKICAgIGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGdh +cDogMTBweDsKICAgIHBhZGRpbmc6IDExcHggMTZweDsgZm9udC13ZWlnaHQ6IDcwMDsgZm9udC1z +aXplOiAxNHB4OwogICAgY29sb3I6ICNmZmY7IGJhY2tncm91bmQ6ICMxYTIzMzI7Cn0KW2RhdGEt +dGhlbWU9Im5pZ2h0Il0gLmRyaXZlLWltcG9ydGFudCB7IGJvcmRlci1jb2xvcjogIzNhN2FhMzsg +fQpbZGF0YS10aGVtZT0ibmlnaHQiXSAuZHJpdmUtaW1wb3J0YW50LWhlYWRlciB7IGNvbG9yOiAj +ZmZmOyBiYWNrZ3JvdW5kOiAjMWUzYTVmOyB9Ci5kcml2ZS1pbXBvcnRhbnQtaGVhZGVyIGltZyB7 +IHdpZHRoOiAxOHB4OyBoZWlnaHQ6IDE4cHg7IGZpbHRlcjogaW52ZXJ0KDEpIGJyaWdodG5lc3Mo +Mik7IH0KW2RhdGEtdGhlbWU9Im5pZ2h0Il0gLmRyaXZlLWltcG9ydGFudC1oZWFkZXIgaW1nIHsg +ZmlsdGVyOiBpbnZlcnQoMSkgYnJpZ2h0bmVzcygyKTsgfQouZHJpdmUtaW1wb3J0YW50LWJvZHkg +ewogICAgcGFkZGluZzogMTRweCAxOHB4OyBmb250LXNpemU6IDE0cHg7IGxpbmUtaGVpZ2h0OiAx +Ljc7CiAgICBjb2xvcjogdmFyKC0tdGV4dC1wcmltYXJ5KTsgYmFja2dyb3VuZDogI2VkZjRmYjsK +fQpbZGF0YS10aGVtZT0ibmlnaHQiXSAuZHJpdmUtaW1wb3J0YW50LWJvZHkgeyBiYWNrZ3JvdW5k +OiAjMTYyYTNlOyB9Ci5kcml2ZS1pbXBvcnRhbnQtYm9keSB1bCwgLmRyaXZlLWltcG9ydGFudC1i +b2R5IG9sIHsgcGFkZGluZy1sZWZ0OiAyMHB4OyBtYXJnaW46IDZweCAwOyB9Ci5kcml2ZS1pbXBv +cnRhbnQtYm9keSBsaSB7IG1hcmdpbi1ib3R0b206IDJweDsgfQoKLyogLS0tIFRyZW5ubGluaWUg +LS0tICovCi5kcml2ZS1kaXZpZGVyIHsKICAgIGJvcmRlcjogbm9uZTsgYm9yZGVyLXRvcDogMnB4 +IHNvbGlkIHZhcigtLWJvcmRlci1saWdodCk7CiAgICBtYXJnaW46IDIwcHggMDsKfQpbZGF0YS10 +aGVtZT0ibmlnaHQiXSAuZHJpdmUtZGl2aWRlciB7IGJvcmRlci10b3AtY29sb3I6IHZhcigtLWJv +cmRlci1zdHJvbmcpOyB9CgovKiAtLS0gQXJ0aWtlbC1UYWJlbGxlbiAoZHJpdmUtdGFibGUpIC0t +LSAqLwouZHJpdmUtdGFibGUtd3JhcCB7IG1hcmdpbjogMTRweCAwOyBvdmVyZmxvdy14OiBhdXRv +OyB9Ci5kcml2ZS10YWJsZSB7CiAgICB3aWR0aDogMTAwJTsgYm9yZGVyLWNvbGxhcHNlOiBjb2xs +YXBzZTsgZm9udC1zaXplOiAxM3B4OwogICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVy +LWxpZ2h0KTsgYm9yZGVyLXJhZGl1czogNnB4Owp9Ci5kcml2ZS10YWJsZSB0aCwgLmRyaXZlLXRh +YmxlIHRkIHsKICAgIHBhZGRpbmc6IDhweCAxMnB4OyBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1i +b3JkZXItbGlnaHQpOwogICAgdGV4dC1hbGlnbjogbGVmdDsgdmVydGljYWwtYWxpZ246IHRvcDsK +fQouZHJpdmUtdGFibGUgdGggewogICAgYmFja2dyb3VuZDogI2U0ZWNmNDsgZm9udC13ZWlnaHQ6 +IDYwMDsgY29sb3I6IHZhcigtLXRleHQtaGVhZGluZyk7CiAgICBmb250LXNpemU6IDEycHg7IHRl +eHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IGxldHRlci1zcGFjaW5nOiAwLjNweDsKfQpbZGF0YS10 +aGVtZT0ibmlnaHQiXSAuZHJpdmUtdGFibGUgdGggeyBiYWNrZ3JvdW5kOiAjMjQzMDQwOyB9Ci5k +cml2ZS10YWJsZSB0aC5zb3J0YWJsZSB7IGN1cnNvcjogcG9pbnRlcjsgdXNlci1zZWxlY3Q6IG5v +bmU7IH0KLmRyaXZlLXRhYmxlIHRoLnNvcnRhYmxlOmhvdmVyIHsgYmFja2dyb3VuZDogI2Q4ZTRm +MDsgfQpbZGF0YS10aGVtZT0ibmlnaHQiXSAuZHJpdmUtdGFibGUgdGguc29ydGFibGU6aG92ZXIg +eyBiYWNrZ3JvdW5kOiAjMmEzYTRlOyB9Ci5kcml2ZS10YWJsZSB0aC5zb3J0LWFzYzo6YWZ0ZXIg +eyBjb250ZW50OiAnIOKWsic7IGZvbnQtc2l6ZTogMTBweDsgY29sb3I6IHZhcigtLXRleHQtbXV0 +ZWQpOyB9Ci5kcml2ZS10YWJsZSB0aC5zb3J0LWRlc2M6OmFmdGVyIHsgY29udGVudDogJyDilrwn +OyBmb250LXNpemU6IDEwcHg7IGNvbG9yOiB2YXIoLS10ZXh0LW11dGVkKTsgfQouZHJpdmUtdGFi +bGUgdGQgeyBjb2xvcjogdmFyKC0tdGV4dC1wcmltYXJ5KTsgfQouZHJpdmUtdGFibGUgdGJvZHkg +dHI6bnRoLWNoaWxkKGV2ZW4pIHsgYmFja2dyb3VuZDogI2Y4ZmFmYzsgfQpbZGF0YS10aGVtZT0i +bmlnaHQiXSAuZHJpdmUtdGFibGUgdGJvZHkgdHI6bnRoLWNoaWxkKGV2ZW4pIHsgYmFja2dyb3Vu +ZDogIzFjMjgzNjsgfQouZHJpdmUtdGFibGUgdGJvZHkgdHI6aG92ZXIgeyBiYWNrZ3JvdW5kOiB2 +YXIoLS1iZy1ob3Zlcik7IH0KLmRyaXZlLXRhYmxlIC5yb3ctaGVhZGVyIHsKICAgIGJhY2tncm91 +bmQ6ICNlZGYyZjg7IGZvbnQtd2VpZ2h0OiA2MDA7IGNvbG9yOiB2YXIoLS10ZXh0LWhlYWRpbmcp +Owp9CltkYXRhLXRoZW1lPSJuaWdodCJdIC5kcml2ZS10YWJsZSAucm93LWhlYWRlciB7IGJhY2tn +cm91bmQ6ICMxZTJhMzg7IH0KCi8qIEFjY29yZGlvbiBpbSBFZGl0b3I6IGJlYXJiZWl0YmFyICov +Ci5kcml2ZS1hY2NvcmRpb25bY29udGVudGVkaXRhYmxlPSJmYWxzZSJdIHsgY3Vyc29yOiBkZWZh +dWx0OyB9Ci5kcml2ZS1hY2NvcmRpb24gLmRyaXZlLWFjY29yZGlvbi1ib2R5IGEgeyBjb2xvcjog +IzI1NjNlYjsgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7IH0KW2RhdGEtdGhlbWU9Im5pZ2h0 +Il0gLmRyaXZlLWFjY29yZGlvbiAuZHJpdmUtYWNjb3JkaW9uLWJvZHkgYSB7IGNvbG9yOiAjNjBh +NWZhOyB9CgouZGV0YWlsLWNvbnRlbnQgYSB7IGNvbG9yOiAjMjU2M2ViOyB0ZXh0LWRlY29yYXRp +b246IHVuZGVybGluZTsgdGV4dC11bmRlcmxpbmUtb2Zmc2V0OiAycHg7IH0KLmRldGFpbC1jb250 +ZW50IGE6aG92ZXIgeyBjb2xvcjogIzFkNGVkODsgfQpbZGF0YS10aGVtZT0ibmlnaHQiXSAuZGV0 +YWlsLWNvbnRlbnQgYSB7IGNvbG9yOiAjNjBhNWZhOyB9CltkYXRhLXRoZW1lPSJuaWdodCJdIC5k +ZXRhaWwtY29udGVudCBhOmhvdmVyIHsgY29sb3I6ICM5M2JiZmM7IH0KCi8qIC0tLSBDcm9zc2xp +bmstRXJrZW5udW5nIC0tLSAqLwouY3Jvc3NsaW5rIHsKICAgIGJvcmRlci1ib3R0b206IDEuNXB4 +IGRhc2hlZCB2YXIoLS10ZXh0LWhlYWRpbmcpOwogICAgY3Vyc29yOiBwb2ludGVyOwogICAgcG9z +aXRpb246IHJlbGF0aXZlOwogICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjE1czsKfQouY3Jv +c3NsaW5rOmhvdmVyIHsgYmFja2dyb3VuZDogdmFyKC0tYmctYWN0aXZlKTsgfQouY3Jvc3NsaW5r +LXBvcG92ZXIgewogICAgZGlzcGxheTogbm9uZTsKICAgIHBvc2l0aW9uOiBmaXhlZDsKICAgIHot +aW5kZXg6IDkwMDA7CiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1iZy1jYXJkKTsKICAgIGJvcmRlcjog +MXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvcik7CiAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAg +ICBib3gtc2hhZG93OiAwIDZweCAyNHB4IHZhcigtLXNoYWRvdy1tZWRpdW0pOwogICAgcGFkZGlu +ZzogMTJweCAxNHB4OwogICAgd2lkdGg6IDMyMHB4OwogICAgbWF4LXdpZHRoOiA5MHZ3OwogICAg +Zm9udC1zaXplOiAxM3B4OwogICAgbGluZS1oZWlnaHQ6IDEuNTsKICAgIGNvbG9yOiB2YXIoLS10 +ZXh0LXByaW1hcnkpOwogICAgcG9pbnRlci1ldmVudHM6IG5vbmU7Cn0KLmNyb3NzbGluay1wb3Bv +dmVyLnZpc2libGUgeyBkaXNwbGF5OiBibG9jazsgfQouY3Jvc3NsaW5rLXBvcG92ZXIgLnhsaW5r +LWhlYWRlciB7CiAgICBmb250LXdlaWdodDogNzAwOyBmb250LXNpemU6IDE0cHg7IGNvbG9yOiB2 +YXIoLS10ZXh0LWhlYWRpbmcpOwogICAgbWFyZ2luLWJvdHRvbTogNnB4OyBkaXNwbGF5OiBmbGV4 +OyBhbGlnbi1pdGVtczogY2VudGVyOyBnYXA6IDZweDsKfQouY3Jvc3NsaW5rLXBvcG92ZXIgLnhs +aW5rLWhlYWRlciAueGxpbmstaWNvbiB7IGZvbnQtc2l6ZTogMTJweDsgb3BhY2l0eTogMC42OyB9 +Ci5jcm9zc2xpbmstcG9wb3ZlciAueGxpbmstbWV0YSB7CiAgICBmb250LXNpemU6IDExcHg7IGNv +bG9yOiB2YXIoLS10ZXh0LW11dGVkKTsgbWFyZ2luLWJvdHRvbTogNnB4OwogICAgZGlzcGxheTog +ZmxleDsgZ2FwOiA4cHg7IGZsZXgtd3JhcDogd3JhcDsKfQouY3Jvc3NsaW5rLXBvcG92ZXIgLnhs +aW5rLWV4Y2VycHQgewogICAgZm9udC1zaXplOiAxMnB4OyBjb2xvcjogdmFyKC0tdGV4dC1zZWNv +bmRhcnkpOyBsaW5lLWhlaWdodDogMS41OwogICAgbWF4LWhlaWdodDogNjBweDsgb3ZlcmZsb3c6 +IGhpZGRlbjsKfQouY3Jvc3NsaW5rLXBvcG92ZXIgLnhsaW5rLXRhZ3MgeyBtYXJnaW4tdG9wOiA2 +cHg7IGRpc3BsYXk6IGZsZXg7IGdhcDogNHB4OyBmbGV4LXdyYXA6IHdyYXA7IH0KLmNyb3NzbGlu +ay1wb3BvdmVyIC54bGluay10YWdzIHNwYW4gewogICAgZm9udC1zaXplOiAxMHB4OyBwYWRkaW5n +OiAxcHggNnB4OyBib3JkZXItcmFkaXVzOiA4cHg7CiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1iZy1h +Y3RpdmUpOyBjb2xvcjogdmFyKC0tdGV4dC1oZWFkaW5nKTsKfQouY3Jvc3NsaW5rLXBvcG92ZXIg +LnhsaW5rLWFjdGlvbiB7CiAgICBtYXJnaW4tdG9wOiA4cHg7IHBhZGRpbmctdG9wOiA2cHg7IGJv +cmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItbGlnaHQpOwogICAgZm9udC1zaXplOiAx +MXB4OyBjb2xvcjogdmFyKC0tdGV4dC1oZWFkaW5nKTsgcG9pbnRlci1ldmVudHM6IGF1dG87IGN1 +cnNvcjogcG9pbnRlcjsKfQouY3Jvc3NsaW5rLXBvcG92ZXIgLnhsaW5rLWFjdGlvbjpob3ZlciB7 +IHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyB9CgovKiAtLS0gRGlmZi1BbnNpY2h0IGZ1ZXIg +UmV2aWV3IC0tLSAqLwouZGlmZi1hZGRlZCB7IGJhY2tncm91bmQtY29sb3I6ICNkNGVkZGE7IGNv +bG9yOiAjMTU1NzI0OyBwYWRkaW5nOiAxcHggMnB4OyBib3JkZXItcmFkaXVzOiAycHg7IH0KLmRp +ZmYtcmVtb3ZlZCB7IGJhY2tncm91bmQtY29sb3I6ICNmOGQ3ZGE7IGNvbG9yOiAjNzIxYzI0OyBw +YWRkaW5nOiAxcHggMnB4OyBib3JkZXItcmFkaXVzOiAycHg7IHRleHQtZGVjb3JhdGlvbjogbGlu +ZS10aHJvdWdoOyB9CltkYXRhLXRoZW1lPSJuaWdodCJdIC5kaWZmLWFkZGVkIHsgYmFja2dyb3Vu +ZC1jb2xvcjogIzFhNDAyODsgY29sb3I6ICNhM2U0Yjg7IH0KW2RhdGEtdGhlbWU9Im5pZ2h0Il0g +LmRpZmYtcmVtb3ZlZCB7IGJhY2tncm91bmQtY29sb3I6ICM0NTFhMjA7IGNvbG9yOiAjZjBiMGI4 +OyB9Ci5kaWZmLWxlZ2VuZCB7CiAgICBkaXNwbGF5OiBmbGV4OyBnYXA6IDE2cHg7IHBhZGRpbmc6 +IDhweCAxNHB4OyBtYXJnaW4tYm90dG9tOiAxMnB4OwogICAgYmFja2dyb3VuZDogdmFyKC0tYmct +Y2FyZC1hbHQpOyBib3JkZXItcmFkaXVzOiA2cHg7IGZvbnQtc2l6ZTogMTJweDsgY29sb3I6IHZh +cigtLXRleHQtc2Vjb25kYXJ5KTsKICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1s +aWdodCk7Cn0KLmRpZmYtbGVnZW5kIHNwYW4geyBkaXNwbGF5OiBpbmxpbmUtZmxleDsgYWxpZ24t +aXRlbXM6IGNlbnRlcjsgZ2FwOiA0cHg7IH0KCi8qIC0tLSBSZXZpc2lvbnNoaXN0b3JpZSAtLS0g +Ki8KLnJldmlzaW9uLW1vZGFsIHsKICAgIGRpc3BsYXk6IG5vbmU7IHBvc2l0aW9uOiBmaXhlZDsg +dG9wOiAwOyBsZWZ0OiAwOyB3aWR0aDogMTAwJTsgaGVpZ2h0OiAxMDAlOwogICAgYmFja2dyb3Vu +ZDogcmdiYSgwLDAsMCwwLjYpOyB6LWluZGV4OiAxMDAwMDsganVzdGlmeS1jb250ZW50OiBjZW50 +ZXI7IGFsaWduLWl0ZW1zOiBjZW50ZXI7Cn0KLnJldmlzaW9uLW1vZGFsLm9wZW4geyBkaXNwbGF5 +OiBmbGV4OyB9Ci5yZXZpc2lvbi1jb250YWluZXIgewogICAgYmFja2dyb3VuZDogdmFyKC0tYmct +cHJpbWFyeSk7IGJvcmRlci1yYWRpdXM6IDhweDsgd2lkdGg6IDk1JTsgbWF4LXdpZHRoOiAxMjAw +cHg7IGhlaWdodDogODV2aDsKICAgIGRpc3BsYXk6IGdyaWQ7IGdyaWQtdGVtcGxhdGUtY29sdW1u +czogMjgwcHggMWZyOyBvdmVyZmxvdzogaGlkZGVuOwogICAgYm9yZGVyOiAxcHggc29saWQgdmFy +KC0tYm9yZGVyLWNvbG9yKTsgYm94LXNoYWRvdzogMCA4cHggMzJweCByZ2JhKDAsMCwwLDAuNCk7 +Cn0KLnJldmlzaW9uLXNpZGViYXIgewogICAgYmFja2dyb3VuZDogdmFyKC0tYmctY2FyZCk7IGJv +cmRlci1yaWdodDogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvcik7CiAgICBkaXNwbGF5OiBm +bGV4OyBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyBvdmVyZmxvdzogaGlkZGVuOwp9Ci5yZXZpc2lv +bi1zaWRlYmFyLWhlYWRlciB7CiAgICBwYWRkaW5nOiAxNnB4OyBib3JkZXItYm90dG9tOiAxcHgg +c29saWQgdmFyKC0tYm9yZGVyLWNvbG9yKTsKICAgIGZvbnQtd2VpZ2h0OiA3MDA7IGZvbnQtc2l6 +ZTogMTRweDsgY29sb3I6IHZhcigtLXRleHQtaGVhZGluZyk7CiAgICBkaXNwbGF5OiBmbGV4OyBq +dXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47IGFsaWduLWl0ZW1zOiBjZW50ZXI7Cn0KLnJl +dmlzaW9uLXNpZGViYXItaGVhZGVyIGJ1dHRvbiB7CiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1iZy1j +YXJkLWFsdCk7IGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvcik7IGNvbG9yOiB2 +YXIoLS10ZXh0LXNlY29uZGFyeSk7IGN1cnNvcjogcG9pbnRlcjsKICAgIGZvbnQtc2l6ZTogMTFw +eDsgcGFkZGluZzogNHB4IDEycHg7IGJvcmRlci1yYWRpdXM6IDRweDsKfQoucmV2aXNpb24tc2lk +ZWJhci1oZWFkZXIgYnV0dG9uOmhvdmVyIHsgY29sb3I6IHZhcigtLXRleHQtaGVhZGluZyk7IGJh +Y2tncm91bmQ6IHZhcigtLWJnLWhvdmVyKTsgfQoucmV2aXNpb24tbGlzdCB7IGZsZXg6IDE7IG92 +ZXJmbG93LXk6IGF1dG87IHBhZGRpbmc6IDhweDsgfQoucmV2aXNpb24taXRlbSB7CiAgICBwYWRk +aW5nOiAxMHB4IDEycHg7IGJvcmRlci1yYWRpdXM6IDZweDsgY3Vyc29yOiBwb2ludGVyOyBtYXJn +aW4tYm90dG9tOiA0cHg7CiAgICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDsgdHJhbnNp +dGlvbjogYmFja2dyb3VuZCAwLjE1cywgYm9yZGVyLWNvbG9yIDAuMTVzOwp9Ci5yZXZpc2lvbi1p +dGVtOmhvdmVyIHsgYmFja2dyb3VuZDogdmFyKC0tYmctY2FyZC1hbHQpOyB9Ci5yZXZpc2lvbi1p +dGVtLmFjdGl2ZSB7IGJhY2tncm91bmQ6IHZhcigtLWJnLWNhcmQtYWx0KTsgYm9yZGVyLWNvbG9y +OiB2YXIoLS10ZXh0LWhlYWRpbmcpOyB9Ci5yZXZpc2lvbi1pdGVtIC5yZXYtbGFiZWwgewogICAg +Zm9udC13ZWlnaHQ6IDYwMDsgZm9udC1zaXplOiAxM3B4OyBjb2xvcjogdmFyKC0tdGV4dC1oZWFk +aW5nKTsKICAgIGRpc3BsYXk6IGZsZXg7IGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2Vlbjsg +YWxpZ24taXRlbXM6IGNlbnRlcjsKfQoucmV2aXNpb24taXRlbSAucmV2LWxhYmVsIC5yZXYtYmFk +Z2UgewogICAgZm9udC1zaXplOiAxMHB4OyBmb250LXdlaWdodDogNTAwOyBwYWRkaW5nOiAxcHgg +NnB4OyBib3JkZXItcmFkaXVzOiAzcHg7CiAgICBiYWNrZ3JvdW5kOiB2YXIoLS10ZXh0LWhlYWRp +bmcpOyBjb2xvcjogdmFyKC0tYmctcHJpbWFyeSk7Cn0KLnJldmlzaW9uLWl0ZW0gLnJldi1kYXRl +IHsgZm9udC1zaXplOiAxMXB4OyBjb2xvcjogdmFyKC0tdGV4dC1tdXRlZCk7IG1hcmdpbi10b3A6 +IDJweDsgfQoucmV2aXNpb24taXRlbSAucmV2LXVzZXIgeyBmb250LXNpemU6IDExcHg7IGNvbG9y +OiB2YXIoLS10ZXh0LXNlY29uZGFyeSk7IG1hcmdpbi10b3A6IDFweDsgfQoucmV2aXNpb24tbWFp +biB7CiAgICBkaXNwbGF5OiBmbGV4OyBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyBvdmVyZmxvdzog +aGlkZGVuOwp9Ci5yZXZpc2lvbi10b29sYmFyIHsKICAgIHBhZGRpbmc6IDEycHggMTZweDsgYm9y +ZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvcik7CiAgICBkaXNwbGF5OiBm +bGV4OyBnYXA6IDhweDsgYWxpZ24taXRlbXM6IGNlbnRlcjsgZmxleC1zaHJpbms6IDA7Cn0KLnJl +dmlzaW9uLXRvb2xiYXIgYnV0dG9uIHsKICAgIHBhZGRpbmc6IDZweCAxNHB4OyBib3JkZXI6IDFw +eCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3IpOyBiYWNrZ3JvdW5kOiB2YXIoLS1iZy1jYXJkKTsK +ICAgIGNvbG9yOiB2YXIoLS10ZXh0LXNlY29uZGFyeSk7IGJvcmRlci1yYWRpdXM6IDRweDsgY3Vy +c29yOiBwb2ludGVyOyBmb250LXNpemU6IDEycHg7CiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5k +IDAuMTVzLCBjb2xvciAwLjE1czsKfQoucmV2aXNpb24tdG9vbGJhciBidXR0b246aG92ZXIgeyBi +YWNrZ3JvdW5kOiB2YXIoLS1iZy1jYXJkLWFsdCk7IGNvbG9yOiB2YXIoLS10ZXh0LWhlYWRpbmcp +OyB9Ci5yZXZpc2lvbi10b29sYmFyIGJ1dHRvbi5hY3RpdmUgeyBiYWNrZ3JvdW5kOiB2YXIoLS10 +ZXh0LWhlYWRpbmcpOyBjb2xvcjogdmFyKC0tYmctcHJpbWFyeSk7IGJvcmRlci1jb2xvcjogdmFy +KC0tdGV4dC1oZWFkaW5nKTsgfQoucmV2aXNpb24tdG9vbGJhciAucmV2LWluZm8geyBtYXJnaW4t +bGVmdDogYXV0bzsgZm9udC1zaXplOiAxMXB4OyBjb2xvcjogdmFyKC0tdGV4dC1tdXRlZCk7IH0K +LnJldmlzaW9uLWNvbnRlbnQgewogICAgZmxleDogMTsgb3ZlcmZsb3cteTogYXV0bzsgcGFkZGlu +ZzogMjBweCAyNHB4OyBmb250LXNpemU6IDE0cHg7CiAgICBsaW5lLWhlaWdodDogMS43OyBjb2xv +cjogdmFyKC0tdGV4dC1wcmltYXJ5KTsKfQoucmV2aXNpb24tY29udGVudCBhIHsgY29sb3I6IHZh +cigtLXRleHQtaGVhZGluZyk7IH0KLnJldmlzaW9uLWNvbnRlbnQgaDEsIC5yZXZpc2lvbi1jb250 +ZW50IGgyLCAucmV2aXNpb24tY29udGVudCBoMywgLnJldmlzaW9uLWNvbnRlbnQgaDQgewogICAg +Y29sb3I6IHZhcigtLXRleHQtaGVhZGluZyk7Cn0KCi8qIFJldmlzaW9uLU1vZGFsOiBEYXktVGhl +bWUgT3ZlcnJpZGVzICgtLWJnLXByaW1hcnkgaXN0IGR1bmtlbCBpbiBiZWlkZW4gVGhlbWVzLCBk +YWhlciBleHBsaXppdCkgKi8KOnJvb3Q6bm90KFtkYXRhLXRoZW1lPSJuaWdodCJdKSAucmV2aXNp +b24tY29udGFpbmVyIHsgYmFja2dyb3VuZDogI2ZmZmZmZjsgfQo6cm9vdDpub3QoW2RhdGEtdGhl +bWU9Im5pZ2h0Il0pIC5yZXZpc2lvbi1zaWRlYmFyIHsgYmFja2dyb3VuZDogI2Y4ZjlmYTsgfQo6 +cm9vdDpub3QoW2RhdGEtdGhlbWU9Im5pZ2h0Il0pIC5yZXZpc2lvbi1pdGVtOmhvdmVyIHsgYmFj +a2dyb3VuZDogI2U4ZWNmMDsgfQo6cm9vdDpub3QoW2RhdGEtdGhlbWU9Im5pZ2h0Il0pIC5yZXZp +c2lvbi1pdGVtLmFjdGl2ZSB7IGJhY2tncm91bmQ6ICNlOGVjZjA7IGJvcmRlci1jb2xvcjogIzJF +NEE2MjsgfQo6cm9vdDpub3QoW2RhdGEtdGhlbWU9Im5pZ2h0Il0pIC5yZXZpc2lvbi10b29sYmFy +IGJ1dHRvbiB7IGJhY2tncm91bmQ6ICNmZmZmZmY7IGJvcmRlci1jb2xvcjogI2RkZDsgY29sb3I6 +ICM2NjY7IH0KOnJvb3Q6bm90KFtkYXRhLXRoZW1lPSJuaWdodCJdKSAucmV2aXNpb24tdG9vbGJh +ciBidXR0b246aG92ZXIgeyBiYWNrZ3JvdW5kOiAjZThlY2YwOyBjb2xvcjogIzMzMzsgfQo6cm9v +dDpub3QoW2RhdGEtdGhlbWU9Im5pZ2h0Il0pIC5yZXZpc2lvbi10b29sYmFyIGJ1dHRvbi5hY3Rp +dmUgeyBiYWNrZ3JvdW5kOiAjMkU0QTYyOyBjb2xvcjogI2ZmZmZmZjsgYm9yZGVyLWNvbG9yOiAj +MkU0QTYyOyB9Cjpyb290Om5vdChbZGF0YS10aGVtZT0ibmlnaHQiXSkgLnJldmlzaW9uLWl0ZW0g +LnJldi1sYWJlbCAucmV2LWJhZGdlIHsgYmFja2dyb3VuZDogIzJFNEE2MjsgY29sb3I6ICNmZmZm +ZmY7IH0KCi8qIC0tLSBBY3Rpb24gQnV0dG9ucyBpbSBEZXRhaWwgLS0tICovCi5kZXRhaWwtYWN0 +aW9ucyB7CiAgICBkaXNwbGF5OiBmbGV4OwogICAgZ2FwOiA4cHg7CiAgICBmbGV4LXNocmluazog +MDsKfQoKLmRldGFpbC1hY3Rpb25zIGJ1dHRvbiB7CiAgICBwYWRkaW5nOiA4cHggMTZweDsKICAg +IGJvcmRlcjogMnB4IHNvbGlkIHZhcigtLXRleHQtaGVhZGluZyk7CiAgICBiYWNrZ3JvdW5kOiB2 +YXIoLS1iZy1jYXJkKTsKICAgIGNvbG9yOiB2YXIoLS10ZXh0LWhlYWRpbmcpOwogICAgYm9yZGVy +LXJhZGl1czogNHB4OwogICAgY3Vyc29yOiBwb2ludGVyOwogICAgZm9udC13ZWlnaHQ6IDUwMDsK +ICAgIGZvbnQtc2l6ZTogMTNweDsKICAgIHRyYW5zaXRpb246IHZhcigtLXRyYW5zaXRpb24tc3Rk +KTsKICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7Cn0KCi5kZXRhaWwtYWN0aW9ucyBidXR0b246aG92 +ZXIgeyBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS10ZXh0LWhlYWRpbmcpOyBjb2xvcjogd2hpdGUg +IWltcG9ydGFudDsgfQoKLmRldGFpbC1hY3Rpb25zIGJ1dHRvbi5idG4tZGFuZ2VyIHsgYm9yZGVy +LWNvbG9yOiAjZGMzNTQ1OyBjb2xvcjogI2RjMzU0NTsgfQouZGV0YWlsLWFjdGlvbnMgYnV0dG9u +LmJ0bi1kYW5nZXI6aG92ZXIgeyBiYWNrZ3JvdW5kLWNvbG9yOiAjZGMzNTQ1OyBjb2xvcjogd2hp +dGUgIWltcG9ydGFudDsgfQoKLmRldGFpbC1hY3Rpb25zIGJ1dHRvbltzdHlsZSo9ImJvcmRlci1j +b2xvcjojM2I4MmY2Il06aG92ZXIgeyBiYWNrZ3JvdW5kLWNvbG9yOiAjM2I4MmY2OyB9Ci5kZXRh +aWwtYWN0aW9ucyBidXR0b25bc3R5bGUqPSJib3JkZXItY29sb3I6IzI4YTc0NSJdOmhvdmVyIHsg +YmFja2dyb3VuZC1jb2xvcjogIzI4YTc0NTsgfQouZGV0YWlsLWFjdGlvbnMgYnV0dG9uW3N0eWxl +Kj0iYm9yZGVyLWNvbG9yOiNkYzM1NDUiXTpob3ZlciB7IGJhY2tncm91bmQtY29sb3I6ICNkYzM1 +NDU7IH0KCi8qIC0tLSBNZWRpYSBTZWN0aW9uIC0tLSAqLwoubWVkaWEtc2VjdGlvbiB7CiAgICBt +YXJnaW4tdG9wOiAzMHB4OwogICAgcGFkZGluZy10b3A6IDIwcHg7CiAgICBib3JkZXItdG9wOiAx +cHggc29saWQgdmFyKC0tYm9yZGVyLWxpZ2h0KTsKfQoKLm1lZGlhcy1jb250YWluZXIgewogICAg +ZGlzcGxheTogZ3JpZDsKICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZmls +bCwgbWlubWF4KDI4MHB4LCAxZnIpKTsKICAgIGdhcDogMTVweDsKfQoKLm1lZGlhLWl0ZW0gewog +ICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYmctY2FyZC1hbHQpOwogICAgYm9yZGVyOiAxcHgg +c29saWQgdmFyKC0tYm9yZGVyLWxpZ2h0KTsKICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgIG92 +ZXJmbG93OiBoaWRkZW47CiAgICB0cmFuc2l0aW9uOiB2YXIoLS10cmFuc2l0aW9uLXN0ZCk7Cn0K +Ci5tZWRpYS1pdGVtOmhvdmVyIHsgYm94LXNoYWRvdzogMCA0cHggOHB4IHZhcigtLXNoYWRvdy1t +ZWRpdW0pOyB9CgoubWVkaWEtaW1hZ2UgewogICAgd2lkdGg6IDEwMCU7CiAgICBoZWlnaHQ6IDIw +MHB4OwogICAgb2JqZWN0LWZpdDogY292ZXI7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1i +b3JkZXItbGlnaHQpOwogICAgY3Vyc29yOiBwb2ludGVyOwp9CgoubWVkaWEtY29udGVudCB7IHBh +ZGRpbmc6IDEycHg7IH0KCi5tZWRpYS10eXBlLWJhZGdlIHsKICAgIGRpc3BsYXk6IGlubGluZS1i +bG9jazsKICAgIGZvbnQtc2l6ZTogMTFweDsKICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICBwYWRk +aW5nOiAzcHggOHB4OwogICAgYm9yZGVyLXJhZGl1czogMnB4OwogICAgbWFyZ2luLWJvdHRvbTog +OHB4Owp9CgoubWVkaWEtdHlwZS1iYWRnZS5pbWFnZSB7IGJhY2tncm91bmQtY29sb3I6ICNkNGVk +ZGE7IGNvbG9yOiAjMTU1NzI0OyB9Ci5tZWRpYS10eXBlLWJhZGdlLnBkZiB7IGJhY2tncm91bmQt +Y29sb3I6ICNmZmYzY2Q7IGNvbG9yOiAjODU2NDA0OyB9Ci5tZWRpYS10eXBlLWJhZGdlLnZpZGVv +IHsgYmFja2dyb3VuZC1jb2xvcjogI2NmZTJmZjsgY29sb3I6ICMwODQyOTg7IH0KW2RhdGEtdGhl +bWU9Im5pZ2h0Il0gLm1lZGlhLXR5cGUtYmFkZ2UuaW1hZ2UgeyBiYWNrZ3JvdW5kLWNvbG9yOiAj +MWE0MDI4OyBjb2xvcjogI2EzZTRiODsgfQpbZGF0YS10aGVtZT0ibmlnaHQiXSAubWVkaWEtdHlw +ZS1iYWRnZS5wZGYgeyBiYWNrZ3JvdW5kLWNvbG9yOiAjNGEzYTFhOyBjb2xvcjogI2YwZDA4MDsg +fQpbZGF0YS10aGVtZT0ibmlnaHQiXSAubWVkaWEtdHlwZS1iYWRnZS52aWRlbyB7IGJhY2tncm91 +bmQtY29sb3I6ICMxYTJhNGE7IGNvbG9yOiAjODBiMGYwOyB9CgoubWVkaWEtdGl0bGUgeyBmb250 +LXdlaWdodDogNjAwOyBjb2xvcjogdmFyKC0tdGV4dC1oZWFkaW5nKTsgbWFyZ2luLWJvdHRvbTog +NXB4OyBmb250LXNpemU6IDE0cHg7IH0KLm1lZGlhLWRlc2NyaXB0aW9uIHsgZm9udC1zaXplOiAx +M3B4OyBjb2xvcjogdmFyKC0tdGV4dC1zZWNvbmRhcnkpOyBsaW5lLWhlaWdodDogMS40OyB9Cgov +KiAtLS0gRWRpdG9yIE1vZGFsIC0tLSAqLwouZWRpdG9yLW1vZGFsIHsKICAgIGRpc3BsYXk6IG5v +bmU7CiAgICBwb3NpdGlvbjogZml4ZWQ7CiAgICB0b3A6IDA7IGxlZnQ6IDA7CiAgICB3aWR0aDog +MTAwJTsgaGVpZ2h0OiAxMDAlOwogICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLDAsMCwwLjQp +OwogICAgei1pbmRleDogMTAwMDsKICAgIG92ZXJmbG93OiBhdXRvOwogICAgcGFkZGluZzogMzBw +eCAyMHB4Owp9CgouZWRpdG9yLW1vZGFsLmFjdGl2ZSB7CiAgICBkaXNwbGF5OiBmbGV4OwogICAg +YWxpZ24taXRlbXM6IGNlbnRlcjsKICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwp9CgouZWRp +dG9yLW1vZGFsLWNvbnRlbnQgewogICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYmctY2FyZCk7 +CiAgICB3aWR0aDogOTAlOwogICAgbWF4LXdpZHRoOiAxNDAwcHg7CiAgICBoZWlnaHQ6IDkyJTsK +ICAgIGRpc3BsYXk6IGZsZXg7CiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgYm9yZGVy +LXJhZGl1czogOHB4OwogICAgYm94LXNoYWRvdzogdmFyKC0tc2hhZG93LW1vZGFsKTsKfQoKLmVk +aXRvci1tb2RhbC1oZWFkZXIgewogICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYmctcHJpbWFy +eSk7CiAgICBjb2xvcjogd2hpdGU7CiAgICBwYWRkaW5nOiAxNXB4IDMwcHg7CiAgICBkaXNwbGF5 +OiBmbGV4OwogICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgYWxpZ24taXRl +bXM6IGNlbnRlcjsKICAgIGJvcmRlci1yYWRpdXM6IDhweCA4cHggMCAwOwp9CgouZWRpdG9yLW1v +ZGFsLWhlYWRlciBoMiB7IG1hcmdpbjogMDsgZm9udC1zaXplOiAyMHB4OyB9CgouZWRpdG9yLW1v +ZGFsLWhlYWRlciBidXR0b24gewogICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7CiAg +ICBjb2xvcjogd2hpdGU7CiAgICBib3JkZXI6IDFweCBzb2xpZCB3aGl0ZTsKICAgIHBhZGRpbmc6 +IDhweCAxNXB4OwogICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgY3Vyc29yOiBwb2ludGVyOwog +ICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgIHRyYW5zaXRpb246IHZhcigtLXRyYW5zaXRpb24tc3Rk +KTsKfQoKLmVkaXRvci1tb2RhbC1oZWFkZXIgYnV0dG9uOmhvdmVyIHsgYmFja2dyb3VuZC1jb2xv +cjogd2hpdGU7IGNvbG9yOiAjMkU0QTYyOyB9CgouZWRpdG9yLW1ldGEtcm93IHsKICAgIGJhY2tn +cm91bmQtY29sb3I6IHZhcigtLWJnLWNhcmQtYWx0KTsKICAgIHBhZGRpbmc6IDEwcHggMzBweDsK +ICAgIGRpc3BsYXk6IGZsZXg7CiAgICBnYXA6IDEycHg7CiAgICBhbGlnbi1pdGVtczogY2VudGVy +OwogICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1saWdodCk7CiAgICBm +bGV4LXdyYXA6IG5vd3JhcDsKICAgIG92ZXJmbG93LXg6IGF1dG87Cn0KCi5lZGl0b3ItbWV0YS1y +b3cgbGFiZWwgeyBmb250LXdlaWdodDogNjAwOyBjb2xvcjogdmFyKC0tdGV4dC1oZWFkaW5nKTsg +Zm9udC1zaXplOiAxM3B4OyB3aGl0ZS1zcGFjZTogbm93cmFwOyB9CgouZWRpdG9yLW1ldGEtcm93 +IGlucHV0LAouZWRpdG9yLW1ldGEtcm93IHNlbGVjdCB7CiAgICBwYWRkaW5nOiA2cHggMTBweDsK +ICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1zdHJvbmcpOwogICAgYm9yZGVyLXJh +ZGl1czogNHB4OwogICAgZm9udC1zaXplOiAxM3B4OwogICAgYmFja2dyb3VuZC1jb2xvcjogdmFy +KC0tYmctaW5wdXQpOwogICAgY29sb3I6IHZhcigtLXRleHQtcHJpbWFyeSk7Cn0KCi5lZGl0b3It +bWV0YS1yb3cgaW5wdXQjZWRpdG9yVGl0ZWwgeyBmbGV4OiAxOyBtaW4td2lkdGg6IDE2MHB4OyB9 +Ci5lZGl0b3ItbWV0YS1yb3cgc2VsZWN0I2VkaXRvclBhcmVudCB7IG1heC13aWR0aDogMTYwcHg7 +IH0KCi5lZGl0b3ItbW9kYWwtYm9keSB7CiAgICBmbGV4OiAxOwogICAgb3ZlcmZsb3cteTogYXV0 +bzsKICAgIGRpc3BsYXk6IGZsZXg7CiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwp9CgouZWRp +dG9yLXRvb2xiYXIgewogICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYmctdG9vbGJhcik7CiAg +ICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLXN0cm9uZyk7CiAgICBwYWRk +aW5nOiAwOwogICAgZGlzcGxheTogZmxleDsKICAgIGZsZXgtd3JhcDogd3JhcDsKfQoKLmVkaXRv +ci10b29sYmFyIGJ1dHRvbiB7CiAgICBwYWRkaW5nOiA2cHggMTBweDsKICAgIGJvcmRlcjogbm9u +ZTsKICAgIGJhY2tncm91bmQ6IHZhcigtLWJnLXRvb2xiYXIpOwogICAgY29sb3I6IHZhcigtLXRl +eHQtcHJpbWFyeSk7CiAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICBmb250LXdlaWdodDogNDAwOwog +ICAgZm9udC1zaXplOiAxM3B4OwogICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzOwogICAgYm9yZGVy +LXJpZ2h0OiAxcHggc29saWQgdmFyKC0tYm9yZGVyLXN0cm9uZyk7CiAgICBsaW5lLWhlaWdodDog +MTsKICAgIG1pbi1oZWlnaHQ6IDMycHg7Cn0KCi5lZGl0b3ItdG9vbGJhciBidXR0b246aG92ZXIg +eyBiYWNrZ3JvdW5kOiB2YXIoLS1ib3JkZXItbGlnaHQpOyB9CltkYXRhLXRoZW1lPSJuaWdodCJd +IC5lZGl0b3ItdG9vbGJhciBidXR0b24gaW1nIHsgZmlsdGVyOiBpbnZlcnQoMSkgYnJpZ2h0bmVz +cygxLjUpOyB9CgouZWRpdG9yLXRvb2xiYXIgc2VsZWN0IHsKICAgIHBhZGRpbmc6IDZweCA4cHg7 +CiAgICBib3JkZXI6IG5vbmU7CiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1iZy10b29sYmFyKTsKICAg +IGNvbG9yOiB2YXIoLS10ZXh0LXByaW1hcnkpOwogICAgbWFyZ2luOiAwIDRweDsKICAgIGhlaWdo +dDogMzJweDsKICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICNjMGMwYzA7Cn0KCi50b29sYmFy +LXNlcGFyYXRvciB7CiAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAjYzBjMGMwOwogICAgbWFy +Z2luOiAwIDRweDsKICAgIGhlaWdodDogMzJweDsKICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsK +fQoKLmNvbG9yLXN3YXRjaCB7CiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICB3aWR0aDog +MTZweDsgaGVpZ2h0OiAxNnB4OwogICAgYm9yZGVyOiAxcHggc29saWQgIzk5OTsKICAgIGJvcmRl +ci1yYWRpdXM6IDJweDsKICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7Cn0KCi5lZGl0b3ItYXJl +YSB7IGZsZXg6IDE7IHBhZGRpbmc6IDIwcHg7IG92ZXJmbG93LXk6IGF1dG87IH0KCi5lZGl0b3It +aW5wdXQgewogICAgd2lkdGg6IDEwMCU7CiAgICBoZWlnaHQ6IDEwMCU7CiAgICBtaW4taGVpZ2h0 +OiA0MDBweDsKICAgIHBhZGRpbmc6IDIwcHg7CiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1i +b3JkZXItY29sb3IpOwogICAgZm9udC1mYW1pbHk6IEFyaWFsLCBzYW5zLXNlcmlmOwogICAgZm9u +dC1zaXplOiAxNXB4OwogICAgbGluZS1oZWlnaHQ6IDEuNzsKICAgIGJvcmRlci1yYWRpdXM6IDRw +eDsKICAgIG91dGxpbmU6IG5vbmU7CiAgICByZXNpemU6IG5vbmU7CiAgICB3aGl0ZS1zcGFjZTog +bm9ybWFsOwogICAgd29yZC13cmFwOiBicmVhay13b3JkOwogICAgb3ZlcmZsb3cteTogYXV0bzsK +ICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJnLWlucHV0KTsKICAgIGNvbG9yOiB2YXIoLS10 +ZXh0LXByaW1hcnkpOwp9CgouZWRpdG9yLWlucHV0OmZvY3VzIHsgYm9yZGVyLWNvbG9yOiB2YXIo +LS10ZXh0LWhlYWRpbmcpOyBib3gtc2hhZG93OiAwIDAgNXB4IHJnYmEoNDYsIDc0LCA5OCwgMC4y +KTsgfQoKLmVkaXRvci1pbnB1dCBoMSB7CiAgICBmb250LXNpemU6IDI0cHg7IGNvbG9yOiB2YXIo +LS10ZXh0LWhlYWRpbmcpOyBmb250LXdlaWdodDogNzAwOwogICAgbWFyZ2luOiAyNHB4IDAgMTJw +eCAwOyBwYWRkaW5nOiAxMnB4IDA7IGJvcmRlci1ib3R0b206IDNweCBzb2xpZCB2YXIoLS10ZXh0 +LWhlYWRpbmcpOyBkaXNwbGF5OiBibG9jazsKfQouZWRpdG9yLWlucHV0IGgyIHsKICAgIGZvbnQt +c2l6ZTogMjBweDsgY29sb3I6IHZhcigtLXRleHQtaGVhZGluZyk7IGZvbnQtd2VpZ2h0OiA3MDA7 +CiAgICBtYXJnaW46IDIwcHggMCAxMHB4IDA7IHBhZGRpbmc6IDEwcHggMDsgYm9yZGVyLWJvdHRv +bTogMnB4IHNvbGlkIHZhcigtLWJvcmRlci1saWdodCk7IGRpc3BsYXk6IGJsb2NrOwp9Ci5lZGl0 +b3ItaW5wdXQgaDMgewogICAgZm9udC1zaXplOiAxN3B4OyBjb2xvcjogdmFyKC0tdGV4dC1oZWFk +aW5nKTsgZm9udC13ZWlnaHQ6IDcwMDsKICAgIG1hcmdpbjogMTZweCAwIDhweCAwOyBwYWRkaW5n +OiA2cHggMDsgZGlzcGxheTogYmxvY2s7Cn0KLmVkaXRvci1pbnB1dCBoNCB7CiAgICBmb250LXNp +emU6IDE1cHg7IGNvbG9yOiB2YXIoLS10ZXh0LWhlYWRpbmcpOyBmb250LXdlaWdodDogNjAwOwog +ICAgbWFyZ2luOiAxMnB4IDAgNnB4IDA7IGRpc3BsYXk6IGJsb2NrOwp9CgouZWRpdG9yLWlucHV0 +IHAgeyBtYXJnaW46IDAgMCAwLjRlbSAwOyB9Ci5lZGl0b3ItaW5wdXQgKiB7IGZvbnQtZmFtaWx5 +OiBBcmlhbCwgc2Fucy1zZXJpZjsgbGluZS1oZWlnaHQ6IDEuNjsgYm94LXNpemluZzogYm9yZGVy +LWJveDsgfQoKLmVkaXRvci1mb290ZXIgewogICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYmct +Y2FyZC1hbHQpOwogICAgcGFkZGluZzogMTVweCAzMHB4OwogICAgZGlzcGxheTogZmxleDsKICAg +IGdhcDogMTBweDsKICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7CiAgICBib3JkZXItdG9w +OiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG9yKTsKICAgIGJvcmRlci1yYWRpdXM6IDAgMCA4 +cHggOHB4Owp9CgouZWRpdG9yLWZvb3RlciBidXR0b24gewogICAgcGFkZGluZzogMTBweCAyMHB4 +OwogICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tdGV4dC1oZWFkaW5nKTsKICAgIGJhY2tncm91 +bmQtY29sb3I6IHZhcigtLWJnLWNhcmQpOwogICAgY29sb3I6IHZhcigtLXRleHQtaGVhZGluZyk7 +CiAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICBmb250LXdl +aWdodDogNjAwOwogICAgdHJhbnNpdGlvbjogdmFyKC0tdHJhbnNpdGlvbi1zdGQpOwp9CgouZWRp +dG9yLWZvb3RlciBidXR0b246aG92ZXIgeyBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS10ZXh0LWhl +YWRpbmcpOyBjb2xvcjogd2hpdGU7IH0KCi5lZGl0b3ItZm9vdGVyIGJ1dHRvbi5zYXZlLWJ0biB7 +IGJhY2tncm91bmQtY29sb3I6ICMyZDlkNzg7IGNvbG9yOiB3aGl0ZTsgYm9yZGVyLWNvbG9yOiAj +MmQ5ZDc4OyB9Ci5lZGl0b3ItZm9vdGVyIGJ1dHRvbi5zYXZlLWJ0bjpob3ZlciB7IGJhY2tncm91 +bmQtY29sb3I6ICMxZTdhNWY7IGJvcmRlci1jb2xvcjogIzFlN2E1ZjsgfQoKLyogLS0tIE1lZGlh +IFVwbG9hZCBpbSBFZGl0b3IgLS0tICovCi5tZWRpYS11cGxvYWQtem9uZSB7CiAgICBib3JkZXI6 +IDJweCBkYXNoZWQgdmFyKC0tYm9yZGVyLXN0cm9uZyk7CiAgICBib3JkZXItcmFkaXVzOiA4cHg7 +CiAgICBwYWRkaW5nOiAyMHB4OwogICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgbWFyZ2luOiAx +MHB4IDA7CiAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICB0cmFuc2l0aW9uOiB2YXIoLS10cmFuc2l0 +aW9uLXN0ZCk7CiAgICBjb2xvcjogdmFyKC0tdGV4dC1tdXRlZCk7Cn0KCi5tZWRpYS11cGxvYWQt +em9uZTpob3ZlciwgLm1lZGlhLXVwbG9hZC16b25lLmRyYWdvdmVyIHsKICAgIGJvcmRlci1jb2xv +cjogdmFyKC0tdGV4dC1oZWFkaW5nKTsKICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJnLWhv +dmVyKTsKICAgIGNvbG9yOiB2YXIoLS10ZXh0LWhlYWRpbmcpOwp9CgovKiAtLS0gTWVkaWEgTW9k +YWwgKHplbnRyaWVydCwgbmljaHQgVm9sbGJpbGQpIC0tLSAqLwoubWVkaWEtbW9kYWwgewogICAg +ZGlzcGxheTogbm9uZTsKICAgIHBvc2l0aW9uOiBmaXhlZDsKICAgIHotaW5kZXg6IDEwMDAwOwog +ICAgbGVmdDogMDsgdG9wOiAwOwogICAgd2lkdGg6IDEwMCU7IGhlaWdodDogMTAwJTsKICAgIGJh +Y2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC41KTsKfQoKLm1lZGlhLW1vZGFsLWNvbnRl +bnQgewogICAgcG9zaXRpb246IGFic29sdXRlOwogICAgdG9wOiA1MCU7IGxlZnQ6IDUwJTsKICAg +IHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpOwogICAgYmFja2dyb3VuZDogdmFyKC0t +YmctY2FyZCwgI2ZmZik7CiAgICBib3JkZXItcmFkaXVzOiAxMHB4OwogICAgYm94LXNoYWRvdzog +dmFyKC0tc2hhZG93LW1vZGFsKTsKICAgIHBhZGRpbmc6IDIwcHg7CiAgICBtYXgtd2lkdGg6IDkw +MHB4OwogICAgd2lkdGg6IDkwJTsKICAgIG1heC1oZWlnaHQ6IDg1dmg7CiAgICBvdmVyZmxvdzog +aGlkZGVuOwogICAgZGlzcGxheTogZmxleDsKICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAg +ICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgZ2FwOiAxMnB4Owp9CgoubWVkaWEtbW9kYWwtY2xv +c2UgewogICAgcG9zaXRpb246IGFic29sdXRlOwogICAgdG9wOiAxMHB4OyByaWdodDogMTBweDsK +ICAgIGJhY2tncm91bmQ6IHZhcigtLWJnLWNhcmQtYWx0LCAjZWVlKTsKICAgIGNvbG9yOiB2YXIo +LS10ZXh0LXNlY29uZGFyeSwgIzY2Nik7CiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3Jk +ZXItY29sb3IsICNkZGQpOwogICAgZm9udC1zaXplOiAxMnB4OyBmb250LXdlaWdodDogNjAwOwog +ICAgY3Vyc29yOiBwb2ludGVyOwogICAgcGFkZGluZzogNXB4IDE0cHg7CiAgICBib3JkZXItcmFk +aXVzOiA0cHg7CiAgICB0cmFuc2l0aW9uOiB2YXIoLS10cmFuc2l0aW9uLXN0ZCk7CiAgICB6LWlu +ZGV4OiAxMDAwMTsKfQoKLm1lZGlhLW1vZGFsLWNsb3NlOmhvdmVyIHsgYmFja2dyb3VuZDogdmFy +KC0tdGV4dC1oZWFkaW5nKTsgY29sb3I6IHdoaXRlOyBib3JkZXItY29sb3I6IHZhcigtLXRleHQt +aGVhZGluZyk7IH0KCiNtZWRpYU1vZGFsQ29udGFpbmVyIHsKICAgIG1heC13aWR0aDogMTAwJTsg +d2lkdGg6IDEwMCU7CiAgICBkaXNwbGF5OiBmbGV4OyBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyBh +bGlnbi1pdGVtczogY2VudGVyOyBnYXA6IDEwcHg7CiAgICBmbGV4OiAxOyBtaW4taGVpZ2h0OiAw +Owp9CiNtZWRpYU1vZGFsQ29udGFpbmVyIGltZyB7IG1heC13aWR0aDogMTAwJTsgbWF4LWhlaWdo +dDogNTV2aDsgb2JqZWN0LWZpdDogY29udGFpbjsgYm9yZGVyLXJhZGl1czogNnB4OyBjdXJzb3I6 +IHpvb20taW47IH0KI21lZGlhTW9kYWxDb250YWluZXIgaW1nLnpvb21lZCB7IG1heC1oZWlnaHQ6 +IG5vbmU7IG1heC13aWR0aDogbm9uZTsgY3Vyc29yOiB6b29tLW91dDsgfQoubWVkaWEtbW9kYWwt +dG9vbGJhciB7CiAgICBkaXNwbGF5OiBmbGV4OyBnYXA6IDhweDsgYWxpZ24taXRlbXM6IGNlbnRl +cjsganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IGZsZXgtd3JhcDogd3JhcDsKICAgIHBhZGRpbmct +dG9wOiA4cHg7IGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItbGlnaHQsICNlMGUw +ZTApOwogICAgd2lkdGg6IDEwMCU7Cn0KLm1lZGlhLW1vZGFsLXRvb2xiYXIgYnV0dG9uLCAubWVk +aWEtbW9kYWwtdG9vbGJhciBhIHsKICAgIHBhZGRpbmc6IDZweCAxNHB4OyBib3JkZXItcmFkaXVz +OiA0cHg7IGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1zdHJvbmcsICNjMGMwYzApOwog +ICAgYmFja2dyb3VuZDogdmFyKC0tYmctY2FyZC1hbHQsICNmMGYwZjApOyBjb2xvcjogdmFyKC0t +dGV4dC1wcmltYXJ5LCAjMzMzKTsgY3Vyc29yOiBwb2ludGVyOyBmb250LXNpemU6IDEycHg7CiAg +ICB0ZXh0LWRlY29yYXRpb246IG5vbmU7IHRyYW5zaXRpb246IHZhcigtLXRyYW5zaXRpb24tc3Rk +KTsKfQoubWVkaWEtbW9kYWwtdG9vbGJhciBidXR0b246aG92ZXIsIC5tZWRpYS1tb2RhbC10b29s +YmFyIGE6aG92ZXIgeyBiYWNrZ3JvdW5kOiB2YXIoLS10ZXh0LWhlYWRpbmcpOyBjb2xvcjogd2hp +dGU7IGJvcmRlci1jb2xvcjogdmFyKC0tdGV4dC1oZWFkaW5nKTsgfQoubWVkaWEtbW9kYWwtdGl0 +bGUgewogICAgY29sb3I6IHZhcigtLXRleHQtaGVhZGluZywgIzJFNEE2Mik7IGZvbnQtc2l6ZTog +MTRweDsgZm9udC13ZWlnaHQ6IDYwMDsKICAgIHRleHQtYWxpZ246IGNlbnRlcjsgd2lkdGg6IDEw +MCU7IHBhZGRpbmctYm90dG9tOiA4cHg7CiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFy +KC0tYm9yZGVyLWxpZ2h0LCAjZTBlMGUwKTsKICAgIG92ZXJmbG93OiBoaWRkZW47IHRleHQtb3Zl +cmZsb3c6IGVsbGlwc2lzOyB3aGl0ZS1zcGFjZTogbm93cmFwOwp9CgovKiAtLS0gTm90aWZpY2F0 +aW9uIFRvYXN0IC0tLSAqLwoudG9hc3QgewogICAgcG9zaXRpb246IGZpeGVkOwogICAgYm90dG9t +OiA4MHB4OwogICAgcmlnaHQ6IDMwcHg7CiAgICBwYWRkaW5nOiAxMnB4IDIwcHg7CiAgICBib3Jk +ZXItcmFkaXVzOiA2cHg7CiAgICBjb2xvcjogd2hpdGU7CiAgICBmb250LXNpemU6IDE0cHg7CiAg +ICB6LWluZGV4OiA5OTk5OwogICAgb3BhY2l0eTogMDsKICAgIHRyYW5zZm9ybTogdHJhbnNsYXRl +WSgyMHB4KTsKICAgIHRyYW5zaXRpb246IHZhcigtLXRyYW5zaXRpb24tc3RkKTsKICAgIG1heC13 +aWR0aDogNDAwcHg7CiAgICBib3gtc2hhZG93OiAwIDRweCAxMnB4IHJnYmEoMCwwLDAsMC4zKTsK +fQoKLnRvYXN0LnNob3cgeyBvcGFjaXR5OiAxOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7IH0K +LnRvYXN0LnN1Y2Nlc3MgeyBiYWNrZ3JvdW5kLWNvbG9yOiAjMmQ5ZDc4OyB9Ci50b2FzdC5lcnJv +ciB7IGJhY2tncm91bmQtY29sb3I6ICNkYzM1NDU7IH0KLnRvYXN0LmluZm8geyBiYWNrZ3JvdW5k +LWNvbG9yOiAjMkU0QTYyOyB9Ci50b2FzdC53YXJuaW5nIHsgYmFja2dyb3VuZC1jb2xvcjogI2U2 +N2UyMjsgfQoKLyogLS0tIFNhdmUtSGlnaGxpZ2h0IEFuaW1hdGlvbiAtLS0gKi8KQGtleWZyYW1l +cyBoaWdobGlnaHRGYWRlIHsKICAgIDAlICAgeyBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDQ1LCAx +NTcsIDEyMCwgMC4zNSk7IH0KICAgIDEwMCUgeyBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVu +dDsgfQp9Ci5kb2N1bWVudC1pdGVtLmhpZ2hsaWdodC1zYXZlZCB7CiAgICBhbmltYXRpb246IGhp +Z2hsaWdodEZhZGUgMS44cyBlYXNlLW91dDsKfQoKLyogLS0tIEZvb3RlciAtLS0gKi8KZm9vdGVy +IHsKICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJnLXByaW1hcnkpOwogICAgYm9yZGVyLXRv +cDogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvcik7CiAgICBwYWRkaW5nOiAxMnB4IDMwcHg7 +CiAgICBkaXNwbGF5OiBmbGV4OwogICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwog +ICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgIGZvbnQtc2l6ZTogMTJweDsKICAgIGNvbG9yOiB3 +aGl0ZTsKICAgIGZsZXgtc2hyaW5rOiAwOwogICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xv +ciAwLjNzOwp9Cgpmb290ZXIgYSB7IGNvbG9yOiByZ2JhKDI1NSwyNTUsMjU1LDAuOCk7IHRleHQt +ZGVjb3JhdGlvbjogbm9uZTsgY3Vyc29yOiBwb2ludGVyOyB9CmZvb3RlciBhOmhvdmVyIHsgY29s +b3I6IHdoaXRlOyB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsgfQouZm9vdGVyLXJpZ2h0IHsg +ZGlzcGxheTogZmxleDsgZ2FwOiAxNnB4OyBhbGlnbi1pdGVtczogY2VudGVyOyB9Ci5mb290ZXIt +c3luYy1zdGF0dXMgeyBmb250LXNpemU6IDExcHg7IG9wYWNpdHk6IDA7IHRyYW5zaXRpb246IG9w +YWNpdHkgMS4ycyBlYXNlLWluLW91dDsgbWluLXdpZHRoOiAxMjBweDsgdGV4dC1hbGlnbjogcmln +aHQ7IGNvbG9yOiByZ2JhKDI1NSwyNTUsMjU1LDAuNyk7IH0KLmZvb3Rlci1zeW5jLXN0YXR1cy52 +aXNpYmxlIHsgb3BhY2l0eTogMTsgfQoKLmZvb3Rlci12ZXJzaW9uIHsgY3Vyc29yOiBwb2ludGVy +OyBvcGFjaXR5OiAwLjg7IHRyYW5zaXRpb246IG9wYWNpdHkgMC4yczsgfQouZm9vdGVyLXZlcnNp +b246aG92ZXIgeyBvcGFjaXR5OiAxOyB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsgfQoKLyog +LS0tIFZlcnNpb25zaGlzdG9yaWUgTW9kYWwgLS0tICovCi52ZXJzaW9uLW1vZGFsIHsKICAgIGRp +c3BsYXk6IG5vbmU7CiAgICBwb3NpdGlvbjogZml4ZWQ7CiAgICB0b3A6IDA7IGxlZnQ6IDA7CiAg +ICB3aWR0aDogMTAwJTsgaGVpZ2h0OiAxMDAlOwogICAgYmFja2dyb3VuZDogcmdiYSgwLDAsMCww +LjUpOwogICAgei1pbmRleDogMjAwMDsKfQoKLnZlcnNpb24tbW9kYWwuYWN0aXZlIHsgZGlzcGxh +eTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IH0K +Ci52ZXJzaW9uLW1vZGFsLWNvbnRlbnQgewogICAgYmFja2dyb3VuZDogdmFyKC0tYmctY2FyZCk7 +CiAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICB3aWR0aDogNTIwcHg7CiAgICBtYXgtd2lkdGg6 +IDk1JTsKICAgIG1heC1oZWlnaHQ6IDgwdmg7CiAgICBvdmVyZmxvdy15OiBhdXRvOwogICAgYm94 +LXNoYWRvdzogdmFyKC0tc2hhZG93LW1vZGFsKTsKfQoKLnZlcnNpb24tbW9kYWwtaGVhZGVyIHsK +ICAgIGJhY2tncm91bmQ6IHZhcigtLWJnLXByaW1hcnkpOwogICAgY29sb3I6IHdoaXRlOwogICAg +cGFkZGluZzogMTVweCAyMHB4OwogICAgYm9yZGVyLXJhZGl1czogOHB4IDhweCAwIDA7CiAgICBk +aXNwbGF5OiBmbGV4OyBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47IGFsaWduLWl0ZW1z +OiBjZW50ZXI7CiAgICBmb250LXdlaWdodDogNjAwOyBmb250LXNpemU6IDE2cHg7Cn0KCi52ZXJz +aW9uLW1vZGFsLWhlYWRlciBidXR0b24gewogICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7IGJv +cmRlcjogMXB4IHNvbGlkIHdoaXRlOyBjb2xvcjogd2hpdGU7CiAgICBwYWRkaW5nOiA0cHggMTJw +eDsgYm9yZGVyLXJhZGl1czogNHB4OyBjdXJzb3I6IHBvaW50ZXI7Cn0KCi52ZXJzaW9uLW1vZGFs +LWJvZHkgeyBwYWRkaW5nOiAyMHB4OyB9CgoudmVyc2lvbi1pdGVtIHsKICAgIGRpc3BsYXk6IGZs +ZXg7CiAgICBnYXA6IDEycHg7CiAgICBwYWRkaW5nOiAxMHB4IDA7CiAgICBib3JkZXItYm90dG9t +OiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG9yKTsKICAgIGZvbnQtc2l6ZTogMTNweDsKICAg +IGNvbG9yOiB2YXIoLS10ZXh0LXByaW1hcnkpOwp9CgoudmVyc2lvbi1pdGVtOmxhc3QtY2hpbGQg +eyBib3JkZXItYm90dG9tOiBub25lOyB9CgoudmVyc2lvbi1iYWRnZSB7CiAgICBmbGV4LXNocmlu +azogMDsKICAgIHBhZGRpbmc6IDNweCAxMHB4OwogICAgYmFja2dyb3VuZDogdmFyKC0tYmctYWN0 +aXZlKTsKICAgIGNvbG9yOiB2YXIoLS10ZXh0LWhlYWRpbmcpOwogICAgYm9yZGVyLXJhZGl1czog +NHB4OwogICAgZm9udC13ZWlnaHQ6IDcwMDsKICAgIGZvbnQtc2l6ZTogMTJweDsKICAgIG1pbi13 +aWR0aDogNDhweDsKICAgIHRleHQtYWxpZ246IGNlbnRlcjsKfQoKLnZlcnNpb24tYmFkZ2UuY3Vy +cmVudCB7IGJhY2tncm91bmQ6ICMyZDlkNzg7IGNvbG9yOiB3aGl0ZTsgfQoKLnZlcnNpb24taW5m +byB7IGZsZXg6IDE7IH0KLnZlcnNpb24tZGF0ZSB7IGZvbnQtc2l6ZTogMTFweDsgY29sb3I6IHZh +cigtLXRleHQtbXV0ZWQpOyBtYXJnaW4tdG9wOiAycHg7IH0KCi8qIC0tLSBGcmVpZ2FiZS1VZWJl +cnNpY2h0IE1vZGFsIC0tLSAqLwouaW1wcmludC1tb2RhbCB7CiAgICBkaXNwbGF5OiBub25lOwog +ICAgcG9zaXRpb246IGZpeGVkOwogICAgdG9wOiAwOyBsZWZ0OiAwOwogICAgd2lkdGg6IDEwMCU7 +IGhlaWdodDogMTAwJTsKICAgIGJhY2tncm91bmQ6IHJnYmEoMCwwLDAsMC41KTsKICAgIHotaW5k +ZXg6IDIwMDA7Cn0KCi5pbXByaW50LW1vZGFsLmFjdGl2ZSB7IGRpc3BsYXk6IGZsZXg7IGFsaWdu +LWl0ZW1zOiBjZW50ZXI7IGp1c3RpZnktY29udGVudDogY2VudGVyOyB9CgouaW1wcmludC1jb250 +ZW50IHsKICAgIGJhY2tncm91bmQ6IHZhcigtLWJnLWNhcmQpOwogICAgYm9yZGVyLXJhZGl1czog +OHB4OwogICAgd2lkdGg6IDcwMHB4OwogICAgbWF4LXdpZHRoOiA5NSU7CiAgICBtYXgtaGVpZ2h0 +OiA4NXZoOwogICAgb3ZlcmZsb3cteTogYXV0bzsKICAgIGJveC1zaGFkb3c6IHZhcigtLXNoYWRv +dy1tb2RhbCk7Cn0KCi5pbXByaW50LWhlYWRlciB7CiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1iZy1w +cmltYXJ5KTsKICAgIGNvbG9yOiB3aGl0ZTsKICAgIHBhZGRpbmc6IDE1cHggMjBweDsKICAgIGJv +cmRlci1yYWRpdXM6IDhweCA4cHggMCAwOwogICAgZGlzcGxheTogZmxleDsganVzdGlmeS1jb250 +ZW50OiBzcGFjZS1iZXR3ZWVuOyBhbGlnbi1pdGVtczogY2VudGVyOwogICAgZm9udC13ZWlnaHQ6 +IDYwMDsgZm9udC1zaXplOiAxNnB4Owp9CgouaW1wcmludC1oZWFkZXIgYnV0dG9uIHsKICAgIGJh +Y2tncm91bmQ6IHRyYW5zcGFyZW50OyBib3JkZXI6IDFweCBzb2xpZCB3aGl0ZTsgY29sb3I6IHdo +aXRlOwogICAgcGFkZGluZzogNHB4IDEycHg7IGJvcmRlci1yYWRpdXM6IDRweDsgY3Vyc29yOiBw +b2ludGVyOwp9CgouaW1wcmludC1ib2R5IHsgcGFkZGluZzogMjBweDsgfQoKLmltcHJpbnQtdGFi +bGUgewogICAgd2lkdGg6IDEwMCU7CiAgICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwogICAg +Zm9udC1zaXplOiAxM3B4OwogICAgY29sb3I6IHZhcigtLXRleHQtcHJpbWFyeSk7Cn0KCi5pbXBy +aW50LXRhYmxlIHRoIHsKICAgIHRleHQtYWxpZ246IGxlZnQ7CiAgICBwYWRkaW5nOiA4cHggMTBw +eDsKICAgIGJhY2tncm91bmQ6IHZhcigtLWJnLXRvb2xiYXIpOwogICAgY29sb3I6IHZhcigtLXRl +eHQtaGVhZGluZyk7CiAgICBmb250LXdlaWdodDogNjAwOwogICAgYm9yZGVyLWJvdHRvbTogMnB4 +IHNvbGlkIHZhcigtLXRleHQtaGVhZGluZyk7Cn0KCi5pbXByaW50LXRhYmxlIHRkIHsKICAgIHBh +ZGRpbmc6IDhweCAxMHB4OwogICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWJvcmRl +ci1jb2xvcik7Cn0KCi5pbXByaW50LXRhYmxlIC5rYXQtYmFkZ2UgewogICAgZGlzcGxheTogaW5s +aW5lLWJsb2NrOwogICAgcGFkZGluZzogMnB4IDhweDsKICAgIGJhY2tncm91bmQ6IHZhcigtLWJn +LWFjdGl2ZSk7CiAgICBjb2xvcjogdmFyKC0tdGV4dC1oZWFkaW5nKTsKICAgIGJvcmRlci1yYWRp +dXM6IDNweDsKICAgIGZvbnQtc2l6ZTogMTFweDsKICAgIG1hcmdpbjogMXB4IDJweDsKfQoKLyog +LS0tIENvbnRyaWJ1dG9ycyAoTWl0d2lya2VuZGUpIC0tLSAqLwouY29udHJpYnV0b3JzLXNlY3Rp +b24gewogICAgbWFyZ2luLXRvcDogMTVweDsKICAgIHBhZGRpbmctdG9wOiAxNXB4OwogICAgYm9y +ZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1saWdodCk7Cn0KCi5jb250cmlidXRvcnMt +c2VjdGlvbiBoMyB7IGZvbnQtc2l6ZTogMTVweDsgY29sb3I6IHZhcigtLXRleHQtaGVhZGluZyk7 +IG1hcmdpbi1ib3R0b206IDEwcHg7IH0KCi5jb250cmlidXRvci1yb3cgewogICAgZGlzcGxheTog +ZmxleDsKICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICBnYXA6IDEwcHg7CiAgICBwYWRkaW5n +OiA2cHggMDsKICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItbGlnaHQp +OwogICAgZm9udC1zaXplOiAxM3B4Owp9CgouY29udHJpYnV0b3ItbmFtZSB7IGZvbnQtd2VpZ2h0 +OiA2MDA7IGNvbG9yOiB2YXIoLS10ZXh0LWhlYWRpbmcpOyB3aWR0aDogMTAwcHg7IGZsZXgtc2hy +aW5rOiAwOyB9CgouY29udHJpYnV0b3Itcm9sZSB7CiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7 +CiAgICBwYWRkaW5nOiAycHggOHB4OwogICAgYm9yZGVyLXJhZGl1czogM3B4OwogICAgZm9udC1z +aXplOiAxMXB4OwogICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgIHdpZHRoOiA3NXB4OwogICAgdGV4 +dC1hbGlnbjogY2VudGVyOwogICAgZmxleC1zaHJpbms6IDA7Cn0KCi5jb250cmlidXRvci1yb2xl +LmF1dG9yIHsgYmFja2dyb3VuZDogI0Q0RUREQTsgY29sb3I6ICMxNTU3MjQ7IH0KLmNvbnRyaWJ1 +dG9yLXJvbGUucmVkYWt0aW9uIHsgYmFja2dyb3VuZDogdmFyKC0tYmctYWN0aXZlKTsgY29sb3I6 +IHZhcigtLXRleHQtaGVhZGluZyk7IH0KLmNvbnRyaWJ1dG9yLXJvbGUucmV2aWV3IHsgYmFja2dy +b3VuZDogI0ZGRTVCNDsgY29sb3I6ICM3QTQ0MTk7IH0KCi5jb250cmlidXRvci1iYXIgewogICAg +ZmxleDogMTsKICAgIGhlaWdodDogOHB4OwogICAgYmFja2dyb3VuZDogdmFyKC0tYm9yZGVyLWxp +Z2h0KTsKICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgIG92ZXJmbG93OiBoaWRkZW47Cn0KCi5j +b250cmlidXRvci1iYXItZmlsbCB7CiAgICBoZWlnaHQ6IDEwMCU7CiAgICBib3JkZXItcmFkaXVz +OiA0cHg7CiAgICB0cmFuc2l0aW9uOiB3aWR0aCAwLjNzOwp9CgouY29udHJpYnV0b3ItYmFyLWZp +bGwuYXV0b3IgeyBiYWNrZ3JvdW5kOiAjMjhhNzQ1OyB9Ci5jb250cmlidXRvci1iYXItZmlsbC5y +ZWRha3Rpb24geyBiYWNrZ3JvdW5kOiAjMkU0QTYyOyB9Ci5jb250cmlidXRvci1iYXItZmlsbC5y +ZXZpZXcgeyBiYWNrZ3JvdW5kOiAjZTY3ZTIyOyB9CgouY29udHJpYnV0b3ItcGN0IHsgZm9udC1z +aXplOiAxMnB4OyBjb2xvcjogdmFyKC0tdGV4dC1tdXRlZCk7IG1pbi13aWR0aDogNDBweDsgdGV4 +dC1hbGlnbjogcmlnaHQ7IH0KCi8qIC0tLSBDb250cmlidXRpb24gVHlwZSBEaWFsb2cgLS0tICov +Ci5jb250cmliLWRpYWxvZyB7CiAgICBkaXNwbGF5OiBub25lOwogICAgcG9zaXRpb246IGZpeGVk +OwogICAgdG9wOiAwOyBsZWZ0OiAwOwogICAgd2lkdGg6IDEwMCU7IGhlaWdodDogMTAwJTsKICAg +IGJhY2tncm91bmQ6IHJnYmEoMCwwLDAsMC41KTsKICAgIHotaW5kZXg6IDMwMDA7Cn0KCi5jb250 +cmliLWRpYWxvZy5hY3RpdmUgeyBkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyBq +dXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgfQoKLmNvbnRyaWItZGlhbG9nLWNvbnRlbnQgewogICAg +YmFja2dyb3VuZDogdmFyKC0tYmctY2FyZCk7CiAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICB3 +aWR0aDogNDIwcHg7CiAgICBtYXgtd2lkdGg6IDk1JTsKICAgIGJveC1zaGFkb3c6IHZhcigtLXNo +YWRvdy1tb2RhbCk7Cn0KCi5jb250cmliLWRpYWxvZy1oZWFkZXIgewogICAgYmFja2dyb3VuZDog +dmFyKC0tYmctcHJpbWFyeSk7CiAgICBjb2xvcjogd2hpdGU7CiAgICBwYWRkaW5nOiAxNXB4IDIw +cHg7CiAgICBib3JkZXItcmFkaXVzOiA4cHggOHB4IDAgMDsKICAgIGZvbnQtd2VpZ2h0OiA2MDA7 +Cn0KCi5jb250cmliLWRpYWxvZy1ib2R5IHsgcGFkZGluZzogMjBweDsgfQoKLmNvbnRyaWItdHlw +ZS1idG4gewogICAgZGlzcGxheTogYmxvY2s7CiAgICB3aWR0aDogMTAwJTsKICAgIHBhZGRpbmc6 +IDEycHggMTVweDsKICAgIG1hcmdpbi1ib3R0b206IDhweDsKICAgIGJvcmRlcjogMnB4IHNvbGlk +IHZhcigtLWJvcmRlci1jb2xvcik7CiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1iZy1jYXJkKTsKICAg +IGJvcmRlci1yYWRpdXM6IDZweDsKICAgIGN1cnNvcjogcG9pbnRlcjsKICAgIHRleHQtYWxpZ246 +IGxlZnQ7CiAgICB0cmFuc2l0aW9uOiBhbGwgMC4yczsKfQoKLmNvbnRyaWItdHlwZS1idG46aG92 +ZXIgeyBib3JkZXItY29sb3I6IHZhcigtLXRleHQtaGVhZGluZyk7IGJhY2tncm91bmQ6IHZhcigt +LWJnLWhvdmVyKTsgfQouY29udHJpYi10eXBlLWJ0bi5zZWxlY3RlZCB7IGJvcmRlci1jb2xvcjog +dmFyKC0tdGV4dC1oZWFkaW5nKTsgYmFja2dyb3VuZDogdmFyKC0tYmctYWN0aXZlKTsgfQoKLmNv +bnRyaWItdHlwZS1idG4gLmxhYmVsIHsgZm9udC13ZWlnaHQ6IDYwMDsgY29sb3I6IHZhcigtLXRl +eHQtaGVhZGluZyk7IGZvbnQtc2l6ZTogMTRweDsgfQouY29udHJpYi10eXBlLWJ0biAuZGVzYyB7 +IGZvbnQtc2l6ZTogMTJweDsgY29sb3I6IHZhcigtLXRleHQtbXV0ZWQpOyBtYXJnaW4tdG9wOiAz +cHg7IH0KCi8qIC0tLSBFbXB0eSBTdGF0ZSAtLS0gKi8KLmVtcHR5LXN0YXRlIHsgdGV4dC1hbGln +bjogY2VudGVyOyBwYWRkaW5nOiA0MHB4OyBjb2xvcjogdmFyKC0tdGV4dC1tdXRlZCk7IH0KCi8q +IC0tLSBXZWxjb21lIC0tLSAqLwoud2VsY29tZS1jb250ZW50IHsgcGFkZGluZzogMzBweDsgbWF4 +LXdpZHRoOiA4MDBweDsgfQoud2VsY29tZS1jb250ZW50IGgxIHsgY29sb3I6IHZhcigtLXRleHQt +aGVhZGluZyk7IGZvbnQtc2l6ZTogMjhweDsgbWFyZ2luLWJvdHRvbTogMTVweDsgYm9yZGVyLWJv +dHRvbTogM3B4IHNvbGlkIHZhcigtLXRleHQtaGVhZGluZyk7IHBhZGRpbmctYm90dG9tOiAxMHB4 +OyB9Ci53ZWxjb21lLWNvbnRlbnQgcCB7IGZvbnQtc2l6ZTogMTVweDsgbGluZS1oZWlnaHQ6IDEu +NjsgY29sb3I6IHZhcigtLXRleHQtc2Vjb25kYXJ5KTsgbWFyZ2luLWJvdHRvbTogMTJweDsgfQou +d2VsY29tZS1jb250ZW50IC5pbmZvLXNlY3Rpb24geyBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1i +Zy1jYXJkLWFsdCk7IGJvcmRlci1sZWZ0OiA0cHggc29saWQgdmFyKC0tdGV4dC1oZWFkaW5nKTsg +cGFkZGluZzogMTVweDsgbWFyZ2luOiAxNXB4IDA7IGJvcmRlci1yYWRpdXM6IDRweDsgfQoud2Vs +Y29tZS1jb250ZW50IC5pbmZvLXNlY3Rpb24gaDIgeyBjb2xvcjogdmFyKC0tdGV4dC1oZWFkaW5n +KTsgZm9udC1zaXplOiAxOHB4OyBtYXJnaW4tYm90dG9tOiA4cHg7IH0KLndlbGNvbWUtY29udGVu +dCAuaW5mby1zZWN0aW9uIHVsIHsgbWFyZ2luLWxlZnQ6IDIwcHg7IGNvbG9yOiB2YXIoLS10ZXh0 +LXNlY29uZGFyeSk7IH0KLndlbGNvbWUtY29udGVudCAuaW5mby1zZWN0aW9uIGxpIHsgbWFyZ2lu +LWJvdHRvbTogNnB4OyBsaW5lLWhlaWdodDogMS41OyB9CgovKiAtLS0gU2Nyb2xsYmFyIC0tLSAq +LwoubGlzdC1pdGVtczo6LXdlYmtpdC1zY3JvbGxiYXIsCi5kb2N1bWVudC1kZXRhaWw6Oi13ZWJr +aXQtc2Nyb2xsYmFyLAouZWRpdG9yLWFyZWE6Oi13ZWJraXQtc2Nyb2xsYmFyLAouZWRpdG9yLWlu +cHV0Ojotd2Via2l0LXNjcm9sbGJhciwKLnJldmlzaW9uLWNvbnRlbnQ6Oi13ZWJraXQtc2Nyb2xs +YmFyIHsgd2lkdGg6IDhweDsgfQoKLmxpc3QtaXRlbXM6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNr +LAouZG9jdW1lbnQtZGV0YWlsOjotd2Via2l0LXNjcm9sbGJhci10cmFjaywKLmVkaXRvci1hcmVh +Ojotd2Via2l0LXNjcm9sbGJhci10cmFjaywKLmVkaXRvci1pbnB1dDo6LXdlYmtpdC1zY3JvbGxi +YXItdHJhY2ssCi5yZXZpc2lvbi1jb250ZW50Ojotd2Via2l0LXNjcm9sbGJhci10cmFjayB7IGJh +Y2tncm91bmQ6IHZhcigtLWJnLWNhcmQtYWx0KTsgYm9yZGVyLXJhZGl1czogNHB4OyB9CgoubGlz +dC1pdGVtczo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIsCi5kb2N1bWVudC1kZXRhaWw6Oi13ZWJr +aXQtc2Nyb2xsYmFyLXRodW1iLAouZWRpdG9yLWFyZWE6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1i +LAouZWRpdG9yLWlucHV0Ojotd2Via2l0LXNjcm9sbGJhci10aHVtYiwKLnJldmlzaW9uLWNvbnRl +bnQ6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHsgYmFja2dyb3VuZDogdmFyKC0tdGV4dC1oZWFk +aW5nKTsgYm9yZGVyLXJhZGl1czogNHB4OyB9CgoubGlzdC1pdGVtczo6LXdlYmtpdC1zY3JvbGxi +YXItdGh1bWI6aG92ZXIsCi5kb2N1bWVudC1kZXRhaWw6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1i +OmhvdmVyLAouZWRpdG9yLWFyZWE6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iOmhvdmVyLAouZWRp +dG9yLWlucHV0Ojotd2Via2l0LXNjcm9sbGJhci10aHVtYjpob3ZlciwKLnJldmlzaW9uLWNvbnRl +bnQ6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iOmhvdmVyIHsgYmFja2dyb3VuZDogdmFyKC0tYmct +cHJpbWFyeS1kYXJrKTsgfQoKLyogLS0tIEZvY3VzIFN0YXRlcyAoQWNjZXNzaWJpbGl0eSkgLS0t +ICovCmJ1dHRvbjpmb2N1cy12aXNpYmxlLApzZWxlY3Q6Zm9jdXMtdmlzaWJsZSwKaW5wdXQ6Zm9j +dXMtdmlzaWJsZSwKLmZpbHRlci1idG46Zm9jdXMtdmlzaWJsZSwKLnN0YXR1cy1maWx0ZXItYnRu +OmZvY3VzLXZpc2libGUsCi5kb2N1bWVudC1pdGVtOmZvY3VzLXZpc2libGUgewogICAgb3V0bGlu +ZTogMnB4IHNvbGlkIHZhcigtLXRleHQtaGVhZGluZyk7CiAgICBvdXRsaW5lLW9mZnNldDogMnB4 +Owp9CgouZGV0YWlsLWFjdGlvbnMgYnV0dG9uOmZvY3VzLXZpc2libGUsCi5lZGl0b3ItdG9vbGJh +ciBidXR0b246Zm9jdXMtdmlzaWJsZSwKLmVkaXRvci1mb290ZXIgYnV0dG9uOmZvY3VzLXZpc2li +bGUgewogICAgb3V0bGluZTogMnB4IHNvbGlkIHZhcigtLXRleHQtaGVhZGluZyk7CiAgICBvdXRs +aW5lLW9mZnNldDogMXB4Owp9CgovKiAtLS0gQW5pbWF0aW9ucyAtLS0gKi8KQGtleWZyYW1lcyBm +YWRlSW4geyBmcm9tIHsgb3BhY2l0eTogMDsgfSB0byB7IG9wYWNpdHk6IDE7IH0gfQpAa2V5ZnJh +bWVzIHNsaWRlRG93biB7IGZyb20geyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEwMCUpOyBvcGFj +aXR5OiAwOyB9IHRvIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApOyBvcGFjaXR5OiAxOyB9IH0K +Ci8qIC0tLSBSZXNwb25zaXZlIC0tLSAqLwpAbWVkaWEgKG1heC13aWR0aDogMTEwMHB4KSB7CiAg +ICAuY29udGFpbmVyIHsgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAyODBweCAxZnI7IH0KfQpAbWVk +aWEgKG1heC13aWR0aDogOTAwcHgpIHsKICAgIC5jb250YWluZXIgeyBncmlkLXRlbXBsYXRlLWNv +bHVtbnM6IDFmcjsgfQogICAgbWFpbiB7IHBhZGRpbmc6IDEwcHg7IH0KfQoKLyogLS0tIElubGlu +ZSBNZWRpYSAoQXJ0aWtlbC1JbmhhbHRlKSAtLS0gKi8KLmRyaXZlLW1lZGlhIHsKICAgIGRpc3Bs +YXk6IGJsb2NrOwogICAgbWFyZ2luOiAxNXB4IDA7CiAgICBwYWdlLWJyZWFrLWluc2lkZTogYXZv +aWQ7CiAgICBtYXgtd2lkdGg6IDEwMCU7Cn0KCi5kcml2ZS1tZWRpYVtjb250ZW50ZWRpdGFibGU9 +ImZhbHNlIl0geyB1c2VyLXNlbGVjdDogbm9uZTsgfQoKLmRyaXZlLWFsaWduLWNlbnRlciB7IGRp +c3BsYXk6IGJsb2NrOyBtYXJnaW46IDE2cHggYXV0bzsgdGV4dC1hbGlnbjogY2VudGVyOyBjbGVh +cjogYm90aDsgfQouZHJpdmUtYWxpZ24tbGVmdCB7IGZsb2F0OiBsZWZ0OyBtYXJnaW46IDhweCAy +MHB4IDEwcHggMDsgbWF4LXdpZHRoOiA1MCU7IH0KLmRyaXZlLWFsaWduLXJpZ2h0IHsgZmxvYXQ6 +IHJpZ2h0OyBtYXJnaW46IDhweCAwIDEwcHggMjBweDsgbWF4LXdpZHRoOiA1MCU7IH0KCi5kcml2 +ZS1tZWRpYS10aHVtYm5haWwgaW1nIHsgbWF4LXdpZHRoOiAyMDBweDsgbWF4LWhlaWdodDogMjAw +cHg7IGN1cnNvcjogcG9pbnRlcjsgYm9yZGVyLXJhZGl1czogNHB4OyB0cmFuc2l0aW9uOiBvcGFj +aXR5IDAuMnM7IH0KLmRyaXZlLW1lZGlhLXRodW1ibmFpbCBpbWc6aG92ZXIgeyBvcGFjaXR5OiAw +Ljg1OyB9Ci5kcml2ZS1tZWRpYS1sYXJnZSBpbWcgeyBtYXgtd2lkdGg6IDY0MHB4OyBtYXgtaGVp +Z2h0OiA0ODBweDsgd2lkdGg6IDEwMCU7IGhlaWdodDogYXV0bzsgYm9yZGVyLXJhZGl1czogNHB4 +OyB9CgouZHJpdmUtbWVkaWEgZmlnY2FwdGlvbiwgLmRyaXZlLW1lZGlhLWNhcHRpb24gewogICAg +Zm9udC1zaXplOiAxMnB4OwogICAgY29sb3I6IHZhcigtLXRleHQtbXV0ZWQpOwogICAgZm9udC1z +dHlsZTogaXRhbGljOwogICAgbWFyZ2luLXRvcDogNnB4OwogICAgbGluZS1oZWlnaHQ6IDEuNDsK +fQoKLmRyaXZlLW1lZGlhLXBkZi1saW5rIHsKICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAg +YWxpZ24taXRlbXM6IGNlbnRlcjsKICAgIGdhcDogOHB4OwogICAgcGFkZGluZzogOHB4IDE0cHg7 +CiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1iZy1jYXJkLWFsdCk7CiAgICBib3JkZXI6IDFweCBzb2xp +ZCB2YXIoLS1ib3JkZXItbGlnaHQpOwogICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgbWFyZ2lu +OiA4cHggMDsKfQoKLmRyaXZlLXBkZi1pY29uIHsKICAgIGRpc3BsYXk6IGlubGluZS1mbGV4Owog +ICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAg +d2lkdGg6IDM2cHg7IGhlaWdodDogMzZweDsKICAgIGJhY2tncm91bmQ6ICNkYzM1NDU7CiAgICBj +b2xvcjogd2hpdGU7CiAgICBmb250LXNpemU6IDExcHg7CiAgICBmb250LXdlaWdodDogNzAwOwog +ICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgZmxleC1zaHJpbms6IDA7Cn0KCi5kcml2ZS1tZWRp +YS1wZGYtbGluayB7IGN1cnNvcjogcG9pbnRlcjsgfQouZHJpdmUtbWVkaWEtcGRmLWxpbmsgc3Bh +bi5wZGYtdGl0bGUgeyBjb2xvcjogdmFyKC0tdGV4dC1oZWFkaW5nKTsgZm9udC13ZWlnaHQ6IDUw +MDsgZm9udC1zaXplOiAxNHB4OyB9Ci5kcml2ZS1tZWRpYS1wZGYtbGluazpob3ZlciB7IGJhY2tn +cm91bmQ6IHZhcigtLWJnLWhvdmVyKTsgYm9yZGVyLWNvbG9yOiB2YXIoLS10ZXh0LWhlYWRpbmcp +OyB9CgouZHJpdmUtbWVkaWEtcGRmLWlmcmFtZSB7IGN1cnNvcjogcG9pbnRlcjsgcG9zaXRpb246 +IHJlbGF0aXZlOyB9Ci5kcml2ZS1tZWRpYS1wZGYtaWZyYW1lIGlmcmFtZSB7CiAgICB3aWR0aDog +MTAwJTsKICAgIGhlaWdodDogMzAwcHg7CiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3Jk +ZXItbGlnaHQpOwogICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgYmFja2dyb3VuZDogdmFyKC0t +YmctY2FyZCk7CiAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKfQouZHJpdmUtbWVkaWEtcGRmLWlm +cmFtZTpob3ZlciB7IG91dGxpbmU6IDJweCBzb2xpZCB2YXIoLS10ZXh0LWhlYWRpbmcpOyBvdXRs +aW5lLW9mZnNldDogMnB4OyB9Ci5kcml2ZS1tZWRpYS1wZGYtaWZyYW1lOjphZnRlciB7CiAgICBj +b250ZW50OiAnS2xpY2tlbiB6dW0gVmVyZ3JvZXNzZXJuJzsKICAgIHBvc2l0aW9uOiBhYnNvbHV0 +ZTsgYm90dG9tOiA4cHg7IHJpZ2h0OiA4cHg7CiAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsMCwwLDAu +Nyk7IGNvbG9yOiB3aGl0ZTsgcGFkZGluZzogM3B4IDEwcHg7CiAgICBib3JkZXItcmFkaXVzOiAz +cHg7IGZvbnQtc2l6ZTogMTFweDsgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICBvcGFjaXR5OiAw +OyB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnM7Cn0KLmRyaXZlLW1lZGlhLXBkZi1pZnJhbWU6aG92 +ZXI6OmFmdGVyIHsgb3BhY2l0eTogMTsgfQoKLyogLS0tIElubGluZS1NZWRpZW4tRW1iZWRzIChW +aWRlbywgQXVkaW8sIE9mZmljZSkgLS0tICovCi5kcml2ZS1tZWRpYS1lbWJlZCB7CiAgICBkaXNw +bGF5OiBpbmxpbmUtZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsgZ2FwOiAxMHB4OwogICAgcGFk +ZGluZzogMTBweCAxNnB4OyBtYXJnaW46IDhweCAwOwogICAgYmFja2dyb3VuZDogdmFyKC0tYmct +Y2FyZC1hbHQpOyBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3IpOwogICAgYm9y +ZGVyLXJhZGl1czogNnB4OyBjdXJzb3I6IHBvaW50ZXI7IHRyYW5zaXRpb246IHZhcigtLXRyYW5z +aXRpb24tc3RkKTsKICAgIG1heC13aWR0aDogNDAwcHg7Cn0KLmRyaXZlLW1lZGlhLWVtYmVkLmRy +aXZlLWFsaWduLWxlZnQsCi5kcml2ZS1tZWRpYS1lbWJlZC5kcml2ZS1hbGlnbi1yaWdodCB7IGRp +c3BsYXk6IGZsZXg7IG1heC13aWR0aDogNTAlOyB9Ci5kcml2ZS1tZWRpYS1lbWJlZC5kcml2ZS1h +bGlnbi1jZW50ZXIgeyBkaXNwbGF5OiBmbGV4OyBtYXJnaW46IDE2cHggYXV0bzsgY2xlYXI6IGJv +dGg7IH0KLmRyaXZlLW1lZGlhLWVtYmVkOmhvdmVyIHsgYm9yZGVyLWNvbG9yOiB2YXIoLS10ZXh0 +LWhlYWRpbmcpOyBiYWNrZ3JvdW5kOiB2YXIoLS1iZy1ob3Zlcik7IH0KLmRyaXZlLWVtYmVkLWlj +b24gewogICAgd2lkdGg6IDMycHg7IGhlaWdodDogMzJweDsgZmxleC1zaHJpbms6IDA7CiAgICBi +YWNrZ3JvdW5kLXNpemU6IGNvbnRhaW47IGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7IGJh +Y2tncm91bmQtcG9zaXRpb246IGNlbnRlcjsKfQouZHJpdmUtZW1iZWQtaWNvbi5pY29uLWF1ZGlv +IHsgYmFja2dyb3VuZC1pbWFnZTogdXJsKCdjc3MvaWNvbnMvYXVkaW8ucG5nJyk7IH0KLmRyaXZl +LWVtYmVkLWljb24uaWNvbi12aWRlbyB7IGJhY2tncm91bmQtaW1hZ2U6IHVybCgnY3NzL2ljb25z +L3ZpZGVvLnBuZycpOyB9Ci5kcml2ZS1lbWJlZC1pY29uLmljb24tcGRmIHsgYmFja2dyb3VuZC1p +bWFnZTogdXJsKCdjc3MvaWNvbnMvcGRmLnBuZycpOyB9Ci5kcml2ZS1lbWJlZC1pY29uLmljb24t +ZG9jeCwgLmRyaXZlLWVtYmVkLWljb24uaWNvbi1kb2MgeyBiYWNrZ3JvdW5kLWltYWdlOiB1cmwo +J2Nzcy9pY29ucy93b3JkLnBuZycpOyB9Ci5kcml2ZS1lbWJlZC1pY29uLmljb24teGxzeCwgLmRy +aXZlLWVtYmVkLWljb24uaWNvbi14bHMgeyBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJ2Nzcy9pY29u +cy9leGNlbC5wbmcnKTsgfQouZHJpdmUtZW1iZWQtaWNvbi5pY29uLXBwdHgsIC5kcml2ZS1lbWJl +ZC1pY29uLmljb24tcHB0IHsgYmFja2dyb3VuZC1pbWFnZTogdXJsKCdjc3MvaWNvbnMvcG93ZXJw +b2ludC5wbmcnKTsgfQouZHJpdmUtZW1iZWQtbGFiZWwgewogICAgZm9udC1zaXplOiAxM3B4OyBm +b250LXdlaWdodDogNTAwOyBjb2xvcjogdmFyKC0tdGV4dC1oZWFkaW5nKTsKICAgIG92ZXJmbG93 +OiBoaWRkZW47IHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOyB3aGl0ZS1zcGFjZTogbm93cmFwOwp9 +CgovKiAtLS0gRmlsZSBUeXBlIEljb25zIChjc3MvaWNvbnMvKSAtLS0gKi8KLmRyaXZlLWZpbGUt +aWNvbiB7CiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7 +CiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgIHdpZHRoOiAzNnB4OyBoZWlnaHQ6IDM2 +cHg7CiAgICBmbGV4LXNocmluazogMDsKICAgIGJhY2tncm91bmQtc2l6ZTogY29udGFpbjsKICAg +IGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7CiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBj +ZW50ZXI7CiAgICBmb250LXNpemU6IDA7IC8qIFRleHQgYXVzYmxlbmRlbiwgSWNvbiBwZXIgQmFj +a2dyb3VuZCAqLwp9CgouZHJpdmUtZmlsZS1pY29uLmltYWdlIHsgYmFja2dyb3VuZC1pbWFnZTog +dXJsKCdjc3MvaWNvbnMvaW1hZ2UucG5nJyk7IH0KLmRyaXZlLWZpbGUtaWNvbi5wZGYgICB7IGJh +Y2tncm91bmQtaW1hZ2U6IHVybCgnY3NzL2ljb25zL3BkZi5wbmcnKTsgfQouZHJpdmUtZmlsZS1p +Y29uLmF1ZGlvIHsgYmFja2dyb3VuZC1pbWFnZTogdXJsKCdjc3MvaWNvbnMvYXVkaW8ucG5nJyk7 +IH0KLmRyaXZlLWZpbGUtaWNvbi52aWRlbyB7IGJhY2tncm91bmQtaW1hZ2U6IHVybCgnY3NzL2lj +b25zL3ZpZGVvLnBuZycpOyB9Ci5kcml2ZS1maWxlLWljb24uZG9jeCAgeyBiYWNrZ3JvdW5kLWlt +YWdlOiB1cmwoJ2Nzcy9pY29ucy93b3JkLnBuZycpOyB9Ci5kcml2ZS1maWxlLWljb24ueGxzeCAg +eyBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJ2Nzcy9pY29ucy9leGNlbC5wbmcnKTsgfQouZHJpdmUt +ZmlsZS1pY29uLnBwdHggIHsgYmFja2dyb3VuZC1pbWFnZTogdXJsKCdjc3MvaWNvbnMvcG93ZXJw +b2ludC5wbmcnKTsgfQouZHJpdmUtZmlsZS1pY29uLmZpbGUgIHsgYmFja2dyb3VuZC1jb2xvcjog +IzZjNzU3ZDsgYm9yZGVyLXJhZGl1czogNHB4OyBjb2xvcjogd2hpdGU7IGZvbnQtc2l6ZTogMTFw +eDsgZm9udC13ZWlnaHQ6IDcwMDsgfQpbZGF0YS10aGVtZT0ibmlnaHQiXSAuZHJpdmUtZmlsZS1p +Y29uIHsgZmlsdGVyOiBpbnZlcnQoMSkgYnJpZ2h0bmVzcygyKTsgfQpbZGF0YS10aGVtZT0ibmln +aHQiXSAuZHJpdmUtZmlsZS1pY29uLmZpbGUgeyBmaWx0ZXI6IG5vbmU7IH0KW2RhdGEtdGhlbWU9 +Im5pZ2h0Il0gLmRyaXZlLWVtYmVkLWljb24geyBmaWx0ZXI6IGludmVydCgxKSBicmlnaHRuZXNz +KDIpOyB9CgovKiAtLS0gQXR0YWNobWVudCBHcmlkIChEZXRhaWwgVmlldykgLS0tICovCi5hdHRh +Y2htZW50LWl0ZW0gewogICAgZGlzcGxheTogZmxleDsKICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7 +CiAgICBnYXA6IDEycHg7CiAgICBwYWRkaW5nOiAxMHB4IDE0cHg7CiAgICBiYWNrZ3JvdW5kOiB2 +YXIoLS1iZy1jYXJkLWFsdCk7CiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItbGln +aHQpOwogICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgY3Vyc29yOiBwb2ludGVyOwogICAgdHJh +bnNpdGlvbjogYWxsIDAuMnM7Cn0KCi5hdHRhY2htZW50LWl0ZW06aG92ZXIgeyBiYWNrZ3JvdW5k +OiB2YXIoLS1iZy1ob3Zlcik7IGJvcmRlci1jb2xvcjogdmFyKC0tdGV4dC1oZWFkaW5nKTsgfQoK +LmF0dGFjaG1lbnQtaW5mbyB7IGZsZXg6IDE7IG1pbi13aWR0aDogMDsgfQouYXR0YWNobWVudC10 +aXRsZSB7IGZvbnQtd2VpZ2h0OiA2MDA7IGZvbnQtc2l6ZTogMTRweDsgY29sb3I6IHZhcigtLXRl +eHQtaGVhZGluZyk7IHdoaXRlLXNwYWNlOiBub3dyYXA7IG92ZXJmbG93OiBoaWRkZW47IHRleHQt +b3ZlcmZsb3c6IGVsbGlwc2lzOyB9Ci5hdHRhY2htZW50LW1ldGEgeyBmb250LXNpemU6IDEycHg7 +IGNvbG9yOiB2YXIoLS10ZXh0LW11dGVkKTsgbWFyZ2luLXRvcDogMnB4OyB9Ci5hdHRhY2htZW50 +LWFjdGlvbnMgeyBkaXNwbGF5OiBmbGV4OyBnYXA6IDZweDsgfQoKLmF0dGFjaG1lbnQtYWN0aW9u +cyBidXR0b24gewogICAgcGFkZGluZzogNHB4IDEwcHg7CiAgICBib3JkZXI6IDFweCBzb2xpZCB2 +YXIoLS1ib3JkZXItY29sb3IpOwogICAgYmFja2dyb3VuZDogdmFyKC0tYmctY2FyZCk7CiAgICBj +b2xvcjogdmFyKC0tdGV4dC1wcmltYXJ5KTsKICAgIGJvcmRlci1yYWRpdXM6IDNweDsKICAgIGZv +bnQtc2l6ZTogMTJweDsKICAgIGN1cnNvcjogcG9pbnRlcjsKICAgIHRyYW5zaXRpb246IGFsbCAw +LjJzOwp9CgouYXR0YWNobWVudC1hY3Rpb25zIGJ1dHRvbjpob3ZlciB7IGJvcmRlci1jb2xvcjog +dmFyKC0tdGV4dC1oZWFkaW5nKTsgY29sb3I6IHZhcigtLXRleHQtaGVhZGluZyk7IH0KCi8qIC0t +LSBNZWRpYSBVcGxvYWQgRGlhbG9nIC0tLSAqLwoubWVkaWEtdXBsb2FkLWRpYWxvZyB7CiAgICBk +aXNwbGF5OiBub25lOwogICAgcG9zaXRpb246IGZpeGVkOwogICAgdG9wOiAwOyBsZWZ0OiAwOwog +ICAgd2lkdGg6IDEwMCU7IGhlaWdodDogMTAwJTsKICAgIGJhY2tncm91bmQ6IHJnYmEoMCwwLDAs +MC41KTsKICAgIHotaW5kZXg6IDIwMDA7Cn0KCi5tZWRpYS11cGxvYWQtZGlhbG9nLmFjdGl2ZSB7 +IGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGp1c3RpZnktY29udGVudDogY2Vu +dGVyOyB9CgoubWVkaWEtdXBsb2FkLWRpYWxvZy1jb250ZW50IHsKICAgIGJhY2tncm91bmQ6IHZh +cigtLWJnLWNhcmQpOwogICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgd2lkdGg6IDU1MHB4Owog +ICAgbWF4LXdpZHRoOiA5NSU7CiAgICBtYXgtaGVpZ2h0OiA5MHZoOwogICAgb3ZlcmZsb3cteTog +YXV0bzsKICAgIGJveC1zaGFkb3c6IHZhcigtLXNoYWRvdy1tb2RhbCk7Cn0KCi5tZWRpYS11cGxv +YWQtZGlhbG9nLWhlYWRlciB7CiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1iZy1wcmltYXJ5KTsKICAg +IGNvbG9yOiB3aGl0ZTsKICAgIHBhZGRpbmc6IDE1cHggMjBweDsKICAgIGJvcmRlci1yYWRpdXM6 +IDhweCA4cHggMCAwOwogICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgIGZvbnQtc2l6ZTogMTZweDsK +ICAgIGRpc3BsYXk6IGZsZXg7CiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAg +ICBhbGlnbi1pdGVtczogY2VudGVyOwp9CgoubWVkaWEtdXBsb2FkLWRpYWxvZy1oZWFkZXIgYnV0 +dG9uIHsKICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OyBib3JkZXI6IDFweCBzb2xpZCB3aGl0 +ZTsgY29sb3I6IHdoaXRlOwogICAgcGFkZGluZzogNHB4IDEycHg7IGJvcmRlci1yYWRpdXM6IDRw +eDsgY3Vyc29yOiBwb2ludGVyOyBmb250LXNpemU6IDEzcHg7Cn0KCi5tZWRpYS11cGxvYWQtZGlh +bG9nLWJvZHkgeyBwYWRkaW5nOiAyMHB4OyB9CgoudXBsb2FkLXByZXZpZXcgewogICAgdGV4dC1h +bGlnbjogY2VudGVyOwogICAgcGFkZGluZzogMTVweDsKICAgIGJhY2tncm91bmQ6IHZhcigtLWJn +LWNhcmQtYWx0KTsKICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgIG1hcmdpbi1ib3R0b206IDE1 +cHg7Cn0KCi51cGxvYWQtcHJldmlldyBpbWcgeyBtYXgtd2lkdGg6IDEwMCU7IG1heC1oZWlnaHQ6 +IDIwMHB4OyBib3JkZXItcmFkaXVzOiA0cHg7IH0KCi51cGxvYWQtZm9ybS1ncm91cCB7IG1hcmdp +bi1ib3R0b206IDEycHg7IH0KLnVwbG9hZC1mb3JtLWdyb3VwIGxhYmVsIHsgZGlzcGxheTogYmxv +Y2s7IGZvbnQtd2VpZ2h0OiA2MDA7IGZvbnQtc2l6ZTogMTNweDsgY29sb3I6IHZhcigtLXRleHQt +aGVhZGluZyk7IG1hcmdpbi1ib3R0b206IDRweDsgfQoudXBsb2FkLWZvcm0tZ3JvdXAgaW5wdXQs +IC51cGxvYWQtZm9ybS1ncm91cCB0ZXh0YXJlYSB7CiAgICB3aWR0aDogMTAwJTsgcGFkZGluZzog +OHB4IDEwcHg7IGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1zdHJvbmcpOyBib3JkZXIt +cmFkaXVzOiA0cHg7IGZvbnQtc2l6ZTogMTNweDsKICAgIGJhY2tncm91bmQ6IHZhcigtLWJnLWlu +cHV0KTsgY29sb3I6IHZhcigtLXRleHQtcHJpbWFyeSk7Cn0KLnVwbG9hZC1mb3JtLWdyb3VwIHRl +eHRhcmVhIHsgcmVzaXplOiB2ZXJ0aWNhbDsgbWluLWhlaWdodDogNTBweDsgfQoKLnVwbG9hZC1v +cHRpb24tZ3JvdXAgeyBkaXNwbGF5OiBmbGV4OyBnYXA6IDhweDsgZmxleC13cmFwOiB3cmFwOyB9 +CgoudXBsb2FkLW9wdGlvbi1idG4gewogICAgcGFkZGluZzogNnB4IDEycHg7CiAgICBib3JkZXI6 +IDJweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3IpOwogICAgYmFja2dyb3VuZDogdmFyKC0tYmct +Y2FyZCk7CiAgICBjb2xvcjogdmFyKC0tdGV4dC1wcmltYXJ5KTsKICAgIGJvcmRlci1yYWRpdXM6 +IDRweDsKICAgIGN1cnNvcjogcG9pbnRlcjsKICAgIGZvbnQtc2l6ZTogMTJweDsKICAgIGZvbnQt +d2VpZ2h0OiA1MDA7CiAgICB0cmFuc2l0aW9uOiBhbGwgMC4yczsKICAgIHRleHQtYWxpZ246IGNl +bnRlcjsKfQoKLnVwbG9hZC1vcHRpb24tYnRuOmhvdmVyIHsgYm9yZGVyLWNvbG9yOiB2YXIoLS10 +ZXh0LWhlYWRpbmcpOyB9Ci51cGxvYWQtb3B0aW9uLWJ0bi5hY3RpdmUgeyBib3JkZXItY29sb3I6 +IHZhcigtLXRleHQtaGVhZGluZyk7IGJhY2tncm91bmQ6IHZhcigtLXRleHQtaGVhZGluZyk7IGNv +bG9yOiB3aGl0ZTsgfQoKLnVwbG9hZC1kaWFsb2ctZm9vdGVyIHsKICAgIHBhZGRpbmc6IDE1cHgg +MjBweDsKICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItbGlnaHQpOwogICAg +ZGlzcGxheTogZmxleDsKICAgIGdhcDogMTBweDsKICAgIGp1c3RpZnktY29udGVudDogZmxleC1l +bmQ7Cn0KCi51cGxvYWQtZGlhbG9nLWZvb3RlciBidXR0b24gewogICAgcGFkZGluZzogOHB4IDIw +cHg7CiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS10ZXh0LWhlYWRpbmcpOwogICAgYmFja2dy +b3VuZDogdmFyKC0tYmctY2FyZCk7CiAgICBjb2xvcjogdmFyKC0tdGV4dC1oZWFkaW5nKTsKICAg +IGJvcmRlci1yYWRpdXM6IDRweDsKICAgIGN1cnNvcjogcG9pbnRlcjsKICAgIGZvbnQtd2VpZ2h0 +OiA2MDA7CiAgICB0cmFuc2l0aW9uOiB2YXIoLS10cmFuc2l0aW9uLXN0ZCk7Cn0KCi51cGxvYWQt +ZGlhbG9nLWZvb3RlciBidXR0b24ucHJpbWFyeSB7IGJhY2tncm91bmQ6ICMyZDlkNzg7IGNvbG9y +OiB3aGl0ZTsgYm9yZGVyLWNvbG9yOiAjMmQ5ZDc4OyB9Ci51cGxvYWQtZGlhbG9nLWZvb3RlciBi +dXR0b24ucHJpbWFyeTpob3ZlciB7IGJhY2tncm91bmQ6ICMxZTdhNWY7IH0KCi51cGxvYWQtZHJv +cC16b25lIHsKICAgIGJvcmRlcjogMnB4IGRhc2hlZCB2YXIoLS1ib3JkZXItY29sb3IsICNjY2Mp +OwogICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgcGFkZGluZzogMzJweCAyMHB4OwogICAgdGV4 +dC1hbGlnbjogY2VudGVyOwogICAgdHJhbnNpdGlvbjogYWxsIDAuMnM7CiAgICBjdXJzb3I6IHBv +aW50ZXI7Cn0KLnVwbG9hZC1kcm9wLXpvbmU6aG92ZXIsIC51cGxvYWQtZHJvcC16b25lLmRyYWct +b3ZlciB7CiAgICBib3JkZXItY29sb3I6ICMyZDlkNzg7CiAgICBiYWNrZ3JvdW5kOiByZ2JhKDQ1 +LCAxNTcsIDEyMCwgMC4wNik7Cn0KLnVwbG9hZC1kcm9wLXpvbmUuZHJhZy1vdmVyIHsKICAgIGJv +cmRlci1zdHlsZTogc29saWQ7CiAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMDEpOwp9Ci51cGxvYWQt +c3RhcnQtYnRuIHsKICAgIHBhZGRpbmc6IDEwcHggMjhweDsKICAgIGJhY2tncm91bmQ6ICMyZDlk +Nzg7CiAgICBjb2xvcjogd2hpdGU7CiAgICBib3JkZXI6IG5vbmU7CiAgICBib3JkZXItcmFkaXVz +OiA2cHg7CiAgICBmb250LXNpemU6IDE0cHg7CiAgICBmb250LXdlaWdodDogNjAwOwogICAgY3Vy +c29yOiBwb2ludGVyOwogICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjJzOwp9Ci51cGxvYWQt +c3RhcnQtYnRuOmhvdmVyIHsgYmFja2dyb3VuZDogIzFlN2E1ZjsgfQoKLyogLS0tIE1lZGlhIENv +bnRleHQgTWVudSAoRWRpdG9yKSAtLS0gKi8KLm1lZGlhLWNvbnRleHQtbWVudSB7CiAgICBkaXNw +bGF5OiBub25lOwogICAgcG9zaXRpb246IGFic29sdXRlOwogICAgYmFja2dyb3VuZDogdmFyKC0t +YmctY2FyZCk7CiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3IpOwogICAg +Ym9yZGVyLXJhZGl1czogNnB4OwogICAgYm94LXNoYWRvdzogMCA0cHggMTZweCB2YXIoLS1zaGFk +b3ctbWVkaXVtKTsKICAgIHotaW5kZXg6IDMwMDA7CiAgICBwYWRkaW5nOiA4cHg7CiAgICBtaW4t +d2lkdGg6IDE4MHB4Owp9CgoubWVkaWEtY29udGV4dC1tZW51LmFjdGl2ZSB7IGRpc3BsYXk6IGJs +b2NrOyB9CgoubWVkaWEtY29udGV4dC1tZW51IGJ1dHRvbiB7CiAgICBkaXNwbGF5OiBibG9jazsK +ICAgIHdpZHRoOiAxMDAlOwogICAgcGFkZGluZzogNnB4IDEwcHg7CiAgICBib3JkZXI6IG5vbmU7 +CiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgIHRleHQtYWxpZ246IGxlZnQ7CiAgICBj +dXJzb3I6IHBvaW50ZXI7CiAgICBmb250LXNpemU6IDEzcHg7CiAgICBib3JkZXItcmFkaXVzOiAz +cHg7CiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMTVzOwp9CgoubWVkaWEtY29udGV4dC1t +ZW51IGJ1dHRvbiB7IGNvbG9yOiB2YXIoLS10ZXh0LXByaW1hcnkpOyB9Ci5tZWRpYS1jb250ZXh0 +LW1lbnUgYnV0dG9uOmhvdmVyIHsgYmFja2dyb3VuZDogdmFyKC0tYmctaG92ZXIpOyB9CgoubWVk +aWEtY29udGV4dC1zZXAgeyBoZWlnaHQ6IDFweDsgYmFja2dyb3VuZDogdmFyKC0tYm9yZGVyLWxp +Z2h0KTsgbWFyZ2luOiA0cHggMDsgfQoKLm1lZGlhLWNvbnRleHQtZ3JvdXAgeyBkaXNwbGF5OiBm +bGV4OyBnYXA6IDRweDsgcGFkZGluZzogNHB4IDZweDsgfQoKLm1lZGlhLWNvbnRleHQtZ3JvdXAg +YnV0dG9uIHsKICAgIGZsZXg6IDE7CiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICBwYWRkaW5n +OiA1cHggOHB4OwogICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG9yKSAhaW1w +b3J0YW50OwogICAgYm9yZGVyLXJhZGl1czogM3B4OwogICAgZm9udC1zaXplOiAxMnB4OwogICAg +Y29sb3I6IHZhcigtLXRleHQtcHJpbWFyeSk7Cn0KCi5tZWRpYS1jb250ZXh0LWdyb3VwIGJ1dHRv +bi5hY3RpdmUgeyBiYWNrZ3JvdW5kOiB2YXIoLS10ZXh0LWhlYWRpbmcpOyBjb2xvcjogd2hpdGU7 +IGJvcmRlci1jb2xvcjogdmFyKC0tdGV4dC1oZWFkaW5nKSAhaW1wb3J0YW50OyB9CgovKiAtLS0g +VW5pdmVyc2FsIE1lZGlhIE1vZGFsIEV4dHJhcyAtLS0gKi8KLmF1ZGlvLW1vZGFsLWNvbnRlbnQs +IC5vZmZpY2UtbW9kYWwtY29udGVudCwgLmZpbGUtbW9kYWwtY29udGVudCB7CiAgICB0ZXh0LWFs +aWduOiBjZW50ZXI7CiAgICBwYWRkaW5nOiA0MHB4OwogICAgY29sb3I6IHdoaXRlOwp9CgouYXVk +aW8tbW9kYWwtY29udGVudCAuYXVkaW8taWNvbiwgLm9mZmljZS1tb2RhbC1jb250ZW50IC5vZmZp +Y2UtaWNvbiB7CiAgICBmb250LXNpemU6IDY0cHg7CiAgICBtYXJnaW4tYm90dG9tOiAxNXB4Owp9 +CgouYXVkaW8tbW9kYWwtY29udGVudCBwLCAub2ZmaWNlLW1vZGFsLWNvbnRlbnQgcCB7IGZvbnQt +c2l6ZTogMThweDsgbWFyZ2luLWJvdHRvbTogMTVweDsgfQoub2ZmaWNlLW1vZGFsLWNvbnRlbnQg +Lm9mZmljZS1oaW50IHsgZm9udC1zaXplOiAxNHB4OyBvcGFjaXR5OiAwLjc7IG1hcmdpbi1ib3R0 +b206IDIwcHg7IH0KCi5vZmZpY2UtZG93bmxvYWQtYnRuIHsKICAgIGRpc3BsYXk6IGlubGluZS1i +bG9jazsKICAgIHBhZGRpbmc6IDEycHggMzBweDsKICAgIGJhY2tncm91bmQ6ICMyRTRBNjI7CiAg +ICBjb2xvcjogd2hpdGU7CiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7CiAgICBib3JkZXItcmFk +aXVzOiA0cHg7CiAgICBmb250LXdlaWdodDogNjAwOwogICAgdHJhbnNpdGlvbjogYmFja2dyb3Vu +ZCAwLjJzOwp9Cgoub2ZmaWNlLWRvd25sb2FkLWJ0bjpob3ZlciB7IGJhY2tncm91bmQ6ICMxZTM0 +NDc7IH0KCi8qIC0tLSBHb3Zlcm5hbmNlOiBSZXZpZXcgQmFkZ2UgLS0tICovCi5yZXZpZXctYmFk +Z2UgewogICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICBhbGlnbi1pdGVtczogY2VudGVyOwog +ICAgZ2FwOiA2cHg7CiAgICBwYWRkaW5nOiAzcHggMTBweDsKICAgIGJhY2tncm91bmQ6ICNkYzM1 +NDU7CiAgICBjb2xvcjogd2hpdGU7CiAgICBib3JkZXItcmFkaXVzOiAxMnB4OwogICAgZm9udC1z +aXplOiAxMnB4OwogICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgIGN1cnNvcjogcG9pbnRlcjsKICAg +IGFuaW1hdGlvbjogcmV2aWV3UHVsc2UgMnMgZWFzZS1pbi1vdXQgaW5maW5pdGU7CiAgICB0cmFu +c2l0aW9uOiBhbGwgMC4yczsKfQoKLnJldmlldy1iYWRnZTpob3ZlciB7IGJhY2tncm91bmQ6ICNj +ODIzMzM7IHRyYW5zZm9ybTogc2NhbGUoMS4wNSk7IH0KCkBrZXlmcmFtZXMgcmV2aWV3UHVsc2Ug +ewogICAgMCUsIDEwMCUgeyBib3gtc2hhZG93OiAwIDAgMCAwIHJnYmEoMjIwLDUzLDY5LDAuNCk7 +IH0KICAgIDUwJSB7IGJveC1zaGFkb3c6IDAgMCAwIDZweCByZ2JhKDIyMCw1Myw2OSwwKTsgfQp9 +CgovKiAtLS0gR292ZXJuYW5jZTogUmV2aWV3IFBhbmVsIC0tLSAqLwoucmV2aWV3LXBhbmVsLW92 +ZXJsYXkgewogICAgZGlzcGxheTogbm9uZTsKICAgIHBvc2l0aW9uOiBmaXhlZDsKICAgIHRvcDog +MDsgbGVmdDogMDsgd2lkdGg6IDEwMCU7IGhlaWdodDogMTAwJTsKICAgIGJhY2tncm91bmQ6IHJn +YmEoMCwwLDAsMC4zKTsKICAgIHotaW5kZXg6IDE0OTk7Cn0KLnJldmlldy1wYW5lbC1vdmVybGF5 +LmFjdGl2ZSB7IGRpc3BsYXk6IGJsb2NrOyB9CgoucmV2aWV3LXBhbmVsIHsKICAgIGRpc3BsYXk6 +IG5vbmU7CiAgICBwb3NpdGlvbjogZml4ZWQ7CiAgICB0b3A6IDA7IHJpZ2h0OiAwOwogICAgd2lk +dGg6IDM0MHB4OwogICAgbWF4LXdpZHRoOiA5NXZ3OwogICAgaGVpZ2h0OiAxMDAlOwogICAgYmFj +a2dyb3VuZDogdmFyKC0tYmctY2FyZCk7CiAgICBib3gtc2hhZG93OiAtNHB4IDAgMjBweCB2YXIo +LS1zaGFkb3ctbWVkaXVtKTsKICAgIHotaW5kZXg6IDE1MDA7CiAgICBmbGV4LWRpcmVjdGlvbjog +Y29sdW1uOwp9CgoucmV2aWV3LXBhbmVsLmFjdGl2ZSB7IGRpc3BsYXk6IGZsZXg7IH0KCi5yZXZp +ZXctcGFuZWwtaGVhZGVyIHsKICAgIGJhY2tncm91bmQ6IHZhcigtLWJnLXByaW1hcnkpOwogICAg +Y29sb3I6IHdoaXRlOwogICAgcGFkZGluZzogMTVweCAyMHB4OwogICAgZGlzcGxheTogZmxleDsK +ICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgIGFsaWduLWl0ZW1zOiBjZW50 +ZXI7CiAgICBmb250LXdlaWdodDogNjAwOwogICAgZm9udC1zaXplOiAxNnB4Owp9CgoucmV2aWV3 +LXBhbmVsLWhlYWRlciBidXR0b24gewogICAgYmFja2dyb3VuZDogcmdiYSgyNTUsMjU1LDI1NSww +LjE1KTsgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyNTUsMjU1LDI1NSwwLjQpOyBjb2xvcjogd2hp +dGU7CiAgICBwYWRkaW5nOiA1cHggMTRweDsgYm9yZGVyLXJhZGl1czogNHB4OyBjdXJzb3I6IHBv +aW50ZXI7IGZvbnQtc2l6ZTogMTJweDsKfQoucmV2aWV3LXBhbmVsLWhlYWRlciBidXR0b246aG92 +ZXIgeyBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwyNTUsMjU1LDAuMjUpOyB9CgoucmV2aWV3LXBhbmVs +LWJvZHkgeyBmbGV4OiAxOyBvdmVyZmxvdy15OiBhdXRvOyBwYWRkaW5nOiAxNXB4OyB9CgoucmV2 +aWV3LWl0ZW0gewogICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWxpZ2h0KTsKICAg +IGJvcmRlci1yYWRpdXM6IDZweDsKICAgIHBhZGRpbmc6IDEycHg7CiAgICBtYXJnaW4tYm90dG9t +OiAxMHB4OwogICAgY3Vyc29yOiBwb2ludGVyOwogICAgdHJhbnNpdGlvbjogYWxsIDAuMnM7Cn0K +Ci5yZXZpZXctaXRlbTpob3ZlciB7IGJvcmRlci1jb2xvcjogdmFyKC0tdGV4dC1oZWFkaW5nKTsg +YmFja2dyb3VuZDogdmFyKC0tYmctaG92ZXIpOyB9CgoucmV2aWV3LWl0ZW0tdGl0bGUgeyBmb250 +LXdlaWdodDogNjAwOyBjb2xvcjogdmFyKC0tdGV4dC1oZWFkaW5nKTsgbWFyZ2luLWJvdHRvbTog +NHB4OyB9Ci5yZXZpZXctaXRlbS1tZXRhIHsgZm9udC1zaXplOiAxMnB4OyBjb2xvcjogdmFyKC0t +dGV4dC1tdXRlZCk7IGRpc3BsYXk6IGZsZXg7IGdhcDogMTBweDsgZmxleC13cmFwOiB3cmFwOyB9 +CgoucmV2aWV3LWl0ZW0tYWN0aW9ucyB7IGRpc3BsYXk6IGZsZXg7IGdhcDogNnB4OyBtYXJnaW4t +dG9wOiA4cHg7IH0KCi5yZXZpZXctaXRlbS1hY3Rpb25zIGJ1dHRvbiB7CiAgICBwYWRkaW5nOiA1 +cHggMTJweDsKICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvcik7CiAgICBi +YWNrZ3JvdW5kOiB2YXIoLS1iZy1jYXJkKTsKICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgIGN1 +cnNvcjogcG9pbnRlcjsKICAgIGZvbnQtc2l6ZTogMTJweDsKICAgIGZvbnQtd2VpZ2h0OiA1MDA7 +CiAgICB0cmFuc2l0aW9uOiBhbGwgMC4yczsKfQoKLnJldmlldy1pdGVtLWFjdGlvbnMgLmJ0bi1h +cHByb3ZlIHsgYm9yZGVyLWNvbG9yOiAjMjhhNzQ1OyBjb2xvcjogIzI4YTc0NTsgfQoucmV2aWV3 +LWl0ZW0tYWN0aW9ucyAuYnRuLWFwcHJvdmU6aG92ZXIgeyBiYWNrZ3JvdW5kOiAjMjhhNzQ1OyBj +b2xvcjogd2hpdGU7IH0KLnJldmlldy1pdGVtLWFjdGlvbnMgLmJ0bi1yZWplY3QgeyBib3JkZXIt +Y29sb3I6ICNkYzM1NDU7IGNvbG9yOiAjZGMzNTQ1OyB9Ci5yZXZpZXctaXRlbS1hY3Rpb25zIC5i +dG4tcmVqZWN0OmhvdmVyIHsgYmFja2dyb3VuZDogI2RjMzU0NTsgY29sb3I6IHdoaXRlOyB9Cgov +KiAtLS0gR292ZXJuYW5jZTogUmV2aWV3IERpYWxvZyAtLS0gKi8KLnJldmlldy1kaWFsb2cgewog +ICAgZGlzcGxheTogbm9uZTsKICAgIHBvc2l0aW9uOiBmaXhlZDsKICAgIHRvcDogMDsgbGVmdDog +MDsKICAgIHdpZHRoOiAxMDAlOyBoZWlnaHQ6IDEwMCU7CiAgICBiYWNrZ3JvdW5kOiByZ2JhKDAs +MCwwLDAuNSk7CiAgICB6LWluZGV4OiAyNTAwOwp9CgoucmV2aWV3LWRpYWxvZy5hY3RpdmUgeyBk +aXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRl +cjsgfQoKLnJldmlldy1kaWFsb2ctY29udGVudCB7CiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1iZy1j +YXJkKTsKICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgIHdpZHRoOiA5MDBweDsKICAgIG1heC13 +aWR0aDogOTUlOwogICAgbWF4LWhlaWdodDogODV2aDsKICAgIGRpc3BsYXk6IGZsZXg7IGZsZXgt +ZGlyZWN0aW9uOiBjb2x1bW47CiAgICBib3gtc2hhZG93OiB2YXIoLS1zaGFkb3ctbW9kYWwpOwog +ICAgb3ZlcmZsb3c6IGhpZGRlbjsKfQoKLnJldmlldy1kaWFsb2ctaGVhZGVyIHsKICAgIHBhZGRp +bmc6IDE0cHggMjBweDsKICAgIGJvcmRlci1yYWRpdXM6IDhweCA4cHggMCAwOwogICAgZm9udC13 +ZWlnaHQ6IDYwMDsKICAgIGZvbnQtc2l6ZTogMTVweDsKICAgIGNvbG9yOiB3aGl0ZTsKICAgIGZs +ZXgtc2hyaW5rOiAwOwogICAgZGlzcGxheTogZmxleDsganVzdGlmeS1jb250ZW50OiBzcGFjZS1i +ZXR3ZWVuOyBhbGlnbi1pdGVtczogY2VudGVyOwp9CgoucmV2aWV3LWRpYWxvZy1oZWFkZXIuYXBw +cm92ZSB7IGJhY2tncm91bmQ6ICMyOGE3NDU7IH0KLnJldmlldy1kaWFsb2ctaGVhZGVyLnJlamVj +dCB7IGJhY2tncm91bmQ6ICNkYzM1NDU7IH0KCi5yZXZpZXctZGlhbG9nLWJvZHkgewogICAgcGFk +ZGluZzogMDsgY29sb3I6IHZhcigtLXRleHQtcHJpbWFyeSk7CiAgICBmbGV4OiAxOyBtaW4taGVp +Z2h0OiAwOyBkaXNwbGF5OiBmbGV4OyBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyBvdmVyZmxvdzog +aGlkZGVuOwp9CgoucmV2aWV3LXNwbGl0IHsKICAgIGRpc3BsYXk6IGdyaWQ7IGdyaWQtdGVtcGxh +dGUtY29sdW1uczogMWZyIDFmcjsgZmxleDogMTsgbWluLWhlaWdodDogMDsgb3ZlcmZsb3c6IGhp +ZGRlbjsKfQoucmV2aWV3LXNwbGl0LWxlZnQgewogICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQg +dmFyKC0tYm9yZGVyLWxpZ2h0KTsgb3ZlcmZsb3cteTogYXV0bzsgcGFkZGluZzogMTZweDsKICAg +IGZvbnQtc2l6ZTogMTRweDsgbGluZS1oZWlnaHQ6IDEuNzsgY29sb3I6IHZhcigtLXRleHQtcHJp +bWFyeSk7Cn0KLnJldmlldy1zcGxpdC1sZWZ0IGgzIHsgY29sb3I6IHZhcigtLXRleHQtaGVhZGlu +Zyk7IGZvbnQtc2l6ZTogMTRweDsgbWFyZ2luLWJvdHRvbTogOHB4OyB9Ci5yZXZpZXctc3BsaXQt +cmlnaHQgewogICAgb3ZlcmZsb3cteTogYXV0bzsgcGFkZGluZzogMTZweDsgZGlzcGxheTogZmxl +eDsgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgZ2FwOiAxMHB4Owp9Ci5yZXZpZXctc3BsaXQtcmln +aHQgaDMgeyBjb2xvcjogdmFyKC0tdGV4dC1oZWFkaW5nKTsgZm9udC1zaXplOiAxNHB4OyBtYXJn +aW4tYm90dG9tOiA0cHg7IH0KCi5yZXZpZXctcHJldi1jb21tZW50cyB7IGRpc3BsYXk6IGZsZXg7 +IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IGdhcDogNnB4OyBtYXJnaW4tYm90dG9tOiAxMHB4OyB9 +Ci5yZXZpZXctY29tbWVudC1idWJibGUgewogICAgcGFkZGluZzogOHB4IDEwcHg7IGJvcmRlci1y +YWRpdXM6IDZweDsgZm9udC1zaXplOiAxMnB4OyBsaW5lLWhlaWdodDogMS41OwogICAgYm9yZGVy +LWxlZnQ6IDNweCBzb2xpZDsgcG9zaXRpb246IHJlbGF0aXZlOwp9Ci5yZXZpZXctY29tbWVudC1i +dWJibGUgLnJjLWF1dGhvciB7IGZvbnQtd2VpZ2h0OiA2MDA7IGZvbnQtc2l6ZTogMTFweDsgfQou +cmV2aWV3LWNvbW1lbnQtYnViYmxlIC5yYy10ZXh0IHsgbWFyZ2luLXRvcDogM3B4OyBjb2xvcjog +dmFyKC0tdGV4dC1wcmltYXJ5KTsgfQoucmV2aWV3LWNvbW1lbnQtYnViYmxlIC5yYy1kYXRlIHsK +ICAgIGZvbnQtc2l6ZTogMTBweDsgY29sb3I6IHZhcigtLXRleHQtbXV0ZWQpOyBwb3NpdGlvbjog +YWJzb2x1dGU7IHRvcDogNHB4OyByaWdodDogOHB4Owp9CgoucmV2aWV3LWRpYWxvZy1ib2R5IHRl +eHRhcmVhIHsKICAgIHdpZHRoOiAxMDAlOyBtaW4taGVpZ2h0OiAxMDBweDsgcGFkZGluZzogMTBw +eDsKICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvcik7IGJvcmRlci1yYWRp +dXM6IDRweDsgZm9udC1zaXplOiAxM3B4OyByZXNpemU6IHZlcnRpY2FsOwogICAgYmFja2dyb3Vu +ZDogdmFyKC0tYmctaW5wdXQpOyBjb2xvcjogdmFyKC0tdGV4dC1wcmltYXJ5KTsgZmxleC1zaHJp +bms6IDA7Cn0KCi5yZXZpZXctZGlhbG9nLWZvb3RlciB7CiAgICBwYWRkaW5nOiAxMnB4IDIwcHg7 +CiAgICBib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWxpZ2h0KTsKICAgIGRpc3Bs +YXk6IGZsZXg7IGdhcDogMTBweDsganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDsgZmxleC1zaHJp +bms6IDA7Cn0KCi5yZXZpZXctZGlhbG9nLWZvb3RlciBidXR0b24gewogICAgcGFkZGluZzogOHB4 +IDIwcHg7CiAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICBm +b250LXdlaWdodDogNjAwOwogICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG9y +KTsKICAgIGJhY2tncm91bmQ6IHZhcigtLWJnLWNhcmQpOwogICAgY29sb3I6IHZhcigtLXRleHQt +cHJpbWFyeSk7Cn0KCi5yZXZpZXctZGlhbG9nLWZvb3RlciAuYnRuLWNvbmZpcm0geyBjb2xvcjog +d2hpdGU7IGJvcmRlcjogbm9uZTsgfQoucmV2aWV3LWRpYWxvZy1mb290ZXIgLmJ0bi1jb25maXJt +LmFwcHJvdmUgeyBiYWNrZ3JvdW5kOiAjMjhhNzQ1OyB9Ci5yZXZpZXctZGlhbG9nLWZvb3RlciAu +YnRuLWNvbmZpcm0ucmVqZWN0IHsgYmFja2dyb3VuZDogI2RjMzU0NTsgfQoKI3Jldmlld0RpYWxv +Z0NvbW1lbnQ6ZW1wdHk6OmJlZm9yZSB7CiAgICBjb250ZW50OiBhdHRyKGRhdGEtcGxhY2Vob2xk +ZXIpOyBjb2xvcjogdmFyKC0tdGV4dC1tdXRlZCk7IHBvaW50ZXItZXZlbnRzOiBub25lOwp9CiNy +ZXZpZXdEaWFsb2dDb21tZW50IHVsLCAjcmV2aWV3RGlhbG9nQ29tbWVudCBvbCB7IHBhZGRpbmct +bGVmdDogMThweDsgbWFyZ2luOiA0cHggMDsgfQoKLyogLS0tIEdvdmVybmFuY2U6IEFkbWluIFBh +bmVsIC0tLSAqLwouZ292LWFkbWluLXBhbmVsIHsKICAgIGRpc3BsYXk6IG5vbmU7CiAgICBwb3Np +dGlvbjogZml4ZWQ7CiAgICB0b3A6IDA7IGxlZnQ6IDA7CiAgICB3aWR0aDogMTAwJTsgaGVpZ2h0 +OiAxMDAlOwogICAgYmFja2dyb3VuZDogcmdiYSgwLDAsMCwwLjUpOwogICAgei1pbmRleDogMjAw +MDsKfQoKLmdvdi1hZG1pbi1wYW5lbC5hY3RpdmUgeyBkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVt +czogY2VudGVyOyBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgfQoKLmdvdi1hZG1pbi1jb250ZW50 +IHsKICAgIGJhY2tncm91bmQ6IHZhcigtLWJnLWNhcmQtYWx0KTsKICAgIGJvcmRlci1yYWRpdXM6 +IDEwcHg7CiAgICB3aWR0aDogOTIwcHg7CiAgICBtYXgtd2lkdGg6IDk1JTsKICAgIG1heC1oZWln +aHQ6IDg1dmg7CiAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgZGlzcGxheTogZmxleDsKICAgIGZs +ZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICBib3gtc2hhZG93OiAwIDEycHggNDhweCByZ2JhKDAs +MCwwLDAuMjUpOwp9CgouZ292LWFkbWluLWhlYWRlciB7CiAgICBiYWNrZ3JvdW5kOiAjMWEyMzMy +OwogICAgY29sb3I6IHdoaXRlOwogICAgcGFkZGluZzogMTZweCAyNHB4OwogICAgYm9yZGVyLXJh +ZGl1czogMTBweCAxMHB4IDAgMDsKICAgIGRpc3BsYXk6IGZsZXg7IGp1c3RpZnktY29udGVudDog +c3BhY2UtYmV0d2VlbjsgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgIGZvbnQtd2VpZ2h0OiA2MDA7 +IGZvbnQtc2l6ZTogMTZweDsKfQoKLmdvdi1hZG1pbi1oZWFkZXIgYnV0dG9uIHsKICAgIGJhY2tn +cm91bmQ6IHJnYmEoMjU1LDI1NSwyNTUsMC4xNSk7IGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjU1 +LDI1NSwyNTUsMC40KTsgY29sb3I6IHdoaXRlOwogICAgcGFkZGluZzogNXB4IDE0cHg7IGJvcmRl +ci1yYWRpdXM6IDRweDsgY3Vyc29yOiBwb2ludGVyOyBmb250LXNpemU6IDEzcHg7IHRyYW5zaXRp +b246IGJhY2tncm91bmQgMC4yczsKfQoKLmdvdi1hZG1pbi1oZWFkZXIgYnV0dG9uOmhvdmVyIHsg +YmFja2dyb3VuZDogcmdiYSgyNTUsMjU1LDI1NSwwLjI1KTsgfQoKLmdvdi1hZG1pbi10b29sYmFy +IHsKICAgIHBhZGRpbmc6IDEwcHggMjBweDsKICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2 +YXIoLS1ib3JkZXItbGlnaHQpOwogICAgZGlzcGxheTogZmxleDsgZ2FwOiA4cHg7IGZsZXgtd3Jh +cDogd3JhcDsgZmxleC1zaHJpbms6IDA7CiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1iZy1jYXJkLWFs +dCk7Cn0KCi5nb3YtYWRtaW4tYm9keSB7IHBhZGRpbmc6IDIwcHg7IG92ZXJmbG93LXk6IGF1dG87 +IGZsZXg6IDE7IG1pbi1oZWlnaHQ6IDA7IH0KCi5nb3Ytc2VjdGlvbiB7CiAgICBiYWNrZ3JvdW5k +OiB2YXIoLS1iZy1jYXJkKTsKICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgIHBhZGRpbmc6IDE2 +cHggMThweDsKICAgIG1hcmdpbi1ib3R0b206IDE0cHg7CiAgICBib3gtc2hhZG93OiAwIDFweCAz +cHggdmFyKC0tc2hhZG93LWxpZ2h0KTsKfQoKLmdvdi1zZWN0aW9uLXRpdGxlIHsKICAgIGZvbnQt +c2l6ZTogMTNweDsKICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICBjb2xvcjogdmFyKC0tdGV4dC1o +ZWFkaW5nKTsKICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgICBsZXR0ZXItc3BhY2lu +ZzogMC41cHg7CiAgICBtYXJnaW4tYm90dG9tOiAxMHB4OwogICAgcGFkZGluZy1ib3R0b206IDhw +eDsKICAgIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCB2YXIoLS1ib3JkZXItbGlnaHQpOwp9Cgou +Z292LXVzZXItcm93IHsKICAgIGRpc3BsYXk6IGZsZXg7CiAgICBhbGlnbi1pdGVtczogY2VudGVy +OwogICAgZ2FwOiAxMHB4OwogICAgcGFkZGluZzogOHB4IDEycHg7CiAgICBib3JkZXI6IDFweCBz +b2xpZCB2YXIoLS1ib3JkZXItbGlnaHQpOwogICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgbWFy +Z2luLWJvdHRvbTogNnB4OwogICAgYmFja2dyb3VuZDogdmFyKC0tYmctY2FyZCk7CiAgICB0cmFu +c2l0aW9uOiBib3JkZXItY29sb3IgMC4xNXM7Cn0KCi5nb3YtdXNlci1yb3c6aG92ZXIgeyBib3Jk +ZXItY29sb3I6IHZhcigtLWJvcmRlci1zdHJvbmcpOyB9CgouZ292LXVzZXItcm93IC5nb3Ytcm9s +ZS1pY29uIHsKICAgIHdpZHRoOiAyOHB4OyBoZWlnaHQ6IDI4cHg7IGJvcmRlci1yYWRpdXM6IDUw +JTsKICAgIGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGp1c3RpZnktY29udGVu +dDogY2VudGVyOwogICAgZm9udC1zaXplOiAxM3B4OyBmbGV4LXNocmluazogMDsKfQoKLmdvdi11 +c2VyLXJvdyAuZ292LXJvbGUtaWNvbi5zdSB7IGJhY2tncm91bmQ6ICNlOGYwZmU7IGNvbG9yOiAj +MWE1NmRiOyB9Ci5nb3YtdXNlci1yb3cgLmdvdi1yb2xlLWljb24ucmV2IHsgYmFja2dyb3VuZDog +I2ZlZjNlMjsgY29sb3I6ICNiNDUzMDk7IH0KCi5nb3YtdXNlci1yb3cgLmdvdi11c2VyLWluZm8g +eyBmbGV4OiAxOyBtaW4td2lkdGg6IDA7IH0KLmdvdi11c2VyLXJvdyAuZ292LXVzZXItaW5mbyAu +Z292LXVzZXItbmFtZSB7IGZvbnQtd2VpZ2h0OiA2MDA7IGZvbnQtc2l6ZTogMTNweDsgY29sb3I6 +IHZhcigtLXRleHQtcHJpbWFyeSk7IH0KLmdvdi11c2VyLXJvdyAuZ292LXVzZXItaW5mbyAuZ292 +LXVzZXItZGV0YWlsIHsgZm9udC1zaXplOiAxMXB4OyBjb2xvcjogdmFyKC0tdGV4dC1tdXRlZCk7 +IG1hcmdpbi10b3A6IDFweDsgfQoKLmdvdi11c2VyLXJvdyAuZ292LWNhdC10YWdzIHsgZGlzcGxh +eTogZmxleDsgZ2FwOiA0cHg7IGZsZXgtd3JhcDogd3JhcDsgZmxleDogMTsgfQoKLmdvdi1jYXQt +dGFnIHsKICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsgcGFkZGluZzogMnB4IDhweDsgYm9yZGVy +LXJhZGl1czogMTBweDsKICAgIGZvbnQtc2l6ZTogMTFweDsgZm9udC13ZWlnaHQ6IDUwMDsgYmFj +a2dyb3VuZDogdmFyKC0tYmctYWN0aXZlKTsgY29sb3I6IHZhcigtLXRleHQtaGVhZGluZyk7Cn0K +Ci5nb3YtdXNlci1yb3cgYnV0dG9uIHsKICAgIHBhZGRpbmc6IDRweCAxMHB4OyBib3JkZXI6IDFw +eCBzb2xpZCB2YXIoLS1ib3JkZXItbGlnaHQpOyBiYWNrZ3JvdW5kOiB2YXIoLS1iZy1jYXJkLWFs +dCk7CiAgICBib3JkZXItcmFkaXVzOiA0cHg7IGN1cnNvcjogcG9pbnRlcjsgZm9udC1zaXplOiAx +MXB4OyBjb2xvcjogdmFyKC0tdGV4dC1zZWNvbmRhcnkpOyB0cmFuc2l0aW9uOiBhbGwgMC4xNXM7 +Cn0KCi5nb3YtdXNlci1yb3cgYnV0dG9uLnJlbW92ZSB7IGNvbG9yOiAjZGMzNTQ1OyBib3JkZXIt +Y29sb3I6ICNmNWM2Y2I7IH0KLmdvdi11c2VyLXJvdyBidXR0b24ucmVtb3ZlOmhvdmVyIHsgYmFj +a2dyb3VuZDogI2RjMzU0NTsgY29sb3I6IHdoaXRlOyB9Ci5nb3YtY2F0LWl0ZW0gYnV0dG9uIHsg +YmFja2dyb3VuZDogdmFyKC0tYmctcHJpbWFyeSk7IGNvbG9yOiB3aGl0ZTsgYm9yZGVyOiAxcHgg +c29saWQgdmFyKC0tYmctcHJpbWFyeSk7IHBhZGRpbmc6IDVweCAxNHB4OyBmb250LXNpemU6IDEy +cHg7IGJvcmRlci1yYWRpdXM6IDRweDsgY3Vyc29yOiBwb2ludGVyOyB9Ci5nb3YtY2F0LWl0ZW0g +YnV0dG9uOmhvdmVyIHsgb3BhY2l0eTogMC44NTsgfQouZ292LWNhdC1pdGVtLmhpZGRlbi1jYXQg +eyBvcGFjaXR5OiAwLjQ1OyB9Ci5nb3YtY2F0LWl0ZW0uaGlkZGVuLWNhdCAuZ292LWNhdC1uYW1l +IHsgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7IH0KCi5nb3YtYWRkLWdyaWQgewogICAg +ZGlzcGxheTogZ3JpZDsKICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMC42ZnIgMWZyOwogICAg +Z2FwOiAxMHB4OwogICAgbWFyZ2luLXRvcDogMTBweDsKfQoKLmdvdi1maWVsZCB7IGRpc3BsYXk6 +IGZsZXg7IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IGdhcDogM3B4OyB9CgouZ292LWZpZWxkLmZ1 +bGwtd2lkdGggeyBncmlkLWNvbHVtbjogMSAvIC0xOyB9CgouZ292LWZpZWxkIGxhYmVsIHsgZm9u +dC1zaXplOiAxMXB4OyBjb2xvcjogdmFyKC0tdGV4dC1zZWNvbmRhcnkpOyBmb250LXdlaWdodDog +NjAwOyB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyBsZXR0ZXItc3BhY2luZzogMC4zcHg7IH0K +Ci5nb3YtZmllbGQgaW5wdXQsIC5nb3YtZmllbGQgc2VsZWN0IHsKICAgIHBhZGRpbmc6IDZweCAx +MHB4OyBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItc3Ryb25nKTsgYm9yZGVyLXJhZGl1 +czogNXB4OwogICAgZm9udC1zaXplOiAxM3B4OyBoZWlnaHQ6IDMycHg7IGJhY2tncm91bmQ6IHZh +cigtLWJnLWlucHV0KTsgY29sb3I6IHZhcigtLXRleHQtcHJpbWFyeSk7IHRyYW5zaXRpb246IGJv +cmRlci1jb2xvciAwLjE1czsKfQoKLmdvdi1maWVsZCBpbnB1dDpmb2N1cywgLmdvdi1maWVsZCBz +ZWxlY3Q6Zm9jdXMgeyBib3JkZXItY29sb3I6IHZhcigtLXRleHQtaGVhZGluZyk7IG91dGxpbmU6 +IG5vbmU7IGJveC1zaGFkb3c6IDAgMCAwIDJweCByZ2JhKDQ2LDc0LDk4LDAuMSk7IH0KCi5nb3Yt +ZmllbGQgc2VsZWN0W211bHRpcGxlXSB7IGhlaWdodDogYXV0bzsgbWluLWhlaWdodDogNDhweDsg +fQoKLmdvdi1maWVsZCAuZ292LWhpbnQgeyBmb250LXNpemU6IDEwcHg7IGNvbG9yOiAjOTk5OyBm +b250LXN0eWxlOiBpdGFsaWM7IH0KCi5nb3YtYWRkLWFjdGlvbnMgeyBncmlkLWNvbHVtbjogMSAv +IC0xOyBkaXNwbGF5OiBmbGV4OyBnYXA6IDhweDsgbWFyZ2luLXRvcDogNHB4OyB9CgouZ292LWFk +ZC1idG4gewogICAgcGFkZGluZzogOHB4IDIwcHg7IGJhY2tncm91bmQ6IHZhcigtLXRleHQtaGVh +ZGluZyk7IGNvbG9yOiB3aGl0ZTsKICAgIGJvcmRlcjogbm9uZTsgYm9yZGVyLXJhZGl1czogNnB4 +OyBjdXJzb3I6IHBvaW50ZXI7IGZvbnQtd2VpZ2h0OiA2MDA7IGZvbnQtc2l6ZTogMTNweDsKICAg +IHRyYW5zaXRpb246IGFsbCAwLjE1czsKfQoKLmdvdi1hZGQtYnRuOmhvdmVyIHsgb3BhY2l0eTog +MC44NTsgfQouZ292LWJ0bi1kYW5nZXIgeyBiYWNrZ3JvdW5kOiAjOGIxYTFhICFpbXBvcnRhbnQ7 +IH0KW2RhdGEtdGhlbWU9Im5pZ2h0Il0gLmdvdi1idG4tZGFuZ2VyIHsgYmFja2dyb3VuZDogI2E4 +MzIzMiAhaW1wb3J0YW50OyB9CgouZ292LWNhbmNlbC1idG4gewogICAgcGFkZGluZzogOHB4IDIw +cHg7IGJhY2tncm91bmQ6IHZhcigtLWJvcmRlci1zdHJvbmcpOyBjb2xvcjogdmFyKC0tdGV4dC1w +cmltYXJ5KTsKICAgIGJvcmRlcjogbm9uZTsgYm9yZGVyLXJhZGl1czogNnB4OyBjdXJzb3I6IHBv +aW50ZXI7IGZvbnQtd2VpZ2h0OiA2MDA7IGZvbnQtc2l6ZTogMTNweDsKICAgIHRyYW5zaXRpb246 +IGFsbCAwLjE1czsKfQoKLmdvdi1jYW5jZWwtYnRuOmhvdmVyIHsgb3BhY2l0eTogMC44NTsgfQoK +Lmdvdi11c2VyLXJvdyBidXR0b24uZWRpdCB7CiAgICBwYWRkaW5nOiAzcHggMTBweDsgYmFja2dy +b3VuZDogdmFyKC0tYmctY2FyZCk7IGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLXRleHQtaGVhZGlu +Zyk7IGNvbG9yOiB2YXIoLS10ZXh0LWhlYWRpbmcpOwogICAgYm9yZGVyLXJhZGl1czogNHB4OyBj +dXJzb3I6IHBvaW50ZXI7IGZvbnQtc2l6ZTogMTFweDsgdHJhbnNpdGlvbjogYWxsIDAuMTVzOwp9 +CgouZ292LXVzZXItcm93IGJ1dHRvbi5lZGl0OmhvdmVyIHsgYmFja2dyb3VuZDogdmFyKC0tdGV4 +dC1oZWFkaW5nKTsgY29sb3I6IHdoaXRlOyB9CgouZ292LXNldHRpbmctcm93IHsKICAgIGRpc3Bs +YXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGdhcDogMTBweDsKICAgIHBhZGRpbmc6IDhw +eCAwOyBmb250LXNpemU6IDEzcHg7IGNvbG9yOiB2YXIoLS10ZXh0LXByaW1hcnkpOwp9CgouZ292 +LXNldHRpbmctcm93ICsgLmdvdi1zZXR0aW5nLXJvdyB7IGJvcmRlci10b3A6IDFweCBzb2xpZCB2 +YXIoLS1ib3JkZXItbGlnaHQpOyB9CgouZ292LXNldHRpbmctcm93IGlucHV0W3R5cGU9ImNoZWNr +Ym94Il0gewogICAgd2lkdGg6IDE2cHg7IGhlaWdodDogMTZweDsgYWNjZW50LWNvbG9yOiAjMkU0 +QTYyOyBjdXJzb3I6IHBvaW50ZXI7Cn0KCi5nb3YtZW1wdHkgeyBjb2xvcjogdmFyKC0tdGV4dC1t +dXRlZCk7IGZvbnQtc2l6ZTogMTNweDsgdGV4dC1hbGlnbjogY2VudGVyOyBwYWRkaW5nOiAxMnB4 +OyBmb250LXN0eWxlOiBpdGFsaWM7IH0KCi8qIC0tLSBSZXZpZXcgSGlzdG9yeSBpbiBEZXRhaWwg +LS0tICovCi5yZXZpZXctaGlzdG9yeSB7CiAgICBtYXJnaW4tdG9wOiAyMHB4OwogICAgcGFkZGlu +Zy10b3A6IDE1cHg7CiAgICBib3JkZXItdG9wOiAxcHggc29saWQgI2UwZTBlMDsKfQoKLnJldmll +dy1oaXN0b3J5IGgzIHsgZm9udC1zaXplOiAxNXB4OyBjb2xvcjogdmFyKC0tdGV4dC1oZWFkaW5n +KTsgbWFyZ2luLWJvdHRvbTogMTBweDsgfQoKLnJldmlldy1oaXN0b3J5LWl0ZW0gewogICAgZGlz +cGxheTogZmxleDsKICAgIGdhcDogMTBweDsKICAgIHBhZGRpbmc6IDhweCAwOwogICAgYm9yZGVy +LWJvdHRvbTogMXB4IHNvbGlkICNmMGYwZjA7CiAgICBmb250LXNpemU6IDEzcHg7Cn0KCi5yZXZp +ZXctaGlzdG9yeS1pdGVtIC5hY3Rpb24tYmFkZ2UgewogICAgcGFkZGluZzogMnB4IDhweDsKICAg +IGJvcmRlci1yYWRpdXM6IDNweDsKICAgIGZvbnQtc2l6ZTogMTFweDsKICAgIGZvbnQtd2VpZ2h0 +OiA2MDA7CiAgICBmbGV4LXNocmluazogMDsKfQoKLnJldmlldy1oaXN0b3J5LWl0ZW0gLmFjdGlv +bi1iYWRnZS5hcHByb3ZlZCB7IGJhY2tncm91bmQ6ICNENEVEREE7IGNvbG9yOiAjMTU1NzI0OyB9 +Ci5yZXZpZXctaGlzdG9yeS1pdGVtIC5hY3Rpb24tYmFkZ2UucmVqZWN0ZWQgeyBiYWNrZ3JvdW5k +OiAjRjhEN0RBOyBjb2xvcjogIzcyMUMyNDsgfQoucmV2aWV3LWhpc3RvcnktaXRlbSAuYWN0aW9u +LWJhZGdlLnN1Ym1pdHRlZCB7IGJhY2tncm91bmQ6ICNGRkU1QjQ7IGNvbG9yOiAjN0E0NDE5OyB9 +CgovKiAtLS0gQ29uZmxpY3QgV2FybmluZyAtLS0gKi8KLmNvbmZsaWN0LXdhcm5pbmcgewogICAg +YmFja2dyb3VuZC1jb2xvcjogI2ZmZjNjZDsKICAgIGJvcmRlcjogMXB4IHNvbGlkICNmZmMxMDc7 +CiAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICBwYWRkaW5nOiAxMHB4IDE1cHg7CiAgICBtYXJn +aW4tYm90dG9tOiAxMHB4OwogICAgZm9udC1zaXplOiAxM3B4OwogICAgY29sb3I6ICM4NTY0MDQ7 +CiAgICBkaXNwbGF5OiBmbGV4OwogICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgIGdhcDogOHB4 +Owp9CgovKiAtLS0gU2NobGFnd8O2cnRlciAvIEtleXdvcmRzIC0tLSAqLwoua2V5d29yZC10YWcg +eyBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IHBhZGRpbmc6IDJweCA4cHg7IGJvcmRlci1yYWRpdXM6 +IDEwcHg7IGZvbnQtc2l6ZTogMTFweDsgYmFja2dyb3VuZDogdmFyKC0tYmctYWN0aXZlKTsgY29s +b3I6IHZhcigtLXRleHQtaGVhZGluZyk7IG1hcmdpbjogMXB4OyB9Ci5rZXl3b3JkLWlucHV0LXdy +YXAgeyBwb3NpdGlvbjogcmVsYXRpdmU7IGZsZXg6IDE7IG1pbi13aWR0aDogMjAwcHg7IH0KLmtl +eXdvcmQtaW5wdXQtY29udGFpbmVyIHsKICAgIGRpc3BsYXk6IGZsZXg7IGZsZXgtd3JhcDogd3Jh +cDsgZ2FwOiA0cHg7IHBhZGRpbmc6IDRweCA4cHg7CiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIo +LS1ib3JkZXItc3Ryb25nKTsgYm9yZGVyLXJhZGl1czogNHB4OwogICAgbWluLWhlaWdodDogMzJw +eDsgYmFja2dyb3VuZDogdmFyKC0tYmctaW5wdXQpOyBhbGlnbi1pdGVtczogY2VudGVyOyBjdXJz +b3I6IHRleHQ7Cn0KLmtleXdvcmQtaW5wdXQtY29udGFpbmVyIGlucHV0IHsgYm9yZGVyOiBub25l +OyBvdXRsaW5lOiBub25lOyBmb250LXNpemU6IDEzcHg7IGJhY2tncm91bmQ6IHRyYW5zcGFyZW50 +OyBjb2xvcjogdmFyKC0tdGV4dC1wcmltYXJ5KTsgbWluLXdpZHRoOiA4MHB4OyBmbGV4OiAxOyBw +YWRkaW5nOiAycHggMDsgfQoua2V5d29yZC1waWxsIHsgZGlzcGxheTogaW5saW5lLWZsZXg7IGFs +aWduLWl0ZW1zOiBjZW50ZXI7IGdhcDogNHB4OyBwYWRkaW5nOiAycHggOHB4OyBiYWNrZ3JvdW5k +OiB2YXIoLS10ZXh0LWhlYWRpbmcpOyBjb2xvcjogd2hpdGU7IGJvcmRlci1yYWRpdXM6IDEwcHg7 +IGZvbnQtc2l6ZTogMTJweDsgfQoua2V5d29yZC1waWxsIC5rdy1yZW1vdmUgeyBjdXJzb3I6IHBv +aW50ZXI7IGZvbnQtd2VpZ2h0OiBib2xkOyBvcGFjaXR5OiAwLjc7IH0KLmtleXdvcmQtcGlsbCAu +a3ctcmVtb3ZlOmhvdmVyIHsgb3BhY2l0eTogMTsgfQoua2V5d29yZC1hdXRvY29tcGxldGUgewog +ICAgcG9zaXRpb246IGFic29sdXRlOyB0b3A6IDEwMCU7IGxlZnQ6IDA7IHJpZ2h0OiAwOyBiYWNr +Z3JvdW5kOiB2YXIoLS1iZy1jYXJkKTsKICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRl +ci1jb2xvcik7IGJvcmRlci1yYWRpdXM6IDRweDsgbWF4LWhlaWdodDogMTUwcHg7CiAgICBvdmVy +Zmxvdy15OiBhdXRvOyB6LWluZGV4OiAxMDsgYm94LXNoYWRvdzogMCA0cHggMTJweCB2YXIoLS1z +aGFkb3ctbGlnaHQpOyBkaXNwbGF5OiBub25lOwp9Ci5rZXl3b3JkLWF1dG9jb21wbGV0ZS5hY3Rp +dmUgeyBkaXNwbGF5OiBibG9jazsgfQoua2V5d29yZC1hdXRvY29tcGxldGUtaXRlbSB7IHBhZGRp +bmc6IDZweCAxMnB4OyBjdXJzb3I6IHBvaW50ZXI7IGZvbnQtc2l6ZTogMTNweDsgY29sb3I6IHZh +cigtLXRleHQtcHJpbWFyeSk7IH0KLmtleXdvcmQtYXV0b2NvbXBsZXRlLWl0ZW06aG92ZXIgeyBi +YWNrZ3JvdW5kOiB2YXIoLS1iZy1ob3Zlcik7IH0KLmtleXdvcmQtc3VnZ2VzdGlvbiB7CiAgICBk +aXNwbGF5OmlubGluZS1ibG9jazsgcGFkZGluZzozcHggMTBweDsgYm9yZGVyLXJhZGl1czoxMnB4 +OyBmb250LXNpemU6MTFweDsKICAgIGJhY2tncm91bmQ6dmFyKC0tYmctY2FyZC1hbHQpOyBjb2xv +cjp2YXIoLS10ZXh0LXNlY29uZGFyeSk7IGJvcmRlcjoxcHggc29saWQgdmFyKC0tYm9yZGVyLWxp +Z2h0KTsKICAgIGN1cnNvcjpwb2ludGVyOyB0cmFuc2l0aW9uOmFsbCAwLjE1czsgdXNlci1zZWxl +Y3Q6bm9uZTsKfQoua2V5d29yZC1zdWdnZXN0aW9uOmhvdmVyIHsgYmFja2dyb3VuZDp2YXIoLS1i +Zy1hY3RpdmUpOyBjb2xvcjp2YXIoLS10ZXh0LWhlYWRpbmcpOyBib3JkZXItY29sb3I6dmFyKC0t +dGV4dC1oZWFkaW5nKTsgfQoKLyogLS0tIFNjaGxhZ3dvcnQtVmVyd2FsdHVuZyAoR292ZXJuYW5j +ZSkgLS0tICovCi5nb3Yta3ctbGlzdCB7IGRpc3BsYXk6IGZsZXg7IGZsZXgtd3JhcDogd3JhcDsg +Z2FwOiA2cHg7IG1hcmdpbi10b3A6IDhweDsgbWF4LWhlaWdodDogMjAwcHg7IG92ZXJmbG93LXk6 +IGF1dG87IH0KLmdvdi1rdy1waWxsIHsKICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OyBhbGlnbi1p +dGVtczogY2VudGVyOyBnYXA6IDRweDsKICAgIHBhZGRpbmc6IDRweCAxMHB4OyBib3JkZXItcmFk +aXVzOiAxMnB4OyBmb250LXNpemU6IDEycHg7CiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1iZy1hY3Rp +dmUpOyBjb2xvcjogdmFyKC0tdGV4dC1oZWFkaW5nKTsgYm9yZGVyOiAxcHggc29saWQgdmFyKC0t +Ym9yZGVyLWxpZ2h0KTsKICAgIGN1cnNvcjogcG9pbnRlcjsgdHJhbnNpdGlvbjogYWxsIDAuMTVz +Owp9Ci5nb3Yta3ctcGlsbDpob3ZlciB7IGJvcmRlci1jb2xvcjogdmFyKC0tdGV4dC1oZWFkaW5n +KTsgYmFja2dyb3VuZDogdmFyKC0tYmctaG92ZXIpOyB9Ci5nb3Yta3ctcGlsbCAua3ctY291bnQg +eyBmb250LXNpemU6IDEwcHg7IGNvbG9yOiB2YXIoLS10ZXh0LW11dGVkKTsgbWFyZ2luLWxlZnQ6 +IDJweDsgfQoKLmt3LW1hbmFnZS1tb2RhbCB7CiAgICBkaXNwbGF5OiBub25lOyBwb3NpdGlvbjog +Zml4ZWQ7IHRvcDogMDsgbGVmdDogMDsgd2lkdGg6IDEwMCU7IGhlaWdodDogMTAwJTsKICAgIGJh +Y2tncm91bmQ6IHJnYmEoMCwwLDAsMC41KTsgei1pbmRleDogMTA1MDA7IGp1c3RpZnktY29udGVu +dDogY2VudGVyOyBhbGlnbi1pdGVtczogY2VudGVyOwp9Ci5rdy1tYW5hZ2UtbW9kYWwub3BlbiB7 +IGRpc3BsYXk6IGZsZXg7IH0KLmt3LW1hbmFnZS1jb250ZW50IHsKICAgIGJhY2tncm91bmQ6IHZh +cigtLWJnLWNhcmQpOyBib3JkZXItcmFkaXVzOiA4cHg7IHdpZHRoOiA1MjBweDsgbWF4LXdpZHRo +OiA5NSU7CiAgICBtYXgtaGVpZ2h0OiA4MHZoOyBvdmVyZmxvdzogaGlkZGVuOyBkaXNwbGF5OiBm +bGV4OyBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgYm94LXNoYWRvdzogMCA4cHggMzJweCBy +Z2JhKDAsMCwwLDAuMyk7Cn0KLmt3LW1hbmFnZS1oZWFkZXIgewogICAgcGFkZGluZzogMTRweCAy +MHB4OyBiYWNrZ3JvdW5kOiB2YXIoLS1iZy1wcmltYXJ5KTsgY29sb3I6IHdoaXRlOwogICAgZm9u +dC13ZWlnaHQ6IDYwMDsgZm9udC1zaXplOiAxNXB4OyBib3JkZXItcmFkaXVzOiA4cHggOHB4IDAg +MDsKICAgIGRpc3BsYXk6IGZsZXg7IGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsgYWxp +Z24taXRlbXM6IGNlbnRlcjsKfQoua3ctbWFuYWdlLWJvZHkgeyBwYWRkaW5nOiAxNnB4IDIwcHg7 +IG92ZXJmbG93LXk6IGF1dG87IGZsZXg6IDE7IH0KLmt3LW1hbmFnZS1mb290ZXIgewogICAgcGFk +ZGluZzogMTJweCAyMHB4OyBib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWxpZ2h0 +KTsKICAgIGRpc3BsYXk6IGZsZXg7IGdhcDogOHB4OyBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5k +Owp9Ci5rdy1tYW5hZ2UtZm9vdGVyIGJ1dHRvbiB7CiAgICBwYWRkaW5nOiA2cHggMTZweDsgYm9y +ZGVyLXJhZGl1czogNHB4OyBjdXJzb3I6IHBvaW50ZXI7IGZvbnQtd2VpZ2h0OiA2MDA7IGZvbnQt +c2l6ZTogMTNweDsKICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvcik7IGJh +Y2tncm91bmQ6IHZhcigtLWJnLWNhcmQpOyBjb2xvcjogdmFyKC0tdGV4dC1wcmltYXJ5KTsKfQou +a3ctbWFuYWdlLWZvb3RlciBidXR0b246aG92ZXIgeyBiYWNrZ3JvdW5kOiB2YXIoLS1iZy1jYXJk +LWFsdCk7IH0KLmt3LW1hbmFnZS1mb290ZXIgYnV0dG9uLmRhbmdlciB7IGJhY2tncm91bmQ6ICNk +YzM1NDU7IGNvbG9yOiB3aGl0ZTsgYm9yZGVyOiBub25lOyB9Ci5rdy1tYW5hZ2UtZm9vdGVyIGJ1 +dHRvbi5kYW5nZXI6aG92ZXIgeyBiYWNrZ3JvdW5kOiAjYzgyMzMzOyB9Ci5rdy1tYW5hZ2UtZm9v +dGVyIGJ1dHRvbi5wcmltYXJ5IHsgYmFja2dyb3VuZDogdmFyKC0tdGV4dC1oZWFkaW5nKTsgY29s +b3I6IHdoaXRlOyBib3JkZXI6IG5vbmU7IH0KLmt3LW1hbmFnZS1mb290ZXIgYnV0dG9uLnByaW1h +cnk6aG92ZXIgeyBvcGFjaXR5OiAwLjg1OyB9Ci5rdy1kb2MtbGlzdCB7IG1hcmdpbjogMTBweCAw +OyB9Ci5rdy1kb2MtaXRlbSB7CiAgICBwYWRkaW5nOiA4cHggMTBweDsgYm9yZGVyOiAxcHggc29s +aWQgdmFyKC0tYm9yZGVyLWxpZ2h0KTsgYm9yZGVyLXJhZGl1czogNHB4OwogICAgbWFyZ2luLWJv +dHRvbTogNHB4OyBmb250LXNpemU6IDEzcHg7IGRpc3BsYXk6IGZsZXg7IGp1c3RpZnktY29udGVu +dDogc3BhY2UtYmV0d2VlbjsgYWxpZ24taXRlbXM6IGNlbnRlcjsKfQoua3ctZG9jLWl0ZW0gLmt3 +LWRvYy10aXRsZSB7IGZvbnQtd2VpZ2h0OiA1MDA7IGNvbG9yOiB2YXIoLS10ZXh0LWhlYWRpbmcp +OyB9Ci5rdy1kb2MtaXRlbSAua3ctZG9jLWthdCB7IGZvbnQtc2l6ZTogMTFweDsgY29sb3I6IHZh +cigtLXRleHQtbXV0ZWQpOyB9CgovKiAtLS0gQXJ0aWtlbC1SZWZlcmVueiAoIy1BdXRvY29tcGxl +dGUgaW0gRWRpdG9yKSAtLS0gKi8KLnhyZWYtZHJvcGRvd24gewogICAgZGlzcGxheTogbm9uZTsg +cG9zaXRpb246IGZpeGVkOyB6LWluZGV4OiAxMDEwMDsKICAgIGJhY2tncm91bmQ6IHZhcigtLWJn +LWNhcmQpOyBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3IpOyBib3JkZXItcmFk +aXVzOiA4cHg7CiAgICBib3gtc2hhZG93OiAwIDhweCAyOHB4IHZhcigtLXNoYWRvdy1tZWRpdW0p +OyB3aWR0aDogMzgwcHg7IG1heC1oZWlnaHQ6IDM2MHB4OwogICAgb3ZlcmZsb3c6IGhpZGRlbjsg +ZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKfQoueHJlZi1kcm9wZG93bi52aXNpYmxlIHsgZGlzcGxh +eTogZmxleDsgfQoueHJlZi1zZWFyY2ggewogICAgcGFkZGluZzogOHB4IDEycHg7IGJvcmRlci1i +b3R0b206IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItbGlnaHQpOwp9Ci54cmVmLXNlYXJjaCBpbnB1 +dCB7CiAgICB3aWR0aDogMTAwJTsgcGFkZGluZzogNnB4IDEwcHg7IGJvcmRlcjogMXB4IHNvbGlk +IHZhcigtLWJvcmRlci1jb2xvcik7CiAgICBib3JkZXItcmFkaXVzOiA0cHg7IGZvbnQtc2l6ZTog +MTNweDsgYmFja2dyb3VuZDogdmFyKC0tYmctaW5wdXQpOyBjb2xvcjogdmFyKC0tdGV4dC1wcmlt +YXJ5KTsKICAgIG91dGxpbmU6IG5vbmU7Cn0KLnhyZWYtc2VhcmNoIGlucHV0OmZvY3VzIHsgYm9y +ZGVyLWNvbG9yOiB2YXIoLS10ZXh0LWhlYWRpbmcpOyB9Ci54cmVmLWxpc3QgeyBmbGV4OiAxOyBv +dmVyZmxvdy15OiBhdXRvOyBtYXgtaGVpZ2h0OiAzMDBweDsgfQoueHJlZi1pdGVtIHsKICAgIHBh +ZGRpbmc6IDhweCAxMnB4OyBjdXJzb3I6IHBvaW50ZXI7IGJvcmRlci1ib3R0b206IDFweCBzb2xp +ZCB2YXIoLS1ib3JkZXItbGlnaHQpOwogICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjFzOwp9 +Ci54cmVmLWl0ZW06aG92ZXIgeyBiYWNrZ3JvdW5kOiB2YXIoLS1iZy1ob3Zlcik7IH0KLnhyZWYt +aXRlbTpsYXN0LWNoaWxkIHsgYm9yZGVyLWJvdHRvbTogbm9uZTsgfQoueHJlZi1pdGVtIC54cmVm +LXRpdGxlIHsgZm9udC13ZWlnaHQ6IDYwMDsgZm9udC1zaXplOiAxM3B4OyBjb2xvcjogdmFyKC0t +dGV4dC1oZWFkaW5nKTsgfQoueHJlZi1pdGVtIC54cmVmLWNhdCB7IGZvbnQtc2l6ZTogMTFweDsg +Y29sb3I6IHZhcigtLXRleHQtbXV0ZWQpOyB9Ci54cmVmLWl0ZW0uaGVhZGluZyB7IHBhZGRpbmct +bGVmdDogMjhweDsgfQoueHJlZi1pdGVtLmhlYWRpbmcgLnhyZWYtdGl0bGUgeyBmb250LXdlaWdo +dDogNTAwOyBmb250LXNpemU6IDEycHg7IGNvbG9yOiB2YXIoLS10ZXh0LXNlY29uZGFyeSk7IH0K +LnhyZWYtaXRlbS5oZWFkaW5nIC54cmVmLXRpdGxlOjpiZWZvcmUgeyBjb250ZW50OiAnwqcgJzsg +Y29sb3I6IHZhcigtLXRleHQtbXV0ZWQpOyB9Ci54cmVmLWJhY2sgewogICAgcGFkZGluZzogNnB4 +IDEycHg7IGZvbnQtc2l6ZTogMTFweDsgY29sb3I6IHZhcigtLXRleHQtaGVhZGluZyk7IGN1cnNv +cjogcG9pbnRlcjsKICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItbGln +aHQpOyBkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyBnYXA6IDRweDsKfQoueHJl +Zi1iYWNrOmhvdmVyIHsgYmFja2dyb3VuZDogdmFyKC0tYmctaG92ZXIpOyB9CgovKiBDcm9zc2xp +bmstUmVmZXJlbnogaW0gVGV4dCAobWFudWVsbCBlaW5nZWbDvGd0IHZpYSAjKSAqLwouZHJpdmUt +eHJlZiB7CiAgICBjb2xvcjogdmFyKC0tdGV4dC1oZWFkaW5nKTsgZm9udC13ZWlnaHQ6IDUwMDsg +Y3Vyc29yOiBwb2ludGVyOwogICAgYm9yZGVyLWJvdHRvbTogMS41cHggc29saWQgdmFyKC0tdGV4 +dC1oZWFkaW5nKTsKICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsgdHJhbnNpdGlvbjogYmFja2dy +b3VuZCAwLjE1czsKfQouZHJpdmUteHJlZjpob3ZlciB7IGJhY2tncm91bmQ6IHZhcigtLWJnLWFj +dGl2ZSk7IH0KCi8qIC0tLSBVbnRlcmFydGlrZWwgLS0tICovCi5kb2N1bWVudC1pdGVtLmNoaWxk +LWFydGljbGUgeyBwYWRkaW5nLWxlZnQ6IDM2cHg7IGJvcmRlci1sZWZ0OiAzcHggc29saWQgdmFy +KC0tYm9yZGVyLWxpZ2h0KTsgfQouZG9jLXBhcmVudC1yZWYgeyBmb250LXNpemU6IDEwcHg7IGNv +bG9yOiB2YXIoLS10ZXh0LW11dGVkKTsgZm9udC1zdHlsZTogaXRhbGljOyB9CgovKiAtLS0gVGFi +ZWxsZW5hbnNpY2h0IC0tLSAqLwoudGFibGUtdmlldy1jb250YWluZXIgeyBmbGV4OiAxOyBvdmVy +ZmxvdzogYXV0bzsgZGlzcGxheTogbm9uZTsgfQoudGFibGUtdmlldy1jb250YWluZXIuYWN0aXZl +IHsgZGlzcGxheTogYmxvY2s7IH0KLmRyaXZlLXRhYmxlIHsgd2lkdGg6IDEwMCU7IGJvcmRlci1j +b2xsYXBzZTogY29sbGFwc2U7IGZvbnQtc2l6ZTogMTNweDsgfQouZHJpdmUtdGFibGUgdGggewog +ICAgY3Vyc29yOiBwb2ludGVyOyBiYWNrZ3JvdW5kOiB2YXIoLS1iZy1jYXJkLWFsdCk7IGNvbG9y +OiB2YXIoLS10ZXh0LWhlYWRpbmcpOwogICAgcGFkZGluZzogMTBweCAxMnB4OyB0ZXh0LWFsaWdu +OiBsZWZ0OyBmb250LXdlaWdodDogNjAwOyBib3JkZXItYm90dG9tOiAycHggc29saWQgdmFyKC0t +dGV4dC1oZWFkaW5nKTsKICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7IHVzZXItc2VsZWN0OiBub25l +OyB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMnM7Cn0KLmRyaXZlLXRhYmxlIHRoOmhvdmVyIHsg +YmFja2dyb3VuZDogdmFyKC0tYmctYWN0aXZlKTsgfQouZHJpdmUtdGFibGUgdGguc29ydGVkLWFz +Yzo6YWZ0ZXIgeyBjb250ZW50OiAiIFwyNUIyIjsgZm9udC1zaXplOiAxMHB4OyB9Ci5kcml2ZS10 +YWJsZSB0aC5zb3J0ZWQtZGVzYzo6YWZ0ZXIgeyBjb250ZW50OiAiIFwyNUJDIjsgZm9udC1zaXpl +OiAxMHB4OyB9Ci5kcml2ZS10YWJsZSB0ZCB7IHBhZGRpbmc6IDhweCAxMnB4OyBib3JkZXItYm90 +dG9tOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWxpZ2h0KTsgY29sb3I6IHZhcigtLXRleHQtcHJp +bWFyeSk7IH0KLmRyaXZlLXRhYmxlIHRyIHsgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjE1czsg +Y3Vyc29yOiBwb2ludGVyOyB9Ci5kcml2ZS10YWJsZSB0cjpob3ZlciB7IGJhY2tncm91bmQ6IHZh +cigtLWJnLWhvdmVyKTsgfQouZHJpdmUtdGFibGUgdGQgLmtleXdvcmQtdGFnIHsgZm9udC1zaXpl +OiAxMHB4OyBwYWRkaW5nOiAxcHggNnB4OyB9CgovKiAtLS0gS2F0ZWdvcmllLVZlcndhbHR1bmcg +LS0tICovCi5nb3YtY2F0LWl0ZW0gewogICAgZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNl +bnRlcjsgZ2FwOiA4cHg7IHBhZGRpbmc6IDZweCAxMnB4OwogICAgYm9yZGVyOiAxcHggc29saWQg +dmFyKC0tYm9yZGVyLWxpZ2h0KTsgYm9yZGVyLXJhZGl1czogNnB4OyBtYXJnaW4tYm90dG9tOiA0 +cHg7IGJhY2tncm91bmQ6IHZhcigtLWJnLWNhcmQpOwp9Ci5nb3YtY2F0LWl0ZW0gLmdvdi1jYXQt +bmFtZSB7IGZsZXg6IDE7IGZvbnQtd2VpZ2h0OiA1MDA7IGZvbnQtc2l6ZTogMTNweDsgY29sb3I6 +IHZhcigtLXRleHQtcHJpbWFyeSk7IH0KLmdvdi1jYXQtbGlzdCB7IG1heC1oZWlnaHQ6IDI0MHB4 +OyBvdmVyZmxvdy15OiBhdXRvOyBwYWRkaW5nLXJpZ2h0OiA0cHg7IH0KLmdvdi1jYXQtYWRkLXJv +dyB7IGRpc3BsYXk6IGZsZXg7IGdhcDogOHB4OyBtYXJnaW4tdG9wOiA4cHg7IH0KLmdvdi1jYXQt +YWRkLXJvdyBpbnB1dCB7IGZsZXg6IDE7IHBhZGRpbmc6IDZweCAxMHB4OyBib3JkZXI6IDFweCBz +b2xpZCB2YXIoLS1ib3JkZXItc3Ryb25nKTsgYm9yZGVyLXJhZGl1czogNXB4OyBmb250LXNpemU6 +IDEzcHg7IGJhY2tncm91bmQ6IHZhcigtLWJnLWlucHV0KTsgY29sb3I6IHZhcigtLXRleHQtcHJp +bWFyeSk7IH0KLmdvdi10d28tY29sIHsgZGlzcGxheTogZ3JpZDsgZ3JpZC10ZW1wbGF0ZS1jb2x1 +bW5zOiAxZnIgMWZyOyBnYXA6IDE0cHg7IH0KLmdvdi10d28tY29sLmNhdC1zZXR0aW5ncyB7IGdy +aWQtdGVtcGxhdGUtY29sdW1uczogM2ZyIDJmcjsgfQouZ292LWhlbHAtZWRpdG9yIHsgd2lkdGg6 +MTAwJTsgbWluLWhlaWdodDoyMDBweDsgcGFkZGluZzoxMnB4OyBib3JkZXI6MXB4IHNvbGlkIHZh +cigtLWJvcmRlci1jb2xvcik7IGJvcmRlci1yYWRpdXM6NHB4OyBmb250LXNpemU6MTNweDsgbGlu +ZS1oZWlnaHQ6MS42OyBiYWNrZ3JvdW5kOnZhcigtLWJnLWlucHV0KTsgY29sb3I6dmFyKC0tdGV4 +dC1wcmltYXJ5KTsgb3ZlcmZsb3cteTphdXRvOyB9Ci5nb3YtaGVscC1lZGl0b3I6Zm9jdXMgeyBi +b3JkZXItY29sb3I6dmFyKC0tdGV4dC1oZWFkaW5nKTsgb3V0bGluZTpub25lOyB9Ci5nb3YtYWN0 +aW9uLWJhciB7IGRpc3BsYXk6ZmxleDsgZ2FwOjEwcHg7IG1hcmdpbi10b3A6OHB4OyBmbGV4LXdy +YXA6d3JhcDsgfQouZ292LXVzZXItcm93IC5nb3Ytcm9sZS1pY29uLmZhIHsgYmFja2dyb3VuZDog +I2ZjZTRlYzsgY29sb3I6ICNjNjI4Mjg7IH0KCi8qIC0tLSBMw7ZzY2gtQmVzdMOkdGlndW5nIE1v +ZGFsIC0tLSAqLwouZGVsZXRlLWNvbmZpcm0tbW9kYWwgeyBkaXNwbGF5Om5vbmU7IHBvc2l0aW9u +OmZpeGVkOyB0b3A6MDsgbGVmdDowOyB3aWR0aDoxMDAlOyBoZWlnaHQ6MTAwJTsgYmFja2dyb3Vu +ZDpyZ2JhKDAsMCwwLDAuNSk7IHotaW5kZXg6MzAwMDsgfQouZGVsZXRlLWNvbmZpcm0tbW9kYWwu +YWN0aXZlIHsgZGlzcGxheTpmbGV4OyBhbGlnbi1pdGVtczpjZW50ZXI7IGp1c3RpZnktY29udGVu +dDpjZW50ZXI7IH0KLmRlbGV0ZS1jb25maXJtLWNvbnRlbnQgeyBiYWNrZ3JvdW5kOnZhcigtLWJn +LWNhcmQpOyBib3JkZXItcmFkaXVzOjhweDsgd2lkdGg6NDQwcHg7IG1heC13aWR0aDo5NSU7IGJv +eC1zaGFkb3c6MCAxMHB4IDQwcHggcmdiYSgwLDAsMCwwLjMpOyB9Ci5kZWxldGUtY29uZmlybS1o +ZWFkZXIgeyBiYWNrZ3JvdW5kOiNkYzM1NDU7IGNvbG9yOndoaXRlOyBwYWRkaW5nOjE1cHggMjBw +eDsgYm9yZGVyLXJhZGl1czo4cHggOHB4IDAgMDsgZm9udC13ZWlnaHQ6NjAwOyBmb250LXNpemU6 +MTZweDsgfQouZGVsZXRlLWNvbmZpcm0tYm9keSB7IHBhZGRpbmc6MjBweDsgfQouZGVsZXRlLWNv +bmZpcm0tYm9keSBpbnB1dCB7IHdpZHRoOjEwMCU7IHBhZGRpbmc6OHB4IDEwcHg7IGJvcmRlcjox +cHggc29saWQgdmFyKC0tYm9yZGVyLXN0cm9uZyk7IGJvcmRlci1yYWRpdXM6NHB4OyBmb250LXNp +emU6MTRweDsgbWFyZ2luLXRvcDo4cHg7IGJhY2tncm91bmQ6dmFyKC0tYmctaW5wdXQpOyBjb2xv +cjp2YXIoLS10ZXh0LXByaW1hcnkpOyB9Ci5kZWxldGUtY29uZmlybS1mb290ZXIgeyBwYWRkaW5n +OjE1cHggMjBweDsgYm9yZGVyLXRvcDoxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG9yKTsgZGlz +cGxheTpmbGV4OyBnYXA6MTBweDsganVzdGlmeS1jb250ZW50OmZsZXgtZW5kOyB9Ci5kZWxldGUt +Y29uZmlybS1mb290ZXIgYnV0dG9uIHsgcGFkZGluZzo4cHggMjBweDsgYm9yZGVyLXJhZGl1czo0 +cHg7IGN1cnNvcjpwb2ludGVyOyBmb250LXdlaWdodDo2MDA7IGJvcmRlcjoxcHggc29saWQgI2Rk +ZDsgYmFja2dyb3VuZDp3aGl0ZTsgfQouZGVsZXRlLWNvbmZpcm0tZm9vdGVyIC5idG4tZGVsZXRl +IHsgYmFja2dyb3VuZDojZGMzNTQ1OyBjb2xvcjp3aGl0ZTsgYm9yZGVyOm5vbmU7IH0KLmRlbGV0 +ZS1jb25maXJtLWZvb3RlciAuYnRuLWRlbGV0ZTpkaXNhYmxlZCB7IG9wYWNpdHk6MC41OyBjdXJz +b3I6bm90LWFsbG93ZWQ7IH0KCi8qIC0tLSBQYXBpZXJrb3JiIC8gR2Vsw7ZzY2h0ZSBBcnRpa2Vs +IC0tLSAqLwoudHJhc2gtYmFkZ2UgeyBmb250LXNpemU6MTFweDsgcGFkZGluZzoycHggOHB4OyBi +YWNrZ3JvdW5kOiNGOEQ3REE7IGNvbG9yOiM3MjFDMjQ7IGJvcmRlci1yYWRpdXM6M3B4OyBjdXJz +b3I6cG9pbnRlcjsgfQoudHJhc2gtaXRlbSB7IHBhZGRpbmc6MTBweCAxMnB4OyBib3JkZXI6MXB4 +IHNvbGlkICNmNWM2Y2I7IGJvcmRlci1yYWRpdXM6NnB4OyBtYXJnaW4tYm90dG9tOjhweDsgYmFj +a2dyb3VuZDojZmZmNWY1OyB9Ci50cmFzaC1pdGVtLXRpdGxlIHsgZm9udC13ZWlnaHQ6NjAwOyBm +b250LXNpemU6MTNweDsgY29sb3I6IzcyMUMyNDsgfQoudHJhc2gtaXRlbS1tZXRhIHsgZm9udC1z +aXplOjExcHg7IGNvbG9yOnZhcigtLXRleHQtbXV0ZWQpOyBtYXJnaW4tdG9wOjNweDsgfQoudHJh +c2gtaXRlbS1hY3Rpb25zIHsgZGlzcGxheTpmbGV4OyBnYXA6NnB4OyBtYXJnaW4tdG9wOjZweDsg +fQoudHJhc2gtaXRlbS1hY3Rpb25zIGJ1dHRvbiB7IHBhZGRpbmc6NHB4IDEwcHg7IGJvcmRlcjox +cHggc29saWQgI2RkZDsgYmFja2dyb3VuZDp3aGl0ZTsgYm9yZGVyLXJhZGl1czo0cHg7IGZvbnQt +c2l6ZToxMnB4OyBjdXJzb3I6cG9pbnRlcjsgfQoudHJhc2gtaXRlbS1hY3Rpb25zIC5idG4tcmVz +dG9yZSB7IGJvcmRlci1jb2xvcjojMjhhNzQ1OyBjb2xvcjojMjhhNzQ1OyB9Ci50cmFzaC1pdGVt +LWFjdGlvbnMgLmJ0bi1yZXN0b3JlOmhvdmVyIHsgYmFja2dyb3VuZDojMjhhNzQ1OyBjb2xvcjp3 +aGl0ZTsgfQoKLyogLS0tIEVuZ2FnZW1lbnQtU3RhdGlzdGlrIC0tLSAqLwouc3RhdC1ncmlkIHsg +ZGlzcGxheTpncmlkOyBncmlkLXRlbXBsYXRlLWNvbHVtbnM6cmVwZWF0KGF1dG8tZmlsbCxtaW5t +YXgoMTgwcHgsMWZyKSk7IGdhcDoxMnB4OyBtYXJnaW4tYm90dG9tOjE2cHg7IH0KLnN0YXQtY2Fy +ZCB7IGJhY2tncm91bmQ6dmFyKC0tYmctY2FyZC1hbHQpOyBib3JkZXItcmFkaXVzOjhweDsgcGFk +ZGluZzoxNnB4OyB0ZXh0LWFsaWduOmNlbnRlcjsgfQouc3RhdC1jYXJkIC5zdGF0LXZhbHVlIHsg +Zm9udC1zaXplOjI4cHg7IGZvbnQtd2VpZ2h0OjcwMDsgY29sb3I6dmFyKC0tdGV4dC1oZWFkaW5n +KTsgfQouc3RhdC1jYXJkIC5zdGF0LWxhYmVsIHsgZm9udC1zaXplOjEycHg7IGNvbG9yOnZhcigt +LXRleHQtbXV0ZWQpOyBtYXJnaW4tdG9wOjRweDsgfQouc3RhdC1iYXItcm93IHsgZGlzcGxheTpm +bGV4OyBhbGlnbi1pdGVtczpjZW50ZXI7IGdhcDoxMHB4OyBwYWRkaW5nOjZweCAwOyBmb250LXNp +emU6MTNweDsgfQouc3RhdC1iYXItcm93IC5zdGF0LWJhci1sYWJlbCB7IG1pbi13aWR0aDoxMDBw +eDsgZm9udC13ZWlnaHQ6NTAwOyBjb2xvcjp2YXIoLS10ZXh0LXByaW1hcnkpOyB9Ci5zdGF0LWJh +ci1yb3cgLnN0YXQtYmFyIHsgZmxleDoxOyBoZWlnaHQ6MjBweDsgYmFja2dyb3VuZDp2YXIoLS1i +b3JkZXItbGlnaHQpOyBib3JkZXItcmFkaXVzOjRweDsgb3ZlcmZsb3c6aGlkZGVuOyB9Ci5zdGF0 +LWJhci1yb3cgLnN0YXQtYmFyLWZpbGwgeyBoZWlnaHQ6MTAwJTsgYm9yZGVyLXJhZGl1czo0cHg7 +IHRyYW5zaXRpb246d2lkdGggMC4zczsgfQouc3RhdC1iYXItcm93IC5zdGF0LWJhci12YWwgeyBt +aW4td2lkdGg6NDBweDsgdGV4dC1hbGlnbjpyaWdodDsgZm9udC1zaXplOjEycHg7IGNvbG9yOnZh +cigtLXRleHQtbXV0ZWQpOyB9CgovKiAtLS0gSGlsZmUtTW9kYWwgLS0tICovCi5oZWxwLW1vZGFs +IHsgZGlzcGxheTpub25lOyBwb3NpdGlvbjpmaXhlZDsgdG9wOjA7IGxlZnQ6MDsgd2lkdGg6MTAw +JTsgaGVpZ2h0OjEwMCU7IGJhY2tncm91bmQ6cmdiYSgwLDAsMCwwLjUpOyB6LWluZGV4OjIwMDA7 +IH0KLmhlbHAtbW9kYWwuYWN0aXZlIHsgZGlzcGxheTpmbGV4OyBhbGlnbi1pdGVtczpjZW50ZXI7 +IGp1c3RpZnktY29udGVudDpjZW50ZXI7IH0KLmhlbHAtbW9kYWwtY29udGVudCB7CiAgICBiYWNr +Z3JvdW5kOnZhcigtLWJnLWNhcmQpOyBib3JkZXItcmFkaXVzOjEwcHg7IHdpZHRoOjk2MHB4OyBt +YXgtd2lkdGg6OTUlOyBoZWlnaHQ6ODV2aDsKICAgIGRpc3BsYXk6ZmxleDsgb3ZlcmZsb3c6aGlk +ZGVuOyBib3gtc2hhZG93OjAgMTJweCA0OHB4IHJnYmEoMCwwLDAsMC4zKTsKfQouaGVscC10b2Mg +ewogICAgd2lkdGg6MjQwcHg7IG1pbi13aWR0aDoyMDBweDsgYmFja2dyb3VuZDp2YXIoLS1iZy1w +cmltYXJ5KTsgY29sb3I6d2hpdGU7CiAgICBvdmVyZmxvdy15OmF1dG87IHBhZGRpbmc6MjBweCAw +OyBmbGV4LXNocmluazowOwp9Ci5oZWxwLXRvYy10aXRsZSB7IHBhZGRpbmc6MCAyMHB4IDE1cHg7 +IGZvbnQtc2l6ZToxNnB4OyBmb250LXdlaWdodDo3MDA7IGJvcmRlci1ib3R0b206MXB4IHNvbGlk +IHJnYmEoMjU1LDI1NSwyNTUsMC4xNSk7IG1hcmdpbi1ib3R0b206MTBweDsgfQouaGVscC10b2Mg +YSB7CiAgICBkaXNwbGF5OmJsb2NrOyBwYWRkaW5nOjdweCAyMHB4OyBmb250LXNpemU6MTNweDsg +Y29sb3I6cmdiYSgyNTUsMjU1LDI1NSwwLjcpOwogICAgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IGJv +cmRlci1sZWZ0OjNweCBzb2xpZCB0cmFuc3BhcmVudDsgdHJhbnNpdGlvbjphbGwgMC4xNXM7IGN1 +cnNvcjpwb2ludGVyOwp9Ci5oZWxwLXRvYyBhOmhvdmVyIHsgY29sb3I6d2hpdGU7IGJhY2tncm91 +bmQ6cmdiYSgyNTUsMjU1LDI1NSwwLjA4KTsgfQouaGVscC10b2MgYS5hY3RpdmUgeyBjb2xvcjp3 +aGl0ZTsgYmFja2dyb3VuZDpyZ2JhKDI1NSwyNTUsMjU1LDAuMTIpOyBib3JkZXItbGVmdC1jb2xv +cjojMmQ5ZDc4OyBmb250LXdlaWdodDo2MDA7IH0KLmhlbHAtdG9jIGEuc3ViIHsgcGFkZGluZy1s +ZWZ0OjM0cHg7IGZvbnQtc2l6ZToxMnB4OyB9Ci5oZWxwLWJvZHkgewogICAgZmxleDoxOyBvdmVy +Zmxvdy15OmF1dG87IHBhZGRpbmc6MzBweCAzNXB4OyBjb2xvcjp2YXIoLS10ZXh0LXByaW1hcnkp +OyBzY3JvbGwtYmVoYXZpb3I6c21vb3RoOwp9Ci5oZWxwLWJvZHkgaDIgeyBjb2xvcjp2YXIoLS10 +ZXh0LWhlYWRpbmcpOyBmb250LXNpemU6MjBweDsgbWFyZ2luOjMwcHggMCAxMnB4OyBwYWRkaW5n +LWJvdHRvbTo4cHg7IGJvcmRlci1ib3R0b206MnB4IHNvbGlkIHZhcigtLWJvcmRlci1saWdodCk7 +IH0KLmhlbHAtYm9keSBoMjpmaXJzdC1jaGlsZCB7IG1hcmdpbi10b3A6MDsgfQouaGVscC1ib2R5 +IGgzIHsgY29sb3I6dmFyKC0tdGV4dC1oZWFkaW5nKTsgZm9udC1zaXplOjE1cHg7IG1hcmdpbjoy +MHB4IDAgOHB4OyB9Ci5oZWxwLWJvZHkgcCB7IGZvbnQtc2l6ZToxNHB4OyBsaW5lLWhlaWdodDox +Ljc7IG1hcmdpbi1ib3R0b206MTBweDsgY29sb3I6dmFyKC0tdGV4dC1zZWNvbmRhcnkpOyB9Ci5o +ZWxwLWJvZHkgdWwgeyBtYXJnaW46MCAwIDEycHggMjBweDsgY29sb3I6dmFyKC0tdGV4dC1zZWNv +bmRhcnkpOyB9Ci5oZWxwLWJvZHkgbGkgeyBmb250LXNpemU6MTRweDsgbGluZS1oZWlnaHQ6MS42 +OyBtYXJnaW4tYm90dG9tOjRweDsgfQouaGVscC1ib2R5IGtiZCB7CiAgICBkaXNwbGF5OmlubGlu +ZS1ibG9jazsgcGFkZGluZzoxcHggNnB4OyBiYWNrZ3JvdW5kOnZhcigtLWJnLWNhcmQtYWx0KTsg +Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3IpOwogICAgYm9yZGVyLXJhZGl1czoz +cHg7IGZvbnQtc2l6ZToxMnB4OyBmb250LWZhbWlseTptb25vc3BhY2U7IGNvbG9yOnZhcigtLXRl +eHQtcHJpbWFyeSk7Cn0KLmhlbHAtYm9keSAuaGVscC1iYWRnZSB7CiAgICBkaXNwbGF5OmlubGlu +ZS1ibG9jazsgcGFkZGluZzoycHggOHB4OyBib3JkZXItcmFkaXVzOjNweDsgZm9udC1zaXplOjEx +cHg7IGZvbnQtd2VpZ2h0OjYwMDsgbWFyZ2luLXJpZ2h0OjRweDsKfQouaGVscC1ib2R5IC5oZWxw +LWJhZGdlLnN1IHsgYmFja2dyb3VuZDojZThmMGZlOyBjb2xvcjojMWE1NmRiOyB9Ci5oZWxwLWJv +ZHkgLmhlbHAtYmFkZ2UucmV2IHsgYmFja2dyb3VuZDojZmVmM2UyOyBjb2xvcjojYjQ1MzA5OyB9 +Ci5oZWxwLWJvZHkgLmhlbHAtYmFkZ2UuYWxsIHsgYmFja2dyb3VuZDojRDRFRERBOyBjb2xvcjoj +MTU1NzI0OyB9Ci5oZWxwLWVkaXQtYnRuIHsKICAgIGRpc3BsYXk6bm9uZTsgbWFyZ2luOjEwcHgg +MjBweDsgcGFkZGluZzo4cHggMTRweDsgYmFja2dyb3VuZDpyZ2JhKDI1NSwyNTUsMjU1LDAuMTIp +OyBib3JkZXI6MXB4IHNvbGlkIHJnYmEoMjU1LDI1NSwyNTUsMC4zKTsKICAgIGNvbG9yOndoaXRl +OyBib3JkZXItcmFkaXVzOjRweDsgY3Vyc29yOnBvaW50ZXI7IGZvbnQtc2l6ZToxMnB4OyBmb250 +LXdlaWdodDo2MDA7CiAgICB0cmFuc2l0aW9uOmFsbCAwLjJzOyB0ZXh0LWFsaWduOmNlbnRlcjsg +d2lkdGg6Y2FsYygxMDAlIC0gNDBweCk7Cn0KLmhlbHAtZWRpdC1idG46aG92ZXIgeyBiYWNrZ3Jv +dW5kOnJnYmEoMjU1LDI1NSwyNTUsMC4yNSk7IH0KLmhlbHAtZWRpdC1iYXIgewogICAgZGlzcGxh +eTpub25lOyBwYWRkaW5nOjhweCAxNnB4OyBiYWNrZ3JvdW5kOnZhcigtLWJnLWNhcmQtYWx0KTsg +Ym9yZGVyLWJvdHRvbToxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG9yKTsKICAgIGdhcDo2cHg7 +IGFsaWduLWl0ZW1zOmNlbnRlcjsgZmxleC1zaHJpbms6MDsKfQouaGVscC1lZGl0LWJhci5hY3Rp +dmUgeyBkaXNwbGF5OmZsZXg7IH0KLmhlbHAtZWRpdC1iYXIgYnV0dG9uIHsKICAgIHBhZGRpbmc6 +NXB4IDEwcHg7IGJvcmRlcjpub25lOyBiYWNrZ3JvdW5kOnZhcigtLWJnLXRvb2xiYXIpOyBjb2xv +cjp2YXIoLS10ZXh0LXByaW1hcnkpOwogICAgY3Vyc29yOnBvaW50ZXI7IGZvbnQtc2l6ZToxM3B4 +OyBib3JkZXItcmlnaHQ6MXB4IHNvbGlkIHZhcigtLWJvcmRlci1zdHJvbmcpOyBtaW4taGVpZ2h0 +OjI4cHg7Cn0KLmhlbHAtZWRpdC1iYXIgYnV0dG9uOmhvdmVyIHsgYmFja2dyb3VuZDp2YXIoLS1i +b3JkZXItbGlnaHQpOyB9Ci5oZWxwLWVkaXQtYmFyIC5oZWxwLXNhdmUtYnRuIHsgYmFja2dyb3Vu +ZDp2YXIoLS10ZXh0LWhlYWRpbmcpOyBjb2xvcjp3aGl0ZTsgYm9yZGVyOm5vbmU7IGJvcmRlci1y +YWRpdXM6NHB4OyBwYWRkaW5nOjVweCAxNnB4OyBtYXJnaW4tbGVmdDphdXRvOyB9Ci5oZWxwLWVk +aXQtYmFyIC5oZWxwLXNhdmUtYnRuOmhvdmVyIHsgb3BhY2l0eTowLjg1OyB9Ci5oZWxwLWVkaXQt +YmFyIC5oZWxwLWNhbmNlbC1idG4geyBiYWNrZ3JvdW5kOnRyYW5zcGFyZW50OyBib3JkZXI6MXB4 +IHNvbGlkIHZhcigtLWJvcmRlci1zdHJvbmcpOyBib3JkZXItcmFkaXVzOjRweDsgcGFkZGluZzo1 +cHggMTJweDsgfQouaGVscC1ib2R5W2NvbnRlbnRlZGl0YWJsZT0idHJ1ZSJdIHsgYm9yZGVyOjJw +eCBzb2xpZCB2YXIoLS10ZXh0LWhlYWRpbmcpOyBib3JkZXItcmFkaXVzOjRweDsgbWFyZ2luOjRw +eDsgfQogICAgPC9zdHlsZT4KPC9oZWFkPgo8Ym9keT4KCiAgICA8IS0tIEhlYWRlciAtLT4KICAg +IDxoZWFkZXI+CiAgICAgICAgPGltZyBzcmM9ImNzcy9pbWFnZXMvZHJpdmVfbG9nb19uaWdodC5w +bmciCiAgICAgICAgICAgICBhbHQ9IkQuUi5JLlYuRS4iCiAgICAgICAgICAgICBjbGFzcz0iZHJp +dmUtbG9nbyIKICAgICAgICAgICAgIHN0eWxlPSJjdXJzb3I6cG9pbnRlcjsiCiAgICAgICAgICAg +ICBvbmNsaWNrPSJEcml2ZVBvcnRhbC5zaG93SG9tZSgpIgogICAgICAgICAgICAgb25lcnJvcj0i +dGhpcy5zdHlsZS5kaXNwbGF5PSdub25lJyI+CiAgICAgICAgPGRpdiBjbGFzcz0iZHJpdmUtaGVh +ZGVyLWNlbnRlciI+CiAgICAgICAgICAgIDxwPkRpZ2l0YWxlcyBSZXNzb3VyY2VuLSB1bmQgSW5m +b3JtYXRpb25zcG9ydGFsIFZlcmtlaHI8L3A+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGJ1dHRv +biBjbGFzcz0idGhlbWUtdG9nZ2xlIiBpZD0idGhlbWVUb2dnbGUiIG9uY2xpY2s9InRvZ2dsZVRo +ZW1lKCkiIHRpdGxlPSJUYWcvTmFjaHQtTW9kdXMgdW1zY2hhbHRlbiI+CiAgICAgICAgICAgIDxz +cGFuIGNsYXNzPSJpY29uLWRheSI+JiM5Nzg5Ozwvc3Bhbj4KICAgICAgICAgICAgPHNwYW4gY2xh +c3M9Imljb24tbmlnaHQiPiYjOTc4ODs8L3NwYW4+CiAgICAgICAgPC9idXR0b24+CiAgICA8L2hl +YWRlcj4KCiAgICA8IS0tIENvbm5lY3Rpb24gQmFyIChudXIgc2ljaHRiYXIgd2VubiB2ZXJidW5k +ZW4pIC0tPgogICAgPGRpdiBjbGFzcz0iY29ubmVjdGlvbi1iYXIiIGlkPSJjb25uZWN0aW9uQmFy +IiBzdHlsZT0iZGlzcGxheTpub25lOyI+CiAgICAgICAgPHNwYW4gY2xhc3M9InN0YXR1cy1kb3Qi +IGlkPSJzdGF0dXNEb3QiPjwvc3Bhbj4KICAgICAgICA8c3BhbiBpZD0iY29ubmVjdGlvblRleHQi +Pjwvc3Bhbj4KICAgICAgICA8YnV0dG9uIG9uY2xpY2s9IkRyaXZlRlMucmVjb25uZWN0KCkiIGlk +PSJidG5SZWNvbm5lY3QiIHN0eWxlPSJkaXNwbGF5Om5vbmU7Ij5PcmRuZXIgd2VjaHNlbG48L2J1 +dHRvbj4KICAgICAgICA8YnV0dG9uIG9uY2xpY2s9IkRyaXZlRlMuYWN0aXZhdGVTZXJ2ZXIoKSIg +aWQ9ImJ0bkFjdGl2YXRlU2VydmVyIiBzdHlsZT0iZGlzcGxheTpub25lOyI+U2VydmVyIHN0YXJ0 +ZW4gZsO8ciBCZWFyYmVpdHVuZzwvYnV0dG9uPgogICAgICAgIDxzcGFuIGNsYXNzPSJzcGFjZXIi +Pjwvc3Bhbj4KICAgICAgICA8c3BhbiBjbGFzcz0icmV2aWV3LWJhZGdlIiBpZD0icmV2aWV3QmFk +Z2UiIHN0eWxlPSJkaXNwbGF5Om5vbmU7IiBvbmNsaWNrPSJEcml2ZUdvdmVybmFuY2Uuc2hvd1F1 +ZXVlKCkiIHRpdGxlPSJBcnRpa2VsLCBkaWUgYXVmIGRlaW5lIEZyZWlnYWJlIG9kZXIgQWJsZWhu +dW5nIHdhcnRlbiI+UHLDvGZ1bmdlbjogPHNwYW4gaWQ9InJldmlld0NvdW50Ij4wPC9zcGFuPjwv +c3Bhbj4KICAgICAgICA8YnV0dG9uIG9uY2xpY2s9IkRyaXZlR292ZXJuYW5jZS5zaG93QWRtaW4o +KSIgaWQ9ImJ0bkdvdkFkbWluIiBzdHlsZT0iZGlzcGxheTpub25lOyBwYWRkaW5nOjRweCAxMHB4 +OyBiYWNrZ3JvdW5kOnJnYmEoMjU1LDI1NSwyNTUsMC4xNSk7IGJvcmRlcjoxcHggc29saWQgcmdi +YSgyNTUsMjU1LDI1NSwwLjQpOyBjb2xvcjp3aGl0ZTsgYm9yZGVyLXJhZGl1czozcHg7IGN1cnNv +cjpwb2ludGVyOyBmb250LXNpemU6MTJweDsiIHRpdGxlPSJWZXJ3YWx0dW5nc2JlcmVpY2g6IFJv +bGxlbiwgS2F0ZWdvcmllbiwgRWluc3RlbGx1bmdlbiB1bmQgbWVociI+R292ZXJuYW5jZTwvYnV0 +dG9uPgogICAgICAgIDxzcGFuIGNsYXNzPSJzeW5jLWluZm8iIGlkPSJzeW5jSW5mbyI+PC9zcGFu +PgogICAgPC9kaXY+CgogICAgPCEtLSBNYWluIENvbnRlbnQgLS0+CiAgICA8bWFpbj4KICAgICAg +ICA8ZGl2IGNsYXNzPSJjb250cm9scyI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbnRyb2xz +LXJvdy10b3AiPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2VhcmNoLWJveCI+CiAgICAg +ICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIGlkPSJzZWFyY2hJbnB1dCIgcGxhY2Vo +b2xkZXI9IkRva3VtZW50IHN1Y2hlbi4uLiIgZGlzYWJsZWQ+CiAgICAgICAgICAgICAgICA8L2Rp +dj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InN0YXR1cy1maWx0ZXJzIiBpZD0ic3RhdHVz +RmlsdGVycyI+PC9kaXY+CiAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJmaWx0ZXItYnRu +IiBpZD0iYnRuTmV3RG9jIiBvbmNsaWNrPSJEcml2ZUVkaXRvci5jcmVhdGVOZXcoKSIgZGlzYWJs +ZWQKICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICMyZDlk +Nzg7IGNvbG9yOiB3aGl0ZTsgYm9yZGVyLWNvbG9yOiAjMmQ5ZDc4OyIgdGl0bGU9IkVpbmVuIG5l +dWVuIEFydGlrZWwgZXJzdGVsbGVuIj4rIE5ldTwvYnV0dG9uPgogICAgICAgICAgICAgICAgPGJ1 +dHRvbiBjbGFzcz0iZmlsdGVyLWJ0biIgaWQ9ImJ0blRhYmxlVmlldyIgb25jbGljaz0iRHJpdmVQ +b3J0YWwudG9nZ2xlVGFibGVWaWV3KCkiIHRpdGxlPSJad2lzY2hlbiBMaXN0ZW5hbnNpY2h0IHVu +ZCBUYWJlbGxlbmFuc2ljaHQgd2VjaHNlbG4iPiYjOTc3NjsgVGFiZWxsZTwvYnV0dG9uPgogICAg +ICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29udHJvbHMtcm93LWNhdGVn +b3JpZXMiIGlkPSJjYXRlZ29yeUZpbHRlcnMiPjwvZGl2PgogICAgICAgIDwvZGl2PgoKICAgICAg +ICA8ZGl2IGNsYXNzPSJ0YWJsZS12aWV3LWNvbnRhaW5lciIgaWQ9InRhYmxlVmlld0NvbnRhaW5l +ciI+PC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIiBpZD0iY29udGFpbmVyIj4K +ICAgICAgICAgICAgPGRpdiBjbGFzcz0iZG9jdW1lbnQtbGlzdCI+CiAgICAgICAgICAgICAgICA8 +ZGl2IGNsYXNzPSJsaXN0LWhlYWRlciI+CiAgICAgICAgICAgICAgICAgICAgRG9rdW1lbnRlCiAg +ICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImRvYy1jb3VudCIgaWQ9ImRvY0NvdW50Ij48 +L3NwYW4+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9 +Imxpc3QtaXRlbXMiIGlkPSJkb2N1bWVudExpc3QiPgogICAgICAgICAgICAgICAgICAgIDxkaXYg +Y2xhc3M9ImVtcHR5LXN0YXRlIj48cD5WZXJiaW5kdW5nIHdpcmQgaGVyZ2VzdGVsbHQuLi48L3A+ +PC9kaXY+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAg +ICAgIDxkaXYgY2xhc3M9ImRvY3VtZW50LWRldGFpbCIgaWQ9ImRvY3VtZW50RGV0YWlsIj4KICAg +ICAgICAgICAgICAgIDxkaXYgY2xhc3M9IndlbGNvbWUtY29udGVudCI+CiAgICAgICAgICAgICAg +ICAgICAgPGgxPldpbGxrb21tZW4gYmVpIEQuUi5JLlYuRS48L2gxPgogICAgICAgICAgICAgICAg +ICAgIDxwIHN0eWxlPSJmb250LXNpemU6MTZweDtsaW5lLWhlaWdodDoxLjg7bWFyZ2luLWJvdHRv +bToxNnB4OyI+CiAgICAgICAgICAgICAgICAgICAgICAgIERhcyA8c3Ryb25nPkRpZ2l0YWxlIFJl +c3NvdXJjZW4tIHVuZCBJbmZvcm1hdGlvbnNwb3J0YWwgVmVya2Vocjwvc3Ryb25nPiBpc3QgdW5z +ZXJlIGdlbWVpbnNhbWUgV2lzc2Vuc3BsYXR0Zm9ybS4KICAgICAgICAgICAgICAgICAgICA8L3A+ +CiAgICAgICAgICAgICAgICAgICAgPHAgc3R5bGU9ImZvbnQtc2l6ZToxNXB4O2xpbmUtaGVpZ2h0 +OjEuODttYXJnaW4tYm90dG9tOjE2cHg7Ij4KICAgICAgICAgICAgICAgICAgICAgICAgSGllciBz +YW1tZWxuIHdpciBGYWNod2lzc2VuLCBFcmZhaHJ1bmdlbiB1bmQgQXJiZWl0c2hpbGZlbiBhdXMg +YWxsZW4gQmVyZWljaGVuLCBkaWUgdW5zIGltIEFyYmVpdHNhbGx0YWcgYmVnZWduZW4g4oCTCiAg +ICAgICAgICAgICAgICAgICAgICAgIHZvbiBWZXJrZWhyc3JlY2h0IMO8YmVyIExhZHVuZ3NzaWNo +ZXJ1bmcgYmlzIGhpbiB6dSB0ZWNobmlzY2hlbiBLb250cm9sbGVuIHVuZCB6dSBIaWxmZXN0ZWxs +dW5nZW4gYmVpIGRlciBhYnNjaGxpZcOfZW5kZW4gQW56ZWlnZW5mZXJ0aWd1bmcuCiAgICAgICAg +ICAgICAgICAgICAgPC9wPgogICAgICAgICAgICAgICAgICAgIDxwIHN0eWxlPSJmb250LXNpemU6 +MTZweDtsaW5lLWhlaWdodDoxLjg7bWFyZ2luLWJvdHRvbToxNnB4OyI+CiAgICAgICAgICAgICAg +ICAgICAgICAgIEQuUi5JLlYuRS4gbGVidCBkYXZvbiwgZGFzcyA8c3Ryb25nPmFsbGUgbWl0bWFj +aGVuPC9zdHJvbmc+Li4uIHZvbSBLQSBiaXMgenVtIFZLIQogICAgICAgICAgICAgICAgICAgIDwv +cD4KICAgICAgICAgICAgICAgICAgICA8cCBzdHlsZT0iZm9udC1zaXplOjE1cHg7bGluZS1oZWln +aHQ6MS44O21hcmdpbi1ib3R0b206MjBweDsiPgogICAgICAgICAgICAgICAgICAgICAgICBKZWRl +IEtvbGxlZ2luIHVuZCBqZWRlciBLb2xsZWdlIGlzdCBoZXJ6bGljaCBlaW5nZWxhZGVuLAogICAg +ICAgICAgICAgICAgICAgICAgICBlaWdlbmVzIFdpc3NlbiBlaW56dWJyaW5nZW4sIGJlc3RlaGVu +ZGUgQXJ0aWtlbCB6dSBlcmfDpG56ZW4gb2RlciBuZXVlIFRoZW1lbiBhbnp1bGVnZW4uCiAgICAg +ICAgICAgICAgICAgICAgICAgIE51ciBnZW1laW5zYW0gc2NoYWZmZW4gd2lyIGVpbmUgV2lzc2Vu +c2Jhc2lzLCBkaWUgYWt0dWVsbCwgZnVuZGllcnQgdW5kIGltIEVpbnNhdHogc293aWUgZGVyIEJl +YXJiZWl0dW5nIHdpcmtsaWNoIGhpbGZ0LgogICAgICAgICAgICAgICAgICAgIDwvcD4KCiAgICAg +ICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iaW5mby1zZWN0aW9uIj4KICAgICAgICAgICAgICAg +ICAgICAgICAgPGgyPk1pdG1hY2hlbiDigJMgc28gZWluZmFjaCBnZWh0J3M8L2gyPgogICAgICAg +ICAgICAgICAgICAgICAgICA8dWw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PHN0 +cm9uZz5MZXNlbjo8L3N0cm9uZz4gw5ZmZm5lIGVpbmZhY2ggZGllc2UgRGF0ZWkgaW0gQnJvd3Nl +ciDigJMgYWxsZSBmcmVpZ2VnZWJlbmVuIEFydGlrZWwgd2VyZGVuIGF1dG9tYXRpc2NoIGdlbGFk +ZW48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxzdHJvbmc+TWl0YXJiZWl0 +ZW46PC9zdHJvbmc+IFN0YXJ0ZSA8Y29kZT5EUklWRV9TdGFydC5iYXQ8L2NvZGU+IHBlciBEb3Bw +ZWxrbGljayDigJMgZGFtaXQga2FubnN0IGR1IEFydGlrZWwgZXJzdGVsbGVuLCBiZWFyYmVpdGVu +IHVuZCBNZWRpZW4gaG9jaGxhZGVuPC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxs +aT48c3Ryb25nPkZyZWlnYWJlOjwvc3Ryb25nPiBOZXVlIHVuZCDDvGJlcmFyYmVpdGV0ZSBBcnRp +a2VsIGR1cmNobGF1ZmVuIGVpbmVuIGt1cnplbiBQcsO8ZnByb3plc3MsIGRhbWl0IGRpZSBRdWFs +aXTDpHQgc3RpbW10PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgPC91bD4KICAgICAgICAg +ICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iaW5mby1z +ZWN0aW9uIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGgyPldhcnVtIEQuUi5JLlYuRS4/PC9o +Mj4KICAgICAgICAgICAgICAgICAgICAgICAgPHA+CiAgICAgICAgICAgICAgICAgICAgICAgICAg +ICBJbSBBcmJlaXRzYWxsdGFnIHN0b8OfZW4gd2lyIHJlZ2VsbcOkw59pZyBhdWYgRnJhZ2VuLCBk +ZXJlbiBBbnR3b3J0ZW4gaXJnZW5kd28gaW4gT3JkbmVybiwgRS1NYWlscyBvZGVyIEvDtnBmZW4g +dmVydGVpbHQgc2luZC4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIEQuUi5JLlYuRS4gYnJp +bmd0IGRpZXNlcyBXaXNzZW4gYW4gZWluZW0gT3J0IHp1c2FtbWVuLiBTbyBwcm9maXRpZXJlbiBh +bGxlIHZvbiBkZXIgaW5ow6RyZW50ZW4gRXJmYWhydW5nIGRlciBNaXRhcmJlaXRlciBkZXIgRGly +ZWt0aW9uIFZlcmtlaHIgZGVzIFBQIERvcnRtdW5kIQogICAgICAgICAgICAgICAgICAgICAgICA8 +L3A+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICAgICAgICAgIDxkaXYg +Y2xhc3M9ImluZm8tc2VjdGlvbiIgaWQ9IndlbGNvbWVDb25uZWN0SGludCIgc3R5bGU9ImRpc3Bs +YXk6bm9uZTsiPgogICAgICAgICAgICAgICAgICAgICAgICA8cD5adW0gTGVzZW46IMOWZmZuZSBk +aWUgaW5kZXguaHRtbCBkaXJla3Qg4oCTIGRpZSBBcnRpa2VsIHdlcmRlbiBhdXRvbWF0aXNjaCBn +ZWxhZGVuLjxicj5adW0gQmVhcmJlaXRlbjogU3RhcnRlIDxzdHJvbmc+RFJJVkVfU3RhcnQuYmF0 +PC9zdHJvbmc+IHBlciBEb3BwZWxrbGljay48L3A+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+ +CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+ +CiAgICA8L21haW4+CgogICAgPCEtLSBFZGl0b3IgTW9kYWwgLS0+CiAgICA8ZGl2IGNsYXNzPSJl +ZGl0b3ItbW9kYWwiIGlkPSJlZGl0b3JNb2RhbCI+CiAgICAgICAgPGRpdiBjbGFzcz0iZWRpdG9y +LW1vZGFsLWNvbnRlbnQiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJlZGl0b3ItbW9kYWwtaGVh +ZGVyIj4KICAgICAgICAgICAgICAgIDxoMiBpZD0iZWRpdG9yTW9kYWxUaXRsZSI+RWRpdG9yPC9o +Mj4KICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICA8IS0tIE1ldGFkYXRlbi1aZWlsZSAx +IC0tPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJlZGl0b3ItbWV0YS1yb3ciPgogICAgICAgICAg +ICAgICAgPGxhYmVsPlRpdGVsOjwvbGFiZWw+CiAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0i +dGV4dCIgaWQ9ImVkaXRvclRpdGVsIiBwbGFjZWhvbGRlcj0iRG9rdW1lbnR0aXRlbCBlaW5nZWJl +bi4uLiI+CiAgICAgICAgICAgICAgICA8bGFiZWw+S2F0ZWdvcmllOjwvbGFiZWw+CiAgICAgICAg +ICAgICAgICA8c2VsZWN0IGlkPSJlZGl0b3JLYXRlZ29yaWUiPjwvc2VsZWN0PgogICAgICAgICAg +ICAgICAgPGxhYmVsPlN0YXR1czo8L2xhYmVsPgogICAgICAgICAgICAgICAgPHNlbGVjdCBpZD0i +ZWRpdG9yU3RhdHVzIj48L3NlbGVjdD4KICAgICAgICAgICAgICAgIDxsYWJlbD7DnGJlcmFydGlr +ZWw6PC9sYWJlbD4KICAgICAgICAgICAgICAgIDxzZWxlY3QgaWQ9ImVkaXRvclBhcmVudCI+PG9w +dGlvbiB2YWx1ZT0iIj4tLSBLZWluIMOcYmVyYXJ0aWtlbCAtLTwvb3B0aW9uPjwvc2VsZWN0Pgog +ICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPCEtLSBUb29sYmFyIC0tPgogICAgICAgICAg +ICA8ZGl2IGNsYXNzPSJlZGl0b3ItdG9vbGJhciI+CiAgICAgICAgICAgICAgICA8YnV0dG9uIG9u +Y2xpY2s9IkRyaXZlRWRpdG9yLnVuZG8oKSIgdGl0bGU9IlLDvGNrZ8OkbmdpZyAoU3RyZytaKSI+ +PGltZyBzcmM9ImNzcy9pY29ucy91bmRvLnBuZyIgc3R5bGU9IndpZHRoOjE2cHg7aGVpZ2h0OjE2 +cHg7dmVydGljYWwtYWxpZ246bWlkZGxlOyI+PC9idXR0b24+CiAgICAgICAgICAgICAgICA8YnV0 +dG9uIG9uY2xpY2s9IkRyaXZlRWRpdG9yLnJlZG8oKSIgdGl0bGU9IldpZWRlcmhvbGVuIChTdHJn +K1kpIj48aW1nIHNyYz0iY3NzL2ljb25zL3JlZG8ucG5nIiBzdHlsZT0id2lkdGg6MTZweDtoZWln +aHQ6MTZweDt2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7Ij48L2J1dHRvbj4KICAgICAgICAgICAgICAg +IDxzcGFuIGNsYXNzPSJ0b29sYmFyLXNlcGFyYXRvciI+PC9zcGFuPgogICAgICAgICAgICAgICAg +PHNlbGVjdCBvbmNoYW5nZT0iRHJpdmVFZGl0b3IuaGVhZGluZyh0aGlzLnZhbHVlKTt0aGlzLnZh +bHVlPScnIiBzdHlsZT0iZm9udC1zaXplOjEycHg7cGFkZGluZzoycHggNHB4OyI+CiAgICAgICAg +ICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iIj5BYnNhdHo8L29wdGlvbj4KICAgICAgICAgICAg +ICAgICAgICA8b3B0aW9uIHZhbHVlPSJoMSIgc3R5bGU9ImZvbnQtc2l6ZToxOHB4O2ZvbnQtd2Vp +Z2h0OmJvbGQ7Ij5IMSDDnGJlcnNjaHJpZnQ8L29wdGlvbj4KICAgICAgICAgICAgICAgICAgICA8 +b3B0aW9uIHZhbHVlPSJoMiIgc3R5bGU9ImZvbnQtc2l6ZToxNnB4O2ZvbnQtd2VpZ2h0OmJvbGQ7 +Ij5IMiDDnGJlcnNjaHJpZnQ8L29wdGlvbj4KICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZh +bHVlPSJoMyIgc3R5bGU9ImZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OmJvbGQ7Ij5IMyDDnGJl +cnNjaHJpZnQ8L29wdGlvbj4KICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJoNCIg +c3R5bGU9ImZvbnQtc2l6ZToxM3B4O2ZvbnQtd2VpZ2h0OmJvbGQ7Ij5INCDDnGJlcnNjaHJpZnQ8 +L29wdGlvbj4KICAgICAgICAgICAgICAgIDwvc2VsZWN0PgogICAgICAgICAgICAgICAgPGJ1dHRv +biBvbmNsaWNrPSJEcml2ZUVkaXRvci5jb21tYW5kKCdib2xkJykiIHRpdGxlPSJGZXR0Ij48Yj5C +PC9iPjwvYnV0dG9uPgogICAgICAgICAgICAgICAgPGJ1dHRvbiBvbmNsaWNrPSJEcml2ZUVkaXRv +ci5jb21tYW5kKCdpdGFsaWMnKSIgdGl0bGU9Ikt1cnNpdiI+PGk+STwvaT48L2J1dHRvbj4KICAg +ICAgICAgICAgICAgIDxidXR0b24gb25jbGljaz0iRHJpdmVFZGl0b3IuY29tbWFuZCgndW5kZXJs +aW5lJykiIHRpdGxlPSJVbnRlcnN0cmljaGVuIj48dT5VPC91PjwvYnV0dG9uPgogICAgICAgICAg +ICAgICAgPGJ1dHRvbiBvbmNsaWNrPSJEcml2ZUVkaXRvci5jb21tYW5kKCdpbnNlcnRVbm9yZGVy +ZWRMaXN0JykiIHRpdGxlPSJBdWZ6w6RobHVuZyI+PGltZyBzcmM9ImNzcy9pY29ucy9idWxsZXRf +bGlzdC5naWYiIHN0eWxlPSJ3aWR0aDoxNnB4O2hlaWdodDoxNnB4O3ZlcnRpY2FsLWFsaWduOm1p +ZGRsZTsiPjwvYnV0dG9uPgogICAgICAgICAgICAgICAgPGJ1dHRvbiBvbmNsaWNrPSJEcml2ZUVk +aXRvci5jb21tYW5kKCdpbnNlcnRPcmRlcmVkTGlzdCcpIiB0aXRsZT0iTnVtbWVyaWVydGUgTGlz +dGUiPjxpbWcgc3JjPSJjc3MvaWNvbnMvbnVtYmVyZWRfbGlzdC5wbmciIHN0eWxlPSJ3aWR0aDox +NnB4O2hlaWdodDoxNnB4O3ZlcnRpY2FsLWFsaWduOm1pZGRsZTsiPjwvYnV0dG9uPgoKICAgICAg +ICAgICAgICAgIDxzZWxlY3QgaWQ9ImZvbnRTaXplU2VsZWN0IiBvbmNoYW5nZT0iRHJpdmVFZGl0 +b3IuZm9udFNpemUodGhpcy52YWx1ZSkiPgogICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFs +dWU9IiI+R3LDtsOfZTwvb3B0aW9uPgogICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9 +IjEyIj4xMjwvb3B0aW9uPgogICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IjE0Ij4x +NDwvb3B0aW9uPgogICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IjE2Ij4xNjwvb3B0 +aW9uPgogICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IjE4Ij4xODwvb3B0aW9uPgog +ICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IjIwIj4yMDwvb3B0aW9uPgogICAgICAg +ICAgICAgICAgPC9zZWxlY3Q+CgogICAgICAgICAgICAgICAgPGJ1dHRvbiBvbmNsaWNrPSJEcml2 +ZUVkaXRvci5jb2xvcignIzAwMDAwMCcpIiB0aXRsZT0iU2Nod2FyeiI+PHNwYW4gY2xhc3M9ImNv +bG9yLXN3YXRjaCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6IzAwMDAwMCI+PC9zcGFuPjwvYnV0 +dG9uPgogICAgICAgICAgICAgICAgPGJ1dHRvbiBvbmNsaWNrPSJEcml2ZUVkaXRvci5jb2xvcign +IzJFNEE2MicpIiB0aXRsZT0iUG9saXplaS1CbGF1Ij48c3BhbiBjbGFzcz0iY29sb3Itc3dhdGNo +IiBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjojMkU0QTYyIj48L3NwYW4+PC9idXR0b24+CiAgICAg +ICAgICAgICAgICA8YnV0dG9uIG9uY2xpY2s9IkRyaXZlRWRpdG9yLmNvbG9yKCcjM2E3YWEzJyki +IHRpdGxlPSJCbGF1Ij48c3BhbiBjbGFzcz0iY29sb3Itc3dhdGNoIiBzdHlsZT0iYmFja2dyb3Vu +ZC1jb2xvcjojM2E3YWEzIj48L3NwYW4+PC9idXR0b24+CiAgICAgICAgICAgICAgICA8YnV0dG9u +IG9uY2xpY2s9IkRyaXZlRWRpdG9yLmNvbG9yKCcjNmI5YmMzJykiIHRpdGxlPSJIZWxsYmxhdSI+ +PHNwYW4gY2xhc3M9ImNvbG9yLXN3YXRjaCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6IzZiOWJj +MyI+PC9zcGFuPjwvYnV0dG9uPgogICAgICAgICAgICAgICAgPGJ1dHRvbiBvbmNsaWNrPSJEcml2 +ZUVkaXRvci5jb2xvcignIzhiM2E2MicpIiB0aXRsZT0iQm9yZGVhdXgiPjxzcGFuIGNsYXNzPSJj +b2xvci1zd2F0Y2giIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiM4YjNhNjIiPjwvc3Bhbj48L2J1 +dHRvbj4KICAgICAgICAgICAgICAgIDxidXR0b24gb25jbGljaz0iRHJpdmVFZGl0b3IuY29sb3Io +JyNmZjAwMDAnKSIgdGl0bGU9IlJvdCI+PHNwYW4gY2xhc3M9ImNvbG9yLXN3YXRjaCIgc3R5bGU9 +ImJhY2tncm91bmQtY29sb3I6I2ZmMDAwMCI+PC9zcGFuPjwvYnV0dG9uPgoKICAgICAgICAgICAg +ICAgIDxzcGFuIGNsYXNzPSJ0b29sYmFyLXNlcGFyYXRvciI+PC9zcGFuPgogICAgICAgICAgICAg +ICAgPGJ1dHRvbiBvbmNsaWNrPSJEcml2ZUVkaXRvci5pbnNlcnRBY2NvcmRpb24oKSIgdGl0bGU9 +IkF1ZmtsYXBwYmFyZW4gVGV4dGJlcmVpY2ggZWluZsO8Z2VuIj48aW1nIHNyYz0iY3NzL2ljb25z +L0NoZXZyb24ucG5nIiBzdHlsZT0id2lkdGg6MTZweDtoZWlnaHQ6MTZweDt2ZXJ0aWNhbC1hbGln +bjptaWRkbGU7Ij48L2J1dHRvbj4KICAgICAgICAgICAgICAgIDxidXR0b24gb25jbGljaz0iRHJp +dmVFZGl0b3IuaW5zZXJ0RkFRKCkiIHRpdGxlPSJGQVEtQmVyZWljaCBtaXQgRnJhZ2UtQW50d29y +dC1QYWFyZW4gZWluZsO8Z2VuIj48aW1nIHNyYz0iY3NzL2ljb25zL2ZhcS5wbmciIHN0eWxlPSJ3 +aWR0aDoxNnB4O2hlaWdodDoxNnB4O3ZlcnRpY2FsLWFsaWduOm1pZGRsZTsiPjwvYnV0dG9uPgog +ICAgICAgICAgICAgICAgPGJ1dHRvbiBvbmNsaWNrPSJEcml2ZUVkaXRvci5pbnNlcnRUYWJsZSgp +IiB0aXRsZT0iVGFiZWxsZSBlaW5mw7xnZW4iPjxpbWcgc3JjPSJjc3MvaWNvbnMvdGFibGUucG5n +IiBzdHlsZT0id2lkdGg6MTZweDtoZWlnaHQ6MTZweDt2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7Ij48 +L2J1dHRvbj4KICAgICAgICAgICAgICAgIDxidXR0b24gb25jbGljaz0iRHJpdmVFZGl0b3IuaW5z +ZXJ0RGl2aWRlcigpIiB0aXRsZT0iSG9yaXpvbnRhbGUgVHJlbm5saW5pZSBlaW5mw7xnZW4iIHN0 +eWxlPSJmb250LXNpemU6MTRweDtsZXR0ZXItc3BhY2luZzotMXB4OyI+4oCVPC9idXR0b24+CiAg +ICAgICAgICAgICAgICA8YnV0dG9uIG9uY2xpY2s9IkRyaXZlRWRpdG9yLmluc2VydEluZm9ib3go +KSIgdGl0bGU9IkhlcnZvcmdlaG9iZW5lciBJbmZvYmxvY2sgbWl0IEFremVudGxpbmllIiBzdHls +ZT0iZm9udC1zaXplOjExcHg7Ij7ilpAgSW5mbzwvYnV0dG9uPgogICAgICAgICAgICAgICAgPGJ1 +dHRvbiBvbmNsaWNrPSJEcml2ZUVkaXRvci5pbnNlcnRJbXBvcnRhbnQoKSIgdGl0bGU9IldpY2h0 +aWdlbiBIaW53ZWlzIGVpbmbDvGdlbiI+PGltZyBzcmM9ImNzcy9pY29ucy9pbXBvcnRhbnQucG5n +IiBzdHlsZT0id2lkdGg6MTZweDtoZWlnaHQ6MTZweDt2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7Ij48 +L2J1dHRvbj4KICAgICAgICAgICAgICAgIDxidXR0b24gb25jbGljaz0iRHJpdmVFZGl0b3Iuc2hv +d1VwbG9hZE1vZGFsKCkiIHRpdGxlPSJEYXRlaWVuIGhvY2hsYWRlbiIgc3R5bGU9ImZvbnQtd2Vp +Z2h0OjYwMDsiPlVwbG9hZDwvYnV0dG9uPgogICAgICAgICAgICAgICAgPHNwYW4gc3R5bGU9ImZs +ZXg6MTsiPjwvc3Bhbj4KICAgICAgICAgICAgICAgIDxidXR0b24gb25jbGljaz0iRHJpdmVFZGl0 +b3IudG9nZ2xlUmF3KCkiIGlkPSJidG5SYXdNb2RlIiB0aXRsZT0iSFRNTC1RdWVsbHRleHQgYW56 +ZWlnZW4vYmVhcmJlaXRlbiIgc3R5bGU9ImZvbnQtc2l6ZToxMXB4O2ZvbnQtZmFtaWx5Om1vbm9z +cGFjZTtvcGFjaXR5OjAuNjsiPiZsdDsvJmd0OzwvYnV0dG9uPgogICAgICAgICAgICA8L2Rpdj4K +CiAgICAgICAgICAgIDwhLS0gRWRpdG9yIEFyZWEgLS0+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9 +ImVkaXRvci1hcmVhIj4KICAgICAgICAgICAgICAgIDxkaXYgaWQ9ImVkaXRvcklucHV0IiBjbGFz +cz0iZWRpdG9yLWlucHV0IiBjb250ZW50ZWRpdGFibGU9InRydWUiIHNwZWxsY2hlY2s9InRydWUi +PjwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgIDwhLS0gTWVkaWVuLVZlcndh +bHR1bmcgKG51ciBBbnplaWdlL0JlYXJiZWl0dW5nLCBVcGxvYWQgdWViZXIgVG9vbGJhcikgLS0+ +CiAgICAgICAgICAgIDxkaXYgaWQ9ImVkaXRvck1lZGlhUGFuZWwiIHN0eWxlPSJkaXNwbGF5Om5v +bmU7IGJvcmRlci10b3A6MXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvcik7IHBhZGRpbmc6OHB4 +IDE2cHg7IGJhY2tncm91bmQ6dmFyKC0tYmctY2FyZC1hbHQpOyBtYXgtaGVpZ2h0OjIyMHB4OyBv +dmVyZmxvdy15OmF1dG87Ij4KICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9ImRpc3BsYXk6Zmxl +eDsganVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47IGFsaWduLWl0ZW1zOmNlbnRlcjsgbWFy +Z2luLWJvdHRvbTo2cHg7Ij4KICAgICAgICAgICAgICAgICAgICA8c3BhbiBzdHlsZT0iZm9udC1z +aXplOjEycHg7IGZvbnQtd2VpZ2h0OjYwMDsgY29sb3I6dmFyKC0tdGV4dC1oZWFkaW5nKTsiPkhv +Y2hnZWxhZGVuZSBEYXRlaWVuPC9zcGFuPgogICAgICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9 +ImRpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjhweDsiPgogICAgICAgICAgICAg +ICAgICAgICAgICA8YnV0dG9uIG9uY2xpY2s9IkRyaXZlRWRpdG9yLnNob3dVcGxvYWRNb2RhbCgp +IiBzdHlsZT0iYmFja2dyb3VuZDpub25lOyBib3JkZXI6MXB4IHNvbGlkIHZhcigtLWJvcmRlci1j +b2xvcik7IGJvcmRlci1yYWRpdXM6M3B4OyBwYWRkaW5nOjJweCA4cHg7IGN1cnNvcjpwb2ludGVy +OyBmb250LXNpemU6MTFweDsgY29sb3I6dmFyKC0tdGV4dC1oZWFkaW5nKTsiPisgSGluenVmw7xn +ZW48L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBvbmNsaWNrPSJEcml2 +ZUVkaXRvci50b2dnbGVNZWRpYVBhbmVsKCkiIHN0eWxlPSJiYWNrZ3JvdW5kOm5vbmU7IGJvcmRl +cjpub25lOyBjdXJzb3I6cG9pbnRlcjsgZm9udC1zaXplOjE0cHg7IGNvbG9yOnZhcigtLXRleHQt +bXV0ZWQpOyI+JnRpbWVzOzwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAg +ICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGlkPSJlZGl0b3JNZWRpYUxp +c3QiPjwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgIDwhLS0gU2NobGFnd8O2 +cnRlciAodW50ZXJoYWxiIGRlcyBFZGl0b3JzKSAtLT4KICAgICAgICAgICAgPGRpdiBjbGFzcz0i +ZWRpdG9yLW1ldGEtcm93IiBpZD0iZWRpdG9yS2V5d29yZFJvdyIgc3R5bGU9ImZsZXgtd3JhcDp3 +cmFwO2JvcmRlci10b3A6MXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvcik7cGFkZGluZzo4cHgg +MTZweDttYXJnaW46MDsiPgogICAgICAgICAgICAgICAgPGxhYmVsIHN0eWxlPSJmb250LXNpemU6 +MTJweDsiPlNjaGxhZ3fDtnJ0ZXI6PC9sYWJlbD4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9 +ImtleXdvcmQtaW5wdXQtd3JhcCI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ia2V5 +d29yZC1pbnB1dC1jb250YWluZXIiIGlkPSJlZGl0b3JLZXl3b3JkcyIgb25jbGljaz0iZG9jdW1l +bnQuZ2V0RWxlbWVudEJ5SWQoJ2VkaXRvcktleXdvcmRJbnB1dCcpLmZvY3VzKCkiPgogICAgICAg +ICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgaWQ9ImVkaXRvcktleXdvcmRJbnB1 +dCIgcGxhY2Vob2xkZXI9InouQi4gVmVya2VocnNmw7xocnVuZywgQmF1c3RlbGxlLCBBdXRvYmFo +biwgSW5uZW5zdGFkdC4uLiI+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAg +ICAgICAgICAgPGRpdiBjbGFzcz0ia2V5d29yZC1hdXRvY29tcGxldGUiIGlkPSJrZXl3b3JkQXV0 +b2NvbXBsZXRlIj48L2Rpdj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAg +PGRpdiBpZD0ia2V5d29yZFN1Z2dlc3Rpb25zIiBzdHlsZT0id2lkdGg6MTAwJTttYXJnaW4tdG9w +OjRweDtkaXNwbGF5OmZsZXg7ZmxleC13cmFwOndyYXA7Z2FwOjRweDsiPjwvZGl2PgogICAgICAg +ICAgICA8L2Rpdj4KCiAgICAgICAgICAgIDwhLS0gRm9vdGVyIC0tPgogICAgICAgICAgICA8ZGl2 +IGNsYXNzPSJlZGl0b3ItZm9vdGVyIj4KICAgICAgICAgICAgICAgIDxidXR0b24gb25jbGljaz0i +RHJpdmVFZGl0b3IuY2FuY2VsV2l0aFByb21wdCgpIj5BYmJyZWNoZW48L2J1dHRvbj4KICAgICAg +ICAgICAgICAgIDxidXR0b24gb25jbGljaz0iRHJpdmVFZGl0b3IudG9nZ2xlTWVkaWFQYW5lbCgp +IiBzdHlsZT0iZm9udC1zaXplOjEycHg7IiB0aXRsZT0iSG9jaGdlbGFkZW5lIERhdGVpZW4gYW56 +ZWlnZW4sIGJlYXJiZWl0ZW4gb2RlciBsw7ZzY2hlbi4gTmV1ZSBEYXRlaWVuIGhvY2hsYWRlbjog +VXBsb2FkLUJ1dHRvbiBpbiBkZXIgV2Vya3pldWdsZWlzdGUgb2Jlbi4iPkFuaMOkbmdlIHZlcndh +bHRlbjwvYnV0dG9uPgogICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0ic2F2ZS1idG4iIG9u +Y2xpY2s9IkRyaXZlRWRpdG9yLnNhdmUoKSI+U3BlaWNoZXJuPC9idXR0b24+CiAgICAgICAgICAg +ICAgICA8YnV0dG9uIGNsYXNzPSJzYXZlLWJ0biIgb25jbGljaz0iRHJpdmVFZGl0b3Iuc2F2ZUFu +ZENsb3NlKCkiPlNwZWljaGVybiAmYW1wOyBTY2hsaWXDn2VuPC9idXR0b24+CiAgICAgICAgICAg +IDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgPC9kaXY+CgogICAgPCEtLSBNZWRpYSBGdWxsc2Ny +ZWVuIE1vZGFsIC0tPgogICAgPGRpdiBjbGFzcz0ibWVkaWEtbW9kYWwiIGlkPSJtZWRpYU1vZGFs +IiBvbmNsaWNrPSJjbG9zZU1lZGlhTW9kYWwoKSI+CiAgICAgICAgPGRpdiBjbGFzcz0ibWVkaWEt +bW9kYWwtY29udGVudCIgb25jbGljaz0iZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCkiPgogICAgICAg +ICAgICA8YnV0dG9uIGNsYXNzPSJtZWRpYS1tb2RhbC1jbG9zZSIgb25jbGljaz0iY2xvc2VNZWRp +YU1vZGFsKCkiPlNjaGxpZcOfZW48L2J1dHRvbj4KICAgICAgICAgICAgPGRpdiBpZD0ibWVkaWFN +b2RhbENvbnRhaW5lciI+PC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KCiAgICA8IS0t +IE1lZGlhIFVwbG9hZCBFaW5zdGllZ3MtTW9kYWwgKERhdGVpYXVzd2FobCArIEVya2xhZXJ1bmcp +IC0tPgogICAgPGRpdiBjbGFzcz0ibWVkaWEtdXBsb2FkLWRpYWxvZyIgaWQ9Im1lZGlhVXBsb2Fk +U3RhcnRNb2RhbCI+CiAgICAgICAgPGRpdiBjbGFzcz0ibWVkaWEtdXBsb2FkLWRpYWxvZy1jb250 +ZW50IiBzdHlsZT0id2lkdGg6NTIwcHg7Ij4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ibWVkaWEt +dXBsb2FkLWRpYWxvZy1oZWFkZXIiPgogICAgICAgICAgICAgICAgPHNwYW4+RGF0ZWllbiBob2No +bGFkZW48L3NwYW4+CiAgICAgICAgICAgICAgICA8YnV0dG9uIG9uY2xpY2s9IkRyaXZlRWRpdG9y +LmNsb3NlVXBsb2FkU3RhcnRNb2RhbCgpIj5TY2hsaWXDn2VuPC9idXR0b24+CiAgICAgICAgICAg +IDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJtZWRpYS11cGxvYWQtZGlhbG9nLWJvZHki +IHN0eWxlPSJwYWRkaW5nOjI0cHg7Ij4KICAgICAgICAgICAgICAgIDwhLS0gRHJhZyAmIERyb3Ag +Wm9uZSAtLT4KICAgICAgICAgICAgICAgIDxkaXYgaWQ9InVwbG9hZERyb3Bab25lIiBjbGFzcz0i +dXBsb2FkLWRyb3Atem9uZSI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBzdHlsZT0iZm9udC1z +aXplOjI4cHg7bWFyZ2luLWJvdHRvbTo4cHg7b3BhY2l0eTowLjU7Ij4rPC9kaXY+CiAgICAgICAg +ICAgICAgICAgICAgPGRpdiBzdHlsZT0iZm9udC1zaXplOjE1cHg7Zm9udC13ZWlnaHQ6NjAwO2Nv +bG9yOnZhcigtLXRleHQtaGVhZGluZyk7bWFyZ2luLWJvdHRvbTo0cHg7Ij5EYXRlaWVuIGhpZXJo +ZXIgemllaGVuPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBzdHlsZT0iZm9udC1zaXpl +OjEzcHg7Y29sb3I6dmFyKC0tdGV4dC1zZWNvbmRhcnkpO21hcmdpbi1ib3R0b206MTRweDsiPm9k +ZXIga2xpY2tlIGF1ZiBkZW4gQnV0dG9uPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGJ1dHRv +biBvbmNsaWNrPSJEcml2ZUVkaXRvci51cGxvYWRNZWRpYSgpIiBjbGFzcz0idXBsb2FkLXN0YXJ0 +LWJ0biI+RGF0ZWllbiBhdXN3w6RobGVuPC9idXR0b24+CiAgICAgICAgICAgICAgICA8L2Rpdj4K +ICAgICAgICAgICAgICAgIDwhLS0gSW5mby1CZXJlaWNoIC0tPgogICAgICAgICAgICAgICAgPGRp +diBzdHlsZT0ibWFyZ2luLXRvcDoxOHB4O3BhZGRpbmc6MTRweCAxNnB4O2JhY2tncm91bmQ6dmFy +KC0tYmctY2FyZC1hbHQsI2Y2ZjhmYSk7Ym9yZGVyLXJhZGl1czo2cHg7Ym9yZGVyOjFweCBzb2xp +ZCB2YXIoLS1ib3JkZXItY29sb3IsI2UwZTBlMCk7Ij4KICAgICAgICAgICAgICAgICAgICA8ZGl2 +IHN0eWxlPSJmb250LXNpemU6MTJweDtmb250LXdlaWdodDo2MDA7Y29sb3I6dmFyKC0tdGV4dC1o +ZWFkaW5nKTttYXJnaW4tYm90dG9tOjhweDsiPkhpbndlaXNlIHp1bSBVcGxvYWQ8L2Rpdj4KICAg +ICAgICAgICAgICAgICAgICA8dWwgc3R5bGU9Im1hcmdpbjowO3BhZGRpbmctbGVmdDoxOHB4O2Zv +bnQtc2l6ZToxMnB4O2NvbG9yOnZhcigtLXRleHQtc2Vjb25kYXJ5KTtsaW5lLWhlaWdodDoxLjg7 +Ij4KICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxzdHJvbmc+TWVocmZhY2hhdXN3YWhsPC9z +dHJvbmc+IG3DtmdsaWNoIChTdHJnL1NoaWZ0IGdlZHLDvGNrdCBoYWx0ZW4pPC9saT4KICAgICAg +ICAgICAgICAgICAgICAgICAgPGxpPjxzdHJvbmc+QmlsZGVyOjwvc3Ryb25nPiBKUEcsIFBORywg +R0lGLCBTVkcsIFdlYlA8L2xpPgogICAgICAgICAgICAgICAgICAgICAgICA8bGk+PHN0cm9uZz5E +b2t1bWVudGU6PC9zdHJvbmc+IFBERiwgV29yZCwgRXhjZWwsIFBvd2VyUG9pbnQ8L2xpPgogICAg +ICAgICAgICAgICAgICAgICAgICA8bGk+PHN0cm9uZz5NZWRpZW46PC9zdHJvbmc+IE1QNCwgV2Vi +TSwgTVAzLCBXQVYsIE9HRzwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5Gw7xyIGpl +ZGUgRGF0ZWkga2FubnN0IGR1IDxzdHJvbmc+VGl0ZWwsIFVudGVydGl0ZWwsIERhcnN0ZWxsdW5n +PC9zdHJvbmc+IHVuZCA8c3Ryb25nPlBsYXR6aWVydW5nPC9zdHJvbmc+IGVpbnplbG4gZmVzdGxl +Z2VuPC9saT4KICAgICAgICAgICAgICAgICAgICA8L3VsPgogICAgICAgICAgICAgICAgPC9kaXY+ +CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgPC9kaXY+CgogICAgPCEtLSBN +ZWRpYSBVcGxvYWQgRm9ybWF0aWVydW5ncy1EaWFsb2cgKHBybyBEYXRlaTogVGl0ZWwsIERhcnN0 +ZWxsdW5nLCBldGMuKSAtLT4KICAgIDxkaXYgY2xhc3M9Im1lZGlhLXVwbG9hZC1kaWFsb2ciIGlk +PSJtZWRpYVVwbG9hZERpYWxvZyI+CiAgICAgICAgPGRpdiBjbGFzcz0ibWVkaWEtdXBsb2FkLWRp +YWxvZy1jb250ZW50Ij4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ibWVkaWEtdXBsb2FkLWRpYWxv +Zy1oZWFkZXIiPgogICAgICAgICAgICAgICAgPHNwYW4gaWQ9InVwbG9hZERpYWxvZ1RpdGxlIj5N +ZWRpZW4gZWluZsO8Z2VuPC9zcGFuPgogICAgICAgICAgICAgICAgPGJ1dHRvbiBvbmNsaWNrPSJE +cml2ZUVkaXRvci5jbG9zZVVwbG9hZERpYWxvZygpIj5BYmJyZWNoZW48L2J1dHRvbj4KICAgICAg +ICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1lZGlhLXVwbG9hZC1kaWFsb2ct +Ym9keSI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ1cGxvYWQtcHJldmlldyIgaWQ9InVw +bG9hZFByZXZpZXciPjwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idXBsb2FkLWZv +cm0tZ3JvdXAiPgogICAgICAgICAgICAgICAgICAgIDxsYWJlbD5UaXRlbDwvbGFiZWw+CiAgICAg +ICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIGlkPSJ1cGxvYWRUaXRsZSIgcGxhY2Vo +b2xkZXI9IlRpdGVsIGRlciBEYXRlaS4uLiI+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAg +ICAgICAgICAgIDxkaXYgY2xhc3M9InVwbG9hZC1mb3JtLWdyb3VwIj4KICAgICAgICAgICAgICAg +ICAgICA8bGFiZWw+VW50ZXJ0aXRlbCAvIEJlc2NocmVpYnVuZzwvbGFiZWw+CiAgICAgICAgICAg +ICAgICAgICAgPHRleHRhcmVhIGlkPSJ1cGxvYWRDYXB0aW9uIiBwbGFjZWhvbGRlcj0iT3B0aW9u +YWxlciBVbnRlcnRpdGVsLi4uIj48L3RleHRhcmVhPgogICAgICAgICAgICAgICAgPC9kaXY+CiAg +ICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ1cGxvYWQtZm9ybS1ncm91cCIgaWQ9InVwbG9hZERp +c3BsYXlHcm91cCI+CiAgICAgICAgICAgICAgICAgICAgPGxhYmVsPkRhcnN0ZWxsdW5nPC9sYWJl +bD4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ1cGxvYWQtb3B0aW9uLWdyb3VwIiBp +ZD0idXBsb2FkRGlzcGxheU9wdGlvbnMiPjwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CiAg +ICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ1cGxvYWQtZm9ybS1ncm91cCIgaWQ9InVwbG9hZEFs +aWduR3JvdXAiIHN0eWxlPSJkaXNwbGF5Om5vbmU7Ij4KICAgICAgICAgICAgICAgICAgICA8bGFi +ZWw+QXVzcmljaHR1bmc8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InVw +bG9hZC1vcHRpb24tZ3JvdXAiIGlkPSJ1cGxvYWRBbGlnbk9wdGlvbnMiPgogICAgICAgICAgICAg +ICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJ1cGxvYWQtb3B0aW9uLWJ0biIgZGF0YS1hbGlnbj0i +bGVmdCIgb25jbGljaz0iRHJpdmVFZGl0b3Iuc2V0VXBsb2FkT3B0aW9uKCdhbGlnbicsdGhpcyki +PkxpbmtzPC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9InVw +bG9hZC1vcHRpb24tYnRuIGFjdGl2ZSIgZGF0YS1hbGlnbj0iY2VudGVyIiBvbmNsaWNrPSJEcml2 +ZUVkaXRvci5zZXRVcGxvYWRPcHRpb24oJ2FsaWduJyx0aGlzKSI+TWl0dGlnPC9idXR0b24+CiAg +ICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9InVwbG9hZC1vcHRpb24tYnRuIiBk +YXRhLWFsaWduPSJyaWdodCIgb25jbGljaz0iRHJpdmVFZGl0b3Iuc2V0VXBsb2FkT3B0aW9uKCdh +bGlnbicsdGhpcykiPlJlY2h0czwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgIDwvZGl2Pgog +ICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ1cGxvYWQt +Zm9ybS1ncm91cCIgaWQ9InVwbG9hZFNpemVHcm91cCIgc3R5bGU9ImRpc3BsYXk6bm9uZTsiPgog +ICAgICAgICAgICAgICAgICAgIDxsYWJlbD5CaWxkZ3LDtsOfZTwvbGFiZWw+CiAgICAgICAgICAg +ICAgICAgICAgPGRpdiBjbGFzcz0idXBsb2FkLW9wdGlvbi1ncm91cCIgaWQ9InVwbG9hZFNpemVP +cHRpb25zIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0idXBsb2FkLW9w +dGlvbi1idG4gYWN0aXZlIiBkYXRhLXNpemU9InRodW1ibmFpbCIgb25jbGljaz0iRHJpdmVFZGl0 +b3Iuc2V0VXBsb2FkT3B0aW9uKCdzaXplJyx0aGlzKSI+Vm9yc2NoYXViaWxkPC9idXR0b24+CiAg +ICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9InVwbG9hZC1vcHRpb24tYnRuIiBk +YXRhLXNpemU9ImxhcmdlIiBvbmNsaWNrPSJEcml2ZUVkaXRvci5zZXRVcGxvYWRPcHRpb24oJ3Np +emUnLHRoaXMpIj5Hcm/DnyAobWF4IDY0MHg0ODApPC9idXR0b24+CiAgICAgICAgICAgICAgICAg +ICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAg +ICAgICAgIDxkaXYgaWQ9InVwbG9hZFByb2dyZXNzQ29udGFpbmVyIiBzdHlsZT0iZGlzcGxheTpu +b25lO3BhZGRpbmc6MCAyMHB4IDEycHg7Ij4KICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9ImRp +c3BsYXk6ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbjttYXJnaW4tYm90dG9tOjRw +eDsiPgogICAgICAgICAgICAgICAgICAgIDxzcGFuIGlkPSJ1cGxvYWRQcm9ncmVzc0xhYmVsIiBz +dHlsZT0iZm9udC1zaXplOjEycHg7Y29sb3I6dmFyKC0tdGV4dC1zZWNvbmRhcnkpOyI+V2lyZCBo +b2NoZ2VsYWRlbi4uLjwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICA8c3BhbiBpZD0idXBsb2Fk +UHJvZ3Jlc3NQY3QiIHN0eWxlPSJmb250LXNpemU6MTJweDtmb250LXdlaWdodDo2MDA7Y29sb3I6 +dmFyKC0tdGV4dC1oZWFkaW5nKTsiPjAlPC9zcGFuPgogICAgICAgICAgICAgICAgPC9kaXY+CiAg +ICAgICAgICAgICAgICA8ZGl2IHN0eWxlPSJ3aWR0aDoxMDAlO2hlaWdodDo2cHg7YmFja2dyb3Vu +ZDp2YXIoLS1iZy1tYWluLCNlZWUpO2JvcmRlci1yYWRpdXM6M3B4O292ZXJmbG93OmhpZGRlbjsi +PgogICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9InVwbG9hZFByb2dyZXNzQmFyIiBzdHlsZT0i +d2lkdGg6MCU7aGVpZ2h0OjEwMCU7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoOTBkZWcsIzM0 +OThkYiwjMmVjYzcxKTtib3JkZXItcmFkaXVzOjNweDt0cmFuc2l0aW9uOndpZHRoIDAuMTVzIGVh +c2U7Ij48L2Rpdj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBp +ZD0idXBsb2FkUHJvZ3Jlc3NTaXplIiBzdHlsZT0iZm9udC1zaXplOjExcHg7Y29sb3I6dmFyKC0t +dGV4dC1zZWNvbmRhcnkpO21hcmdpbi10b3A6M3B4O3RleHQtYWxpZ246cmlnaHQ7Ij48L2Rpdj4K +ICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InVwbG9hZC1kaWFsb2ct +Zm9vdGVyIj4KICAgICAgICAgICAgICAgIDxidXR0b24gb25jbGljaz0iRHJpdmVFZGl0b3IuY2xv +c2VVcGxvYWREaWFsb2coKSI+QWJicmVjaGVuPC9idXR0b24+CiAgICAgICAgICAgICAgICA8YnV0 +dG9uIGNsYXNzPSJwcmltYXJ5IiBpZD0idXBsb2FkQ29uZmlybUJ0biIgb25jbGljaz0iRHJpdmVF +ZGl0b3IuY29uZmlybVVwbG9hZCgpIj5FaW5mw7xnZW48L2J1dHRvbj4KICAgICAgICAgICAgPC9k +aXY+CiAgICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KCiAgICA8IS0tIE1lZGlhIENvbnRleHQgTWVu +dSAoRWRpdG9yKSAtLT4KICAgIDxkaXYgY2xhc3M9Im1lZGlhLWNvbnRleHQtbWVudSIgaWQ9Im1l +ZGlhQ29udGV4dE1lbnUiPgogICAgICAgIDxkaXYgc3R5bGU9InBhZGRpbmc6NHB4IDEwcHg7IGZv +bnQtc2l6ZToxMXB4OyBjb2xvcjp2YXIoLS10ZXh0LW11dGVkKTsgZm9udC13ZWlnaHQ6NjAwOyI+ +QVVTUklDSFRVTkc8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJtZWRpYS1jb250ZXh0LWdyb3Vw +Ij4KICAgICAgICAgICAgPGJ1dHRvbiBkYXRhLWFsaWduPSJsZWZ0IiBvbmNsaWNrPSJEcml2ZUVk +aXRvci5jb250ZXh0QWxpZ24oJ2xlZnQnKSI+TGlua3M8L2J1dHRvbj4KICAgICAgICAgICAgPGJ1 +dHRvbiBkYXRhLWFsaWduPSJjZW50ZXIiIG9uY2xpY2s9IkRyaXZlRWRpdG9yLmNvbnRleHRBbGln +bignY2VudGVyJykiPk1pdHRpZzwvYnV0dG9uPgogICAgICAgICAgICA8YnV0dG9uIGRhdGEtYWxp +Z249InJpZ2h0IiBvbmNsaWNrPSJEcml2ZUVkaXRvci5jb250ZXh0QWxpZ24oJ3JpZ2h0JykiPlJl +Y2h0czwvYnV0dG9uPgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9Im1lZGlhLWNv +bnRleHQtc2VwIj48L2Rpdj4KICAgICAgICA8YnV0dG9uIG9uY2xpY2s9IkRyaXZlRWRpdG9yLmNv +bnRleHRFZGl0Q2FwdGlvbigpIj5VbnRlcnRpdGVsIGJlYXJiZWl0ZW48L2J1dHRvbj4KICAgICAg +ICA8YnV0dG9uIG9uY2xpY2s9IkRyaXZlRWRpdG9yLmNvbnRleHRSZW1vdmUoKSIgc3R5bGU9ImNv +bG9yOiNkYzM1NDU7Ij5FbnRmZXJuZW48L2J1dHRvbj4KICAgIDwvZGl2PgoKICAgIDwhLS0gUmV2 +aWV3IFNpZGUgUGFuZWwgLS0+CiAgICA8ZGl2IGNsYXNzPSJyZXZpZXctcGFuZWwtb3ZlcmxheSIg +aWQ9InJldmlld1BhbmVsT3ZlcmxheSIgb25jbGljaz0iRHJpdmVHb3Zlcm5hbmNlLmNsb3NlUXVl +dWUoKSI+PC9kaXY+CiAgICA8ZGl2IGNsYXNzPSJyZXZpZXctcGFuZWwiIGlkPSJyZXZpZXdQYW5l +bCI+CiAgICAgICAgPGRpdiBjbGFzcz0icmV2aWV3LXBhbmVsLWhlYWRlciI+CiAgICAgICAgICAg +IFByw7xmdW5nZW4KICAgICAgICAgICAgPGJ1dHRvbiBvbmNsaWNrPSJEcml2ZUdvdmVybmFuY2Uu +Y2xvc2VRdWV1ZSgpIj5TY2hsaWXDn2VuPC9idXR0b24+CiAgICAgICAgPC9kaXY+CiAgICAgICAg +PGRpdiBjbGFzcz0icmV2aWV3LXBhbmVsLWJvZHkiIGlkPSJyZXZpZXdQYW5lbEJvZHkiPjwvZGl2 +PgogICAgPC9kaXY+CgogICAgPCEtLSBSZXZpZXcgQ29tbWVudCBEaWFsb2cgLS0+CiAgICA8ZGl2 +IGNsYXNzPSJyZXZpZXctZGlhbG9nIiBpZD0icmV2aWV3RGlhbG9nIiBvbmNsaWNrPSJpZihldmVu +dC50YXJnZXQ9PT10aGlzKURyaXZlR292ZXJuYW5jZS5jbG9zZVJldmlld0RpYWxvZygpIj4KICAg +ICAgICA8ZGl2IGNsYXNzPSJyZXZpZXctZGlhbG9nLWNvbnRlbnQiPgogICAgICAgICAgICA8ZGl2 +IGNsYXNzPSJyZXZpZXctZGlhbG9nLWhlYWRlciIgaWQ9InJldmlld0RpYWxvZ0hlYWRlciI+CiAg +ICAgICAgICAgICAgICA8c3Bhbj5Eb2t1bWVudCBwcsO8ZmVuPC9zcGFuPgogICAgICAgICAgICAg +ICAgPHNwYW4gaWQ9InJldmlld0RpYWxvZ0luZm8iIHN0eWxlPSJmb250LXNpemU6MTJweDtmb250 +LXdlaWdodDo0MDA7b3BhY2l0eTowLjk7Ij48L3NwYW4+CiAgICAgICAgICAgIDwvZGl2PgogICAg +ICAgICAgICA8ZGl2IGNsYXNzPSJyZXZpZXctZGlhbG9nLWJvZHkiPgogICAgICAgICAgICAgICAg +PGRpdiBjbGFzcz0icmV2aWV3LXNwbGl0Ij4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNz +PSJyZXZpZXctc3BsaXQtbGVmdCI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxoMz5BcnRpa2Vs +aW5oYWx0PC9oMz4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0icmV2aWV3QXJ0aWNs +ZUNvbnRlbnQiIHN0eWxlPSJmb250LXNpemU6MTNweDtsaW5lLWhlaWdodDoxLjc7Ij48L2Rpdj4K +ICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNz +PSJyZXZpZXctc3BsaXQtcmlnaHQiPgogICAgICAgICAgICAgICAgICAgICAgICA8aDM+QmlzaGVy +aWdlIEtvbW1lbnRhcmU8L2gzPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJy +ZXZpZXctcHJldi1jb21tZW50cyIgaWQ9InJldmlld1ByZXZDb21tZW50cyI+PC9kaXY+CiAgICAg +ICAgICAgICAgICAgICAgICAgIDxoMz5EZWluIEtvbW1lbnRhcjwvaDM+CiAgICAgICAgICAgICAg +ICAgICAgICAgIDxwIGlkPSJyZXZpZXdEaWFsb2dIaW50IiBzdHlsZT0iZm9udC1zaXplOjExcHg7 +Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCk7bGluZS1oZWlnaHQ6MS41O21hcmdpbi1ib3R0b206NHB4 +OyI+PC9wPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPSJkaXNwbGF5OmZsZXg7 +Z2FwOjNweDttYXJnaW4tYm90dG9tOjRweDtmbGV4LXdyYXA6d3JhcDsiPgogICAgICAgICAgICAg +ICAgICAgICAgICAgICAgPGJ1dHRvbiBvbmNsaWNrPSJkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgn +cmV2aWV3RGlhbG9nQ29tbWVudCcpLmZvY3VzKCk7ZG9jdW1lbnQuZXhlY0NvbW1hbmQoJ2JvbGQn +KSIgc3R5bGU9InBhZGRpbmc6MnB4IDhweDtib3JkZXI6MXB4IHNvbGlkIHZhcigtLWJvcmRlci1j +b2xvcik7YmFja2dyb3VuZDp2YXIoLS1iZy1jYXJkLWFsdCk7Ym9yZGVyLXJhZGl1czozcHg7Y3Vy +c29yOnBvaW50ZXI7Zm9udC13ZWlnaHQ6NzAwO2ZvbnQtc2l6ZToxMnB4O2NvbG9yOnZhcigtLXRl +eHQtcHJpbWFyeSk7Ij5GPC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0 +dG9uIG9uY2xpY2s9ImRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZXZpZXdEaWFsb2dDb21tZW50 +JykuZm9jdXMoKTtkb2N1bWVudC5leGVjQ29tbWFuZCgnaXRhbGljJykiIHN0eWxlPSJwYWRkaW5n +OjJweCA4cHg7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3IpO2JhY2tncm91bmQ6 +dmFyKC0tYmctY2FyZC1hbHQpO2JvcmRlci1yYWRpdXM6M3B4O2N1cnNvcjpwb2ludGVyO2ZvbnQt +c3R5bGU6aXRhbGljO2ZvbnQtc2l6ZToxMnB4O2NvbG9yOnZhcigtLXRleHQtcHJpbWFyeSk7Ij5L +PC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIG9uY2xpY2s9ImRv +Y3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZXZpZXdEaWFsb2dDb21tZW50JykuZm9jdXMoKTtkb2N1 +bWVudC5leGVjQ29tbWFuZCgndW5kZXJsaW5lJykiIHN0eWxlPSJwYWRkaW5nOjJweCA4cHg7Ym9y +ZGVyOjFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3IpO2JhY2tncm91bmQ6dmFyKC0tYmctY2Fy +ZC1hbHQpO2JvcmRlci1yYWRpdXM6M3B4O2N1cnNvcjpwb2ludGVyO3RleHQtZGVjb3JhdGlvbjp1 +bmRlcmxpbmU7Zm9udC1zaXplOjEycHg7Y29sb3I6dmFyKC0tdGV4dC1wcmltYXJ5KTsiPlU8L2J1 +dHRvbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gb25jbGljaz0iZG9jdW1l +bnQuZ2V0RWxlbWVudEJ5SWQoJ3Jldmlld0RpYWxvZ0NvbW1lbnQnKS5mb2N1cygpO2RvY3VtZW50 +LmV4ZWNDb21tYW5kKCdpbnNlcnRVbm9yZGVyZWRMaXN0JykiIHN0eWxlPSJwYWRkaW5nOjJweCA4 +cHg7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3IpO2JhY2tncm91bmQ6dmFyKC0t +YmctY2FyZC1hbHQpO2JvcmRlci1yYWRpdXM6M3B4O2N1cnNvcjpwb2ludGVyO2ZvbnQtc2l6ZTox +MnB4O2NvbG9yOnZhcigtLXRleHQtcHJpbWFyeSk7Ij4mYnVsbDs8L2J1dHRvbj4KICAgICAgICAg +ICAgICAgICAgICAgICAgICAgIDxidXR0b24gb25jbGljaz0iZG9jdW1lbnQuZ2V0RWxlbWVudEJ5 +SWQoJ3Jldmlld0RpYWxvZ0NvbW1lbnQnKS5mb2N1cygpO2RvY3VtZW50LmV4ZWNDb21tYW5kKCdm +b3JlQ29sb3InLGZhbHNlLCcjZGMzNTQ1JykiIHN0eWxlPSJwYWRkaW5nOjJweCA4cHg7Ym9yZGVy +OjFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3IpO2JhY2tncm91bmQ6dmFyKC0tYmctY2FyZC1h +bHQpO2JvcmRlci1yYWRpdXM6M3B4O2N1cnNvcjpwb2ludGVyO2ZvbnQtc2l6ZToxMnB4O2NvbG9y +OiNkYzM1NDU7Zm9udC13ZWlnaHQ6NzAwOyI+Um90PC9idXR0b24+CiAgICAgICAgICAgICAgICAg +ICAgICAgICAgICA8YnV0dG9uIG9uY2xpY2s9ImRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZXZp +ZXdEaWFsb2dDb21tZW50JykuZm9jdXMoKTtkb2N1bWVudC5leGVjQ29tbWFuZCgncmVtb3ZlRm9y +bWF0JykiIHN0eWxlPSJwYWRkaW5nOjJweCA4cHg7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1ib3Jk +ZXItY29sb3IpO2JhY2tncm91bmQ6dmFyKC0tYmctY2FyZC1hbHQpO2JvcmRlci1yYWRpdXM6M3B4 +O2N1cnNvcjpwb2ludGVyO2ZvbnQtc2l6ZToxMnB4O2NvbG9yOnZhcigtLXRleHQtcHJpbWFyeSk7 +Ij5TdGFuZGFyZDwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAg +ICAgICAgICAgICAgICAgICAgPGRpdiBpZD0icmV2aWV3RGlhbG9nQ29tbWVudCIgY29udGVudGVk +aXRhYmxlPSJ0cnVlIiBzdHlsZT0ibWluLWhlaWdodDoxMDBweDtmbGV4OjE7cGFkZGluZzoxMHB4 +O2JvcmRlcjoxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG9yKTtib3JkZXItcmFkaXVzOjRweDtm +b250LXNpemU6MTNweDtiYWNrZ3JvdW5kOnZhcigtLWJnLWlucHV0KTtjb2xvcjp2YXIoLS10ZXh0 +LXByaW1hcnkpO2xpbmUtaGVpZ2h0OjEuNjtvdmVyZmxvdy15OmF1dG87IiBkYXRhLXBsYWNlaG9s +ZGVyPSJCZWdyw7xuZHVuZyBlaW5nZWJlbi4uLiI+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAg +PC9kaXY+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAg +ICAgIDxkaXYgY2xhc3M9InJldmlldy1kaWFsb2ctZm9vdGVyIj4KICAgICAgICAgICAgICAgIDxi +dXR0b24gb25jbGljaz0iRHJpdmVHb3Zlcm5hbmNlLmNsb3NlUmV2aWV3RGlhbG9nKCkiPlNjaGxp +ZcOfZW48L2J1dHRvbj4KICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9ImJ0bi1jb25maXJt +IiBpZD0icmV2aWV3RGlhbG9nQ29uZmlybSI+QmVzdMOkdGlnZW48L2J1dHRvbj4KICAgICAgICAg +ICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KCiAgICA8IS0tIEdvdmVybmFuY2Ug +QWRtaW4gUGFuZWwgLS0+CiAgICA8ZGl2IGNsYXNzPSJnb3YtYWRtaW4tcGFuZWwiIGlkPSJnb3ZB +ZG1pblBhbmVsIiBvbmNsaWNrPSJpZihldmVudC50YXJnZXQ9PT10aGlzKURyaXZlR292ZXJuYW5j +ZS5jbG9zZUFkbWluKCkiPgogICAgICAgIDxkaXYgY2xhc3M9Imdvdi1hZG1pbi1jb250ZW50Ij4K +ICAgICAgICAgICAgPGRpdiBjbGFzcz0iZ292LWFkbWluLWhlYWRlciI+CiAgICAgICAgICAgICAg +ICBHb3Zlcm5hbmNlLVZlcndhbHR1bmcKICAgICAgICAgICAgICAgIDxidXR0b24gb25jbGljaz0i +RHJpdmVHb3Zlcm5hbmNlLmNsb3NlQWRtaW4oKSI+U2NobGllw59lbjwvYnV0dG9uPgogICAgICAg +ICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iZ292LWFkbWluLXRvb2xiYXIiIGlk +PSJnb3ZBZG1pblRvb2xiYXIiIHN0eWxlPSJqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2Vlbjsi +PgogICAgICAgICAgICAgICAgPGRpdiBzdHlsZT0iZGlzcGxheTpmbGV4O2dhcDo4cHg7ZmxleC13 +cmFwOndyYXA7Ij4KICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJnb3YtYWRkLWJ0 +biIgc3R5bGU9InBhZGRpbmc6NnB4IDE0cHg7IiBvbmNsaWNrPSJEcml2ZUdvdmVybmFuY2UuZWRp +dFN0YXJ0c2VpdGUoKTsiIHRpdGxlPSJEZW4gQmVncsO8w591bmdzdGV4dCBhdWYgZGVyIFN0YXJ0 +c2VpdGUgYmVhcmJlaXRlbiI+U3RhcnRzZWl0ZTwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAg +IDxidXR0b24gY2xhc3M9Imdvdi1hZGQtYnRuIiBzdHlsZT0icGFkZGluZzo2cHggMTRweDsiIG9u +Y2xpY2s9IkRyaXZlR292ZXJuYW5jZS5zaG93RW5nYWdlbWVudFN0YXRzKCk7IiB0aXRsZT0iU3Rh +dGlzdGlrOiBXZXIgaGF0IHdpZSB2aWVsZSBBcnRpa2VsIGVyc3RlbGx0LCBiZWFyYmVpdGV0IG9k +ZXIgZ2VwcsO8ZnQ/Ij5Vc2VyLUVuZ2FnZW1lbnQ8L2J1dHRvbj4KICAgICAgICAgICAgICAgICAg +ICA8YnV0dG9uIGNsYXNzPSJnb3YtYWRkLWJ0biIgc3R5bGU9InBhZGRpbmc6NnB4IDE0cHg7IiBv +bmNsaWNrPSJEcml2ZUdvdmVybmFuY2Uuc2hvd0FkbWluR3VpZGUoKTsiIHRpdGxlPSJBbmxlaXR1 +bmcgZsO8ciBFaW5zdGVpZ2VyOiBGYXJiZW4gw6RuZGVybiwgVGV4dGUgYW5wYXNzZW4sIERhdGVp +ZW4gdmVyc3RlaGVuIj5BZG1pbi1BbmxlaXR1bmc8L2J1dHRvbj4KICAgICAgICAgICAgICAgICAg +ICA8YnV0dG9uIGNsYXNzPSJnb3YtYWRkLWJ0biBnb3YtYnRuLWRhbmdlciIgc3R5bGU9InBhZGRp +bmc6NnB4IDE0cHg7IiBvbmNsaWNrPSJEcml2ZUdvdmVybmFuY2UuY2xvc2VBZG1pbigpO0RyaXZl +UG9ydGFsLnNob3dUcmFzaCgpOyIgdGl0bGU9IkdlbMO2c2NodGUgQXJ0aWtlbCBhbnplaWdlbiB1 +bmQgZ2dmLiB3aWVkZXJoZXJzdGVsbGVuICgyOCBUYWdlIEF1ZmJld2FocnVuZykiPlBhcGllcmtv +cmI8L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJnb3YtYWRkLWJ0 +biIgc3R5bGU9InBhZGRpbmc6NnB4IDE0cHg7IiBvbmNsaWNrPSJEcml2ZUdvdmVybmFuY2Uuc2hv +d0ltcG9ydEV4cG9ydCgpOyIgdGl0bGU9IkFydGlrZWwgdW5kIE1lZGllbiBleHBvcnRpZXJlbiBv +ZGVyIGltcG9ydGllcmVuIj5JbXBvcnQgLyBFeHBvcnQ8L2J1dHRvbj4KICAgICAgICAgICAgICAg +IDwvZGl2PgogICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iZ292LWFkZC1idG4iIHN0eWxl +PSJwYWRkaW5nOjZweCAxNHB4OyIgb25jbGljaz0ic2hvd0NvbnRhY3RGb3JtKCk7IiB0aXRsZT0i +VGVjaG5pc2NoZSBIaWxmZSB2b20gRW50d2lja2xlciBhbmZvcmRlcm4iPlRlY2huaXNjaGVyIFN1 +cHBvcnQ8L2J1dHRvbj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9 +Imdvdi1hZG1pbi1ib2R5IiBpZD0iZ292QWRtaW5Cb2R5Ij48L2Rpdj4KICAgICAgICA8L2Rpdj4K +ICAgIDwvZGl2PgoKICAgIDwhLS0gUmV2aXNpb25zaGlzdG9yaWUgTW9kYWwgLS0+CiAgICA8ZGl2 +IGNsYXNzPSJyZXZpc2lvbi1tb2RhbCIgaWQ9InJldmlzaW9uTW9kYWwiIG9uY2xpY2s9ImlmKGV2 +ZW50LnRhcmdldD09PXRoaXMpRHJpdmVQb3J0YWwuY2xvc2VSZXZpc2lvbnMoKSI+CiAgICAgICAg +PGRpdiBjbGFzcz0icmV2aXNpb24tY29udGFpbmVyIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0i +cmV2aXNpb24tc2lkZWJhciI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJyZXZpc2lvbi1z +aWRlYmFyLWhlYWRlciI+CiAgICAgICAgICAgICAgICAgICAgVmVyc2lvbmVuCiAgICAgICAgICAg +ICAgICAgICAgPGJ1dHRvbiBvbmNsaWNrPSJEcml2ZVBvcnRhbC5jbG9zZVJldmlzaW9ucygpIj5T +Y2hsaWXDn2VuPC9idXR0b24+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAg +IDxkaXYgY2xhc3M9InJldmlzaW9uLWxpc3QiIGlkPSJyZXZpc2lvbkxpc3QiPjwvZGl2PgogICAg +ICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0icmV2aXNpb24tbWFpbiI+CiAg +ICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJyZXZpc2lvbi10b29sYmFyIiBpZD0icmV2aXNpb25U +b29sYmFyIj48L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InJldmlzaW9uLWNvbnRl +bnQiIGlkPSJyZXZpc2lvbkNvbnRlbnQiPgogICAgICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9 +InRleHQtYWxpZ246Y2VudGVyO2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpO21hcmdpbi10b3A6NjBw +eDsiPgogICAgICAgICAgICAgICAgICAgICAgICBWZXJzaW9uIGF1c3dhZWhsZW4sIHVtIGRlbiBJ +bmhhbHQgYW56dXplaWdlbgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAg +ICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgPC9kaXY+Cgog +ICAgPCEtLSBDcm9zc2xpbmsgUG9wb3ZlciAtLT4KICAgIDxkaXYgY2xhc3M9ImNyb3NzbGluay1w +b3BvdmVyIiBpZD0iY3Jvc3NsaW5rUG9wb3ZlciI+PC9kaXY+CgogICAgPCEtLSBBcnRpa2VsLVJl +ZmVyZW56IERyb3Bkb3duICgjLUF1dG9jb21wbGV0ZSkgLS0+CiAgICA8ZGl2IGNsYXNzPSJ4cmVm +LWRyb3Bkb3duIiBpZD0ieHJlZkRyb3Bkb3duIj4KICAgICAgICA8ZGl2IGNsYXNzPSJ4cmVmLXNl +YXJjaCI+PGlucHV0IHR5cGU9InRleHQiIGlkPSJ4cmVmU2VhcmNoSW5wdXQiIHBsYWNlaG9sZGVy +PSJBcnRpa2VsIHN1Y2hlbi4uLiIgYXV0b2NvbXBsZXRlPSJvZmYiPjwvZGl2PgogICAgICAgIDxk +aXYgY2xhc3M9InhyZWYtbGlzdCIgaWQ9InhyZWZMaXN0Ij48L2Rpdj4KICAgIDwvZGl2PgoKICAg +IDwhLS0gU2NobGFnd29ydC1WZXJ3YWx0dW5nIE1vZGFsIC0tPgogICAgPGRpdiBjbGFzcz0ia3ct +bWFuYWdlLW1vZGFsIiBpZD0ia3dNYW5hZ2VNb2RhbCIgb25jbGljaz0iaWYoZXZlbnQudGFyZ2V0 +PT09dGhpcylEcml2ZUdvdmVybmFuY2UuY2xvc2VLd01hbmFnZSgpIj4KICAgICAgICA8ZGl2IGNs +YXNzPSJrdy1tYW5hZ2UtY29udGVudCI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9Imt3LW1hbmFn +ZS1oZWFkZXIiPgogICAgICAgICAgICAgICAgPHNwYW4gaWQ9Imt3TWFuYWdlVGl0bGUiPlNjaGxh +Z3dvcnQgYmVhcmJlaXRlbjwvc3Bhbj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxk +aXYgY2xhc3M9Imt3LW1hbmFnZS1ib2R5IiBpZD0ia3dNYW5hZ2VCb2R5Ij48L2Rpdj4KICAgICAg +ICAgICAgPGRpdiBjbGFzcz0ia3ctbWFuYWdlLWZvb3RlciIgaWQ9Imt3TWFuYWdlRm9vdGVyIj48 +L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgIDwvZGl2PgoKICAgIDwhLS0gVG9hc3QgLS0+CiAgICA8 +ZGl2IGNsYXNzPSJ0b2FzdCIgaWQ9InRvYXN0Ij48L2Rpdj4KCiAgICA8IS0tIEZvb3RlciAtLT4K +ICAgIDxmb290ZXI+CiAgICAgICAgPHA+RC5SLkkuVi5FLiAtIFBvbGl6ZWkgTlJXIHwgUFAgRG9y +dG11bmQgfCA8Yj48dT5WSTMtSW50ZXJuZXM8L3U+PC9iPiBJbmZvcm1hdGlvbiBDbHVzdGVyPC9w +PgogICAgICAgIDxzcGFuIGlkPSJmb290ZXJSZWFkTW9kZSIgc3R5bGU9ImRpc3BsYXk6bm9uZTtj +b2xvcjojN2ViOGRhO2ZvbnQtc2l6ZToxMnB4O2N1cnNvcjpwb2ludGVyO29wYWNpdHk6MC44OyIg +b25jbGljaz0ic2hvd1JlYWRNb2RlSW5mbygpIiB0aXRsZT0iRHUgYmVmaW5kZXN0IGRpY2ggaW0g +TGVzZW1vZHVzLiBLbGlja2UgaGllciBmw7xyIG1laHIgSW5mb3MuIj5MZXNlbW9kdXM8L3NwYW4+ +CiAgICAgICAgPGRpdiBjbGFzcz0iZm9vdGVyLXJpZ2h0Ij4KICAgICAgICAgICAgPGEgb25jbGlj +az0ic2hvd0hlbHAoKSIgc3R5bGU9ImZvbnQtd2VpZ2h0OjcwMDsiPkhpbGZlPC9hPgogICAgICAg +ICAgICA8YSBvbmNsaWNrPSJEcml2ZUdvdmVybmFuY2Uuc2hvd0ltcHJpbnQoKSI+RnJlaWdhYmV2 +ZXJhbnR3b3J0bGljaGU8L2E+CiAgICAgICAgICAgIDxhIGNsYXNzPSJmb290ZXItdmVyc2lvbiIg +b25jbGljaz0ic2hvd1ZlcnNpb25IaXN0b3J5KCkiPnYxLjA8L2E+CiAgICAgICAgICAgIDxzcGFu +IGlkPSJmb290ZXJTeW5jU3RhdHVzIiBjbGFzcz0iZm9vdGVyLXN5bmMtc3RhdHVzIj48L3NwYW4+ +CiAgICAgICAgPC9kaXY+CiAgICA8L2Zvb3Rlcj4KCiAgICA8IS0tIFZlcnNpb25zaGlzdG9yaWUg +LS0+CiAgICA8ZGl2IGNsYXNzPSJ2ZXJzaW9uLW1vZGFsIiBpZD0idmVyc2lvbk1vZGFsIiBvbmNs +aWNrPSJpZihldmVudC50YXJnZXQ9PT10aGlzKWNsb3NlVmVyc2lvbkhpc3RvcnkoKSI+CiAgICAg +ICAgPGRpdiBjbGFzcz0idmVyc2lvbi1tb2RhbC1jb250ZW50Ij4KICAgICAgICAgICAgPGRpdiBj +bGFzcz0idmVyc2lvbi1tb2RhbC1oZWFkZXIiPgogICAgICAgICAgICAgICAgVmVyc2lvbnNoaXN0 +b3JpZQogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idmVyc2lvbi1t +b2RhbC1ib2R5Ij4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InZlcnNpb24taXRlbSI+CiAg +ICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InZlcnNpb24tYmFkZ2UgY3VycmVudCI+djEu +MDwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ2ZXJzaW9uLWluZm8iPgog +ICAgICAgICAgICAgICAgICAgICAgICBPZmZpemllbGxlIMOcYmVyZ2FiZSDigJMgTGVzZW1vZHVz +IChpbmRleC5odG1sIGRpcmVrdCDDtmZmbmVuKSwgQWNjb3JkaW9uLSwgRkFRLSB1bmQgVGFiZWxs +ZW4tS29tcG9uZW50ZW4gaW0gRWRpdG9yLCBhdXRvbWF0aXNjaGUgQXJ0aWtlbHZlcnNpb25pZXJ1 +bmcsIEFkbWluLUFubGVpdHVuZywgdGVjaG5pc2NoZXIgU3VwcG9ydC1Lb250YWt0CiAgICAgICAg +ICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InZlcnNpb24tZGF0ZSI+TcOkcnogMjAyNjwvZGl2 +PgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAg +ICAgICAgICAgICA8ZGl2IGNsYXNzPSJ2ZXJzaW9uLWl0ZW0iPgogICAgICAgICAgICAgICAgICAg +IDxzcGFuIGNsYXNzPSJ2ZXJzaW9uLWJhZGdlIj52MC45NTwvc3Bhbj4KICAgICAgICAgICAgICAg +ICAgICA8ZGl2IGNsYXNzPSJ2ZXJzaW9uLWluZm8iPgogICAgICAgICAgICAgICAgICAgICAgICBT +ZWN1cml0eS1BdWRpdCDigJMgUHLDvGZ1bmcgYWxsZXIgU2ljaGVyaGVpdHNtZWNoYW5pc21lbjog +WFNTLVNjaHV0eiwgUGF0aC1UcmF2ZXJzYWwsIFNTUkYtQmxvY2tpZXJ1bmcsIEFFUy0yNTYtVmVy +c2NobMO8c3NlbHVuZywgU2NocmVpYnNjaHV0eiwgTmV0endlcmstSXNvbGF0aW9uCiAgICAgICAg +ICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InZlcnNpb24tZGF0ZSI+TcOkcnogMjAyNjwvZGl2 +PgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAg +ICAgICAgICAgICA8ZGl2IGNsYXNzPSJ2ZXJzaW9uLWl0ZW0iPgogICAgICAgICAgICAgICAgICAg +IDxzcGFuIGNsYXNzPSJ2ZXJzaW9uLWJhZGdlIj52MC45PC9zcGFuPgogICAgICAgICAgICAgICAg +ICAgIDxkaXYgY2xhc3M9InZlcnNpb24taW5mbyI+CiAgICAgICAgICAgICAgICAgICAgICAgIEF1 +dG9tYXRpc2NoZSBDcm9zc2xpbmstRXJrZW5udW5nIChBcnRpa2VsdGl0ZWwgdW5kIFNjaGxhZ3fD +tnJ0ZXIgaW0gVGV4dCksIG1hbnVlbGxlIEFydGlrZWxyZWZlcmVuemVuIHZpYSAjLVRhc3RlIG1p +dCDDnGJlcnNjaHJpZnRlbi1BbmtlciwgUmV2aXNpb25zaGlzdG9yaWUgbWl0IERpZmYtQW5zaWNo +dCwgU2NobGFnd29ydC1WZXJ3YWx0dW5nCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xh +c3M9InZlcnNpb24tZGF0ZSI+TcOkcnogMjAyNjwvZGl2PgogICAgICAgICAgICAgICAgICAgIDwv +ZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ2 +ZXJzaW9uLWl0ZW0iPgogICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ2ZXJzaW9uLWJh +ZGdlIj52MC44PC9zcGFuPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InZlcnNpb24t +aW5mbyI+CiAgICAgICAgICAgICAgICAgICAgICAgIEFibGVobnVuZ3MtV29ya2Zsb3cgbWl0IGtv +bmZpZ3VyaWVyYmFyZXIgQmVncsO8bmR1bmdzcGZsaWNodCwgw7xiZXJhcmJlaXRldGVzIFJldmll +dy1QYW5lbCwgZHVyY2hnw6RuZ2lnZXIgVGFnLS9OYWNodC1Nb2R1cyBmw7xyIGFsbGUgVUktRWxl +bWVudGUKICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idmVyc2lvbi1kYXRlIj5N +w6RyeiAyMDI2PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAg +ICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InZlcnNpb24taXRlbSI+CiAgICAg +ICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InZlcnNpb24tYmFkZ2UiPnYwLjc8L3NwYW4+CiAg +ICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idmVyc2lvbi1pbmZvIj4KICAgICAgICAgICAg +ICAgICAgICAgICAgR292ZXJuYW5jZS1TeXN0ZW0gbWl0IFJvbGxlbiwgRG9rdW1lbnQtU3BlcnJl +IChMb2NraW5nKSwgQUVTLTI1Ni1WZXJzY2hsw7xzc2VsdW5nLCBTY2hsYWd3w7ZydGVyIG1pdCBB +dXRvY29tcGxldGUsIFRhYmVsbGVuYW5zaWNodCwgRW5nYWdlbWVudC1TdGF0aXN0aWssIEzDtnNj +aC1BdWRpdCBtaXQgMjgtVGFnZS1QYXBpZXJrb3JiCiAgICAgICAgICAgICAgICAgICAgICAgIDxk +aXYgY2xhc3M9InZlcnNpb24tZGF0ZSI+RmVicnVhciAyMDI2PC9kaXY+CiAgICAgICAgICAgICAg +ICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYg +Y2xhc3M9InZlcnNpb24taXRlbSI+CiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InZl +cnNpb24tYmFkZ2UiPnYwLjY8L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0i +dmVyc2lvbi1pbmZvIj4KICAgICAgICAgICAgICAgICAgICAgICAgRnJlaWdhYmUtV29ya2Zsb3cg +KFN1cGVyVXNlciwgUmV2aWV3ZXIsIEthdGVnb3JpZW4tWnVvcmRudW5nKSwgTWVkaWVuLVVwbG9h +ZCBtaXQgTW9kYWwtVm9yc2NoYXUsIE1pdHdpcmtlbmRlbi1UcmFja2luZyBtaXQgQmVpdHJhZ3Nh +cnRlbgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ2ZXJzaW9uLWRhdGUiPkZl +YnJ1YXIgMjAyNjwvZGl2PgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAg +ICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ2ZXJzaW9uLWl0ZW0iPgogICAg +ICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ2ZXJzaW9uLWJhZGdlIj52MC41PC9zcGFuPgog +ICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InZlcnNpb24taW5mbyI+CiAgICAgICAgICAg +ICAgICAgICAgICAgIFdZU0lXWUctRWRpdG9yIG1pdCBGb3JtYXRpZXJ1bmcgdW5kIFVuZG8vUmVk +bywgUGFzdGUtQmVyZWluaWd1bmcsIFVudGVyYXJ0aWtlbC1TeXN0ZW0sIFN0YXJ0c2VpdGVuLUVk +aXRvciwgSGlsZmUtTW9kYWwKICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idmVy +c2lvbi1kYXRlIj5KYW51YXIgMjAyNjwvZGl2PgogICAgICAgICAgICAgICAgICAgIDwvZGl2Pgog +ICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ2ZXJzaW9u +LWl0ZW0iPgogICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ2ZXJzaW9uLWJhZGdlIj52 +MC40PC9zcGFuPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InZlcnNpb24taW5mbyI+ +CiAgICAgICAgICAgICAgICAgICAgICAgIFVtYmF1IHp1ciBTaW5nbGUtRmlsZS1BcHAgKGluZGV4 +Lmh0bWwpLCBQb3dlclNoZWxsIEhUVFAtU2VydmVyIG1pdCBSRVNULUFQSSwgYXV0b21hdGlzY2hl +ciBCcm93c2VyLVN0YXJ0LCBUYWcvTmFjaHQtTW9kdXMKICAgICAgICAgICAgICAgICAgICAgICAg +PGRpdiBjbGFzcz0idmVyc2lvbi1kYXRlIj5EZXplbWJlciAyMDI1PC9kaXY+CiAgICAgICAgICAg +ICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxk +aXYgY2xhc3M9InZlcnNpb24taXRlbSI+CiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9 +InZlcnNpb24tYmFkZ2UiPnYwLjM8L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFz +cz0idmVyc2lvbi1pbmZvIj4KICAgICAgICAgICAgICAgICAgICAgICAgSlNPTi1Eb2t1bWVudGVu +c3RydWt0dXIgaW4gS2F0ZWdvcmllLU9yZG5lcm4sIDI3IEZhY2hiZXJlaWNoZSwgU3RhdHVzLVN5 +c3RlbSAoRW50d3VyZi9QcsO8ZnVuZy9GcmVpZ2VnZWJlbi9BYmdlbGVobnQpCiAgICAgICAgICAg +ICAgICAgICAgICAgIDxkaXYgY2xhc3M9InZlcnNpb24tZGF0ZSI+Tm92ZW1iZXIgMjAyNTwvZGl2 +PgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAg +ICAgICAgICAgICA8ZGl2IGNsYXNzPSJ2ZXJzaW9uLWl0ZW0iPgogICAgICAgICAgICAgICAgICAg +IDxzcGFuIGNsYXNzPSJ2ZXJzaW9uLWJhZGdlIj52MC4yPC9zcGFuPgogICAgICAgICAgICAgICAg +ICAgIDxkaXYgY2xhc3M9InZlcnNpb24taW5mbyI+CiAgICAgICAgICAgICAgICAgICAgICAgIEtv +bnplcHR2YWxpZGllcnVuZyBhdWYgYmVow7ZyZGxpY2hlbiBXaW5kb3dzLVJlY2huZXJuLCBUZXN0 +IGRlciBOZXR6bGF1ZndlcmstS29tcGF0aWJpbGl0w6R0LCBCZW51dHplcmlkZW50aWZpa2F0aW9u +IHZpYSBXaW5kb3dzLVNlc3Npb24KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0i +dmVyc2lvbi1kYXRlIj5Ob3ZlbWJlciAyMDI1PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPC9k +aXY+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InZl +cnNpb24taXRlbSI+CiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InZlcnNpb24tYmFk +Z2UiPnYwLjE8L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idmVyc2lvbi1p +bmZvIj4KICAgICAgICAgICAgICAgICAgICAgICAgRXJzdGVyIFByb3RvdHlwIOKAkyBQcm9vZi1v +Zi1Db25jZXB0IGbDvHIgT2ZmbGluZS1Eb2t1bWVudGVudmVyd2FsdHVuZyBvaG5lIERhdGVuYmFu +ayB1bmQgSW50ZXJuZXQKICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idmVyc2lv +bi1kYXRlIj5Pa3RvYmVyIDIwMjU8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAg +ICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAg +IDwvZGl2PgoKICAgIDwhLS0gRnJlaWdhYmXDvGJlcnNpY2h0IChJbXByZXNzdW0pIC0tPgogICAg +PGRpdiBjbGFzcz0iaW1wcmludC1tb2RhbCIgaWQ9ImltcHJpbnRNb2RhbCIgb25jbGljaz0iaWYo +ZXZlbnQudGFyZ2V0PT09dGhpcylEcml2ZUdvdmVybmFuY2UuY2xvc2VJbXByaW50KCkiPgogICAg +ICAgIDxkaXYgY2xhc3M9ImltcHJpbnQtY29udGVudCI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9 +ImltcHJpbnQtaGVhZGVyIj4KICAgICAgICAgICAgICAgIEZyZWlnYWJldmVyYW50d29ydGxpY2hl +CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJpbXByaW50LWJvZHki +IGlkPSJpbXByaW50Qm9keSI+PC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KCiAgICA8 +IS0tIENvbnRyaWJ1dGlvbiBUeXBlIERpYWxvZyAtLT4KICAgIDxkaXYgY2xhc3M9ImNvbnRyaWIt +ZGlhbG9nIiBpZD0iY29udHJpYkRpYWxvZyI+CiAgICAgICAgPGRpdiBjbGFzcz0iY29udHJpYi1k +aWFsb2ctY29udGVudCI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbnRyaWItZGlhbG9nLWhl +YWRlciI+QXJ0IGRlciBCZWFyYmVpdHVuZzwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJj +b250cmliLWRpYWxvZy1ib2R5Ij4KICAgICAgICAgICAgICAgIDxwIHN0eWxlPSJtYXJnaW4tYm90 +dG9tOjEycHg7IGZvbnQtc2l6ZToxM3B4OyBjb2xvcjp2YXIoLS10ZXh0LXNlY29uZGFyeSk7Ij5C +aXR0ZSB3w6RobGUgZGllIEFydCBkZWluZXMgQmVpdHJhZ3M6PC9wPgogICAgICAgICAgICAgICAg +PGJ1dHRvbiBjbGFzcz0iY29udHJpYi10eXBlLWJ0biIgb25jbGljaz0iRHJpdmVFZGl0b3Iuc2V0 +Q29udHJpYlR5cGUoJ2F1dG9yJykiPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Imxh +YmVsIj5BdXRvciAvIEluaGFsdGxpY2hlIEVyc3RlbGx1bmc8L2Rpdj4KICAgICAgICAgICAgICAg +ICAgICA8ZGl2IGNsYXNzPSJkZXNjIj5TaWduaWZpa2FudGUgbmV1ZSBJbmhhbHRlIHZlcmZhc3N0 +LCBBYnNjaG5pdHRlIGdlc2NocmllYmVuIG9kZXIgd2VzZW50bGljaGUgRXJnw6RuenVuZ2VuPC9k +aXY+CiAgICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICAgIDxidXR0b24gY2xh +c3M9ImNvbnRyaWItdHlwZS1idG4iIG9uY2xpY2s9IkRyaXZlRWRpdG9yLnNldENvbnRyaWJUeXBl +KCdyZWRha3Rpb24nKSI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibGFiZWwiPlJl +ZGFrdGlvbmVsbGUgw5xiZXJhcmJlaXR1bmc8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8ZGl2 +IGNsYXNzPSJkZXNjIj5SZWNodHNjaHJlaWJ1bmcsIEdyYW1tYXRpaywgRm9ybWF0aWVydW5nIG9k +ZXIga2xlaW5lcmUgS29ycmVrdHVyZW48L2Rpdj4KICAgICAgICAgICAgICAgIDwvYnV0dG9uPgog +ICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iY29udHJpYi10eXBlLWJ0biIgb25jbGljaz0i +RHJpdmVFZGl0b3Iuc2V0Q29udHJpYlR5cGUoJ3JldmlldycpIj4KICAgICAgICAgICAgICAgICAg +ICA8ZGl2IGNsYXNzPSJsYWJlbCI+RmFjaGxpY2hlIFByw7xmdW5nIC8gUmV2aWV3PC9kaXY+CiAg +ICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZGVzYyI+SW5oYWx0bGljaGUgUHLDvGZ1bmcs +IGZhY2hsaWNoZSBBbm1lcmt1bmdlbiBvZGVyIFF1YWxpdMOkdHNzaWNoZXJ1bmc8L2Rpdj4KICAg +ICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4K +ICAgIDwvZGl2PgoKICAgIDwhLS0gTMO2c2NoLUJlc3TDpHRpZ3VuZyAtLT4KICAgIDxkaXYgY2xh +c3M9ImRlbGV0ZS1jb25maXJtLW1vZGFsIiBpZD0iZGVsZXRlQ29uZmlybU1vZGFsIj4KICAgICAg +ICA8ZGl2IGNsYXNzPSJkZWxldGUtY29uZmlybS1jb250ZW50Ij4KICAgICAgICAgICAgPGRpdiBj +bGFzcz0iZGVsZXRlLWNvbmZpcm0taGVhZGVyIj5Eb2t1bWVudCBlbmRnw7xsdGlnIGzDtnNjaGVu +PC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImRlbGV0ZS1jb25maXJtLWJvZHkiPgogICAg +ICAgICAgICAgICAgPHAgc3R5bGU9ImZvbnQtc2l6ZToxNHB4O2NvbG9yOnZhcigtLXRleHQtc2Vj +b25kYXJ5KTttYXJnaW4tYm90dG9tOjhweDsiIGlkPSJkZWxldGVDb25maXJtVGV4dCI+PC9wPgog +ICAgICAgICAgICAgICAgPHAgc3R5bGU9ImZvbnQtc2l6ZToxM3B4O2NvbG9yOnZhcigtLXRleHQt +c2Vjb25kYXJ5KTttYXJnaW4tYm90dG9tOjEycHg7Ij5HaWIgenVyIEJlc3TDpHRpZ3VuZyBkZWlu +ZSBOVy1LZW5udW5nIGVpbjo8L3A+CiAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIg +aWQ9ImRlbGV0ZUNvbmZpcm1JbnB1dCIgcGxhY2Vob2xkZXI9Ik5XLUtlbm51bmcgZWluZ2ViZW4u +Li4iIGF1dG9jb21wbGV0ZT0ib2ZmIj4KICAgICAgICAgICAgICAgIDxwIHN0eWxlPSJmb250LXNp +emU6MTFweDtjb2xvcjp2YXIoLS10ZXh0LW11dGVkKTttYXJnaW4tdG9wOjZweDsiPkRhcyBEb2t1 +bWVudCB3aXJkIGluIGRlbiBQYXBpZXJrb3JiIHZlcnNjaG9iZW4gdW5kIGlzdCAyOCBUYWdlIHdp +ZWRlcmhlcnN0ZWxsYmFyLjwvcD4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYg +Y2xhc3M9ImRlbGV0ZS1jb25maXJtLWZvb3RlciI+CiAgICAgICAgICAgICAgICA8YnV0dG9uIG9u +Y2xpY2s9IkRyaXZlUG9ydGFsLmNhbmNlbERlbGV0ZSgpIj5BYmJyZWNoZW48L2J1dHRvbj4KICAg +ICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9ImJ0bi1kZWxldGUiIGlkPSJkZWxldGVDb25maXJt +QnRuIiBvbmNsaWNrPSJEcml2ZVBvcnRhbC5jb25maXJtRGVsZXRlKCkiIGRpc2FibGVkPkVuZGfD +vGx0aWcgbMO2c2NoZW48L2J1dHRvbj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+ +CiAgICA8L2Rpdj4KCiAgICA8IS0tIEhpbGZlLU1vZGFsIC0tPgogICAgPGRpdiBjbGFzcz0iaGVs +cC1tb2RhbCIgaWQ9ImhlbHBNb2RhbCIgb25jbGljaz0iaWYoZXZlbnQudGFyZ2V0PT09dGhpcyYm +IWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdoZWxwQm9keScpLmlzQ29udGVudEVkaXRhYmxlKWNs +b3NlSGVscCgpIj4KICAgICAgICA8ZGl2IGNsYXNzPSJoZWxwLW1vZGFsLWNvbnRlbnQiIHN0eWxl +PSJwb3NpdGlvbjpyZWxhdGl2ZTsiPgogICAgICAgICAgICA8bmF2IGNsYXNzPSJoZWxwLXRvYyIg +aWQ9ImhlbHBUb2MiPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iaGVscC10b2MtdGl0bGUi +PkhpbGZlICZhbXA7IEFubGVpdHVuZzwvZGl2PgogICAgICAgICAgICAgICAgPGEgaHJlZj0iI2hl +bHAtc3RhcnQiIGNsYXNzPSJhY3RpdmUiIGRhdGEtc2VjdGlvbj0iaGVscC1zdGFydCI+RXJzdGUg +U2Nocml0dGU8L2E+CiAgICAgICAgICAgICAgICA8YSBocmVmPSIjaGVscC1jb25uZWN0IiBkYXRh +LXNlY3Rpb249ImhlbHAtY29ubmVjdCI+VmVyYmluZHVuZ3Ntb2RpPC9hPgogICAgICAgICAgICAg +ICAgPGEgaHJlZj0iI2hlbHAtc2VhcmNoIiBkYXRhLXNlY3Rpb249ImhlbHAtc2VhcmNoIj5TdWNo +ZSAmYW1wOyBGaWx0ZXI8L2E+CiAgICAgICAgICAgICAgICA8YSBocmVmPSIjaGVscC1kb2NzIiBk +YXRhLXNlY3Rpb249ImhlbHAtZG9jcyI+RG9rdW1lbnRlbmxpc3RlPC9hPgogICAgICAgICAgICAg +ICAgPGEgaHJlZj0iI2hlbHAtZGV0YWlsIiBkYXRhLXNlY3Rpb249ImhlbHAtZGV0YWlsIj5EZXRh +aWxhbnNpY2h0PC9hPgogICAgICAgICAgICAgICAgPGEgaHJlZj0iI2hlbHAtdGFibGUiIGRhdGEt +c2VjdGlvbj0iaGVscC10YWJsZSI+VGFiZWxsZW5hbnNpY2h0PC9hPgogICAgICAgICAgICAgICAg +PGEgaHJlZj0iI2hlbHAtZWRpdG9yIiBkYXRhLXNlY3Rpb249ImhlbHAtZWRpdG9yIj5FZGl0b3I8 +L2E+CiAgICAgICAgICAgICAgICA8YSBocmVmPSIjaGVscC1rZXl3b3JkcyIgY2xhc3M9InN1YiIg +ZGF0YS1zZWN0aW9uPSJoZWxwLWtleXdvcmRzIj5TY2hsYWd3w7ZydGVyPC9hPgogICAgICAgICAg +ICAgICAgPGEgaHJlZj0iI2hlbHAtcGFyZW50IiBjbGFzcz0ic3ViIiBkYXRhLXNlY3Rpb249Imhl +bHAtcGFyZW50Ij5VbnRlcmFydGlrZWw8L2E+CiAgICAgICAgICAgICAgICA8YSBocmVmPSIjaGVs +cC1tZWRpYSIgY2xhc3M9InN1YiIgZGF0YS1zZWN0aW9uPSJoZWxwLW1lZGlhIj5NZWRpZW4gZWlu +ZsO8Z2VuPC9hPgogICAgICAgICAgICAgICAgPGEgaHJlZj0iI2hlbHAtZGVsZXRlIiBkYXRhLXNl +Y3Rpb249ImhlbHAtZGVsZXRlIj5Mw7ZzY2hlbiAmYW1wOyBQYXBpZXJrb3JiPC9hPgogICAgICAg +ICAgICAgICAgPGEgaHJlZj0iI2hlbHAtdGhlbWUiIGRhdGEtc2VjdGlvbj0iaGVscC10aGVtZSI+ +VGFnL05hY2h0LU1vZHVzPC9hPgogICAgICAgICAgICAgICAgPGEgaHJlZj0iI2hlbHAtc2hvcnRj +dXRzIiBkYXRhLXNlY3Rpb249ImhlbHAtc2hvcnRjdXRzIj5UYXN0ZW5rw7xyemVsPC9hPgogICAg +ICAgICAgICAgICAgPGEgaHJlZj0iI2hlbHAtdmVyc2lvbiIgZGF0YS1zZWN0aW9uPSJoZWxwLXZl +cnNpb24iPlZlcnNpb25zaGlzdG9yaWU8L2E+CiAgICAgICAgICAgICAgICA8YSBocmVmPSIjaGVs +cC1jb250YWN0IiBkYXRhLXNlY3Rpb249ImhlbHAtY29udGFjdCI+RnJhZ2VuICZhbXA7IFVudGVy +c3TDvHR6dW5nPC9hPgogICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iaGVscC1lZGl0LWJ0 +biIgaWQ9ImhlbHBFZGl0QnRuIiBvbmNsaWNrPSJzdGFydEVkaXRIZWxwKCkiPkJlYXJiZWl0ZW48 +L2J1dHRvbj4KICAgICAgICAgICAgPC9uYXY+CiAgICAgICAgICAgIDxkaXYgc3R5bGU9ImZsZXg6 +MTtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO292ZXJmbG93OmhpZGRlbjsiPgog +ICAgICAgICAgICA8ZGl2IGNsYXNzPSJoZWxwLWVkaXQtYmFyIiBpZD0iaGVscEVkaXRCYXIiPgog +ICAgICAgICAgICAgICAgPGJ1dHRvbiBvbmNsaWNrPSJkb2N1bWVudC5leGVjQ29tbWFuZCgnYm9s +ZCcpIiB0aXRsZT0iRmV0dCI+PGI+QjwvYj48L2J1dHRvbj4KICAgICAgICAgICAgICAgIDxidXR0 +b24gb25jbGljaz0iZG9jdW1lbnQuZXhlY0NvbW1hbmQoJ2l0YWxpYycpIiB0aXRsZT0iS3Vyc2l2 +Ij48aT5JPC9pPjwvYnV0dG9uPgogICAgICAgICAgICAgICAgPGJ1dHRvbiBvbmNsaWNrPSJkb2N1 +bWVudC5leGVjQ29tbWFuZCgndW5kZXJsaW5lJykiIHRpdGxlPSJVbnRlcnN0cmljaGVuIj48dT5V +PC91PjwvYnV0dG9uPgogICAgICAgICAgICAgICAgPGJ1dHRvbiBvbmNsaWNrPSJkb2N1bWVudC5l +eGVjQ29tbWFuZCgnaW5zZXJ0VW5vcmRlcmVkTGlzdCcpIj4mYnVsbDs8L2J1dHRvbj4KICAgICAg +ICAgICAgICAgIDxidXR0b24gb25jbGljaz0iZG9jdW1lbnQuZXhlY0NvbW1hbmQoJ2luc2VydE9y +ZGVyZWRMaXN0JykiPjEuPC9idXR0b24+CiAgICAgICAgICAgICAgICA8YnV0dG9uIG9uY2xpY2s9 +InZhciBoPXByb21wdCgnw5xiZXJzY2hyaWZ0LVRleHQ6Jyk7aWYoaCl7ZG9jdW1lbnQuZXhlY0Nv +bW1hbmQoJ2luc2VydEhUTUwnLCc8aDIgaWQ9JnF1b3Q7aGVscC0nK2gudG9Mb3dlckNhc2UoKS5y +ZXBsYWNlKC9bXmEtejAtOV0vZywnLScpKycmcXVvdDs+JytoKyc8L2gyPicpO30iPkgyPC9idXR0 +b24+CiAgICAgICAgICAgICAgICA8YnV0dG9uIG9uY2xpY2s9InZhciBoPXByb21wdCgnVW50ZXLD +vGJlcnNjaHJpZnQtVGV4dDonKTtpZihoKXtkb2N1bWVudC5leGVjQ29tbWFuZCgnaW5zZXJ0SFRN +TCcsJzxoMyBpZD0mcXVvdDtoZWxwLScraC50b0xvd2VyQ2FzZSgpLnJlcGxhY2UoL1teYS16MC05 +XS9nLCctJykrJyZxdW90Oz4nK2grJzwvaDM+Jyk7fSI+SDM8L2J1dHRvbj4KICAgICAgICAgICAg +ICAgIDxidXR0b24gY2xhc3M9ImhlbHAtY2FuY2VsLWJ0biIgb25jbGljaz0iY2FuY2VsRWRpdEhl +bHAoKSI+QWJicmVjaGVuPC9idXR0b24+CiAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJo +ZWxwLXNhdmUtYnRuIiBvbmNsaWNrPSJzYXZlRWRpdEhlbHAoKSI+U3BlaWNoZXJuPC9idXR0b24+ +CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJoZWxwLWJvZHkiIGlk +PSJoZWxwQm9keSI+CgogICAgICAgICAgICAgICAgPGgyIGlkPSJoZWxwLXN0YXJ0Ij5FcnN0ZSBT +Y2hyaXR0ZTwvaDI+CiAgICAgICAgICAgICAgICA8cD5XaWxsa29tbWVuIGJlaW0gPHN0cm9uZz5E +LlIuSS5WLkUuPC9zdHJvbmc+IFBvcnRhbCDigJMgZGVtIERpZ2l0YWxlbiBSZXNzb3VyY2VuLSB1 +bmQgSW5mb3JtYXRpb25zcG9ydGFsIFZlcmtlaHIgZGVzIFBQIERvcnRtdW5kIChWSTMpLjwvcD4K +ICAgICAgICAgICAgICAgIDxwPkRhcyBQb3J0YWwgdmVyd2FsdGV0IERva3VtZW50ZSBvZmZsaW5l +LWbDpGhpZyBpbiBlaW5lbSBsb2thbGVuIE9yZG5lci4gQWxsZSBBcnRpa2VsLCBNZWRpZW4gdW5k +IEtvbmZpZ3VyYXRpb25lbiBsaWVnZW4gYWxzIERhdGVpZW4gdm9yIOKAkyBrZWluIEludGVybmV0 +IHVuZCBrZWluZSBEYXRlbmJhbmsgZXJmb3JkZXJsaWNoLjwvcD4KICAgICAgICAgICAgICAgIDxo +Mz5TY2huZWxsc3RhcnQ8L2gzPgogICAgICAgICAgICAgICAgPHVsPgogICAgICAgICAgICAgICAg +ICAgIDxsaT48c3Ryb25nPk51ciBsZXNlbjo8L3N0cm9uZz4gw5ZmZm5lIGRpZSA8Y29kZT5pbmRl +eC5odG1sPC9jb2RlPiBkaXJla3QgaW0gQnJvd3Nlci4gRG9rdW1lbnRlIHdlcmRlbiBhdXRvbWF0 +aXNjaCBhdXMgZGVtIDxjb2RlPmRhdGEvPC9jb2RlPi1PcmRuZXIgZ2VsYWRlbi48L2xpPgogICAg +ICAgICAgICAgICAgICAgIDxsaT48c3Ryb25nPkJlYXJiZWl0ZW4gKFdpbmRvd3MpOjwvc3Ryb25n +PiBTdGFydGUgPGNvZGU+RFJJVkVfU3RhcnQuYmF0PC9jb2RlPiBwZXIgRG9wcGVsa2xpY2suIERl +ciBTZXJ2ZXIgw7ZmZm5ldCBkYXMgUG9ydGFsIGltIEJyb3dzZXIgbWl0IFZvbGx6dWdyaWZmLjwv +bGk+CiAgICAgICAgICAgICAgICA8L3VsPgoKICAgICAgICAgICAgICAgIDxoMiBpZD0iaGVscC1j +b25uZWN0Ij5WZXJiaW5kdW5nc21vZGk8L2gyPgogICAgICAgICAgICAgICAgPHA+RGFzIFBvcnRh +bCBlcmtlbm50IGF1dG9tYXRpc2NoIGRlbiBiZXN0ZW4gdmVyZsO8Z2JhcmVuIE1vZHVzOjwvcD4K +ICAgICAgICAgICAgICAgIDx1bD4KICAgICAgICAgICAgICAgICAgICA8bGk+PHN0cm9uZz5TZXJ2 +ZXItTW9kdXM8L3N0cm9uZz4gKGdyw7xuZXIgUHVua3QpOiBWb2xsZXIgTGVzZS0gdW5kIFNjaHJl +aWJ6dWdyaWZmIMO8YmVyIDxjb2RlPkRSSVZFX1N0YXJ0LmJhdDwvY29kZT4uIFVudGVyc3TDvHR6 +dCBMb2NraW5nIGJlaSBtZWhyZXJlbiBCZW51dHplcm4uPC9saT4KICAgICAgICAgICAgICAgICAg +ICA8bGk+PHN0cm9uZz5MZXNlbW9kdXM8L3N0cm9uZz4gKG9yYW5nZXIgUHVua3QpOiDDlmZmbmUg +ZWluZmFjaCBkaWUgPGNvZGU+aW5kZXguaHRtbDwvY29kZT4gaW0gQnJvd3Nlci4gQWxsZSBmcmVp +Z2VnZWJlbmVuIERva3VtZW50ZSB3ZXJkZW4gYXV0b21hdGlzY2ggYW5nZXplaWd0LjwvbGk+CiAg +ICAgICAgICAgICAgICA8L3VsPgogICAgICAgICAgICAgICAgPHA+RGVyIGFrdHVlbGxlIFN0YXR1 +cyB3aXJkIGluIGRlciBWZXJiaW5kdW5nc2xlaXN0ZSB1bnRlciBkZW0gSGVhZGVyIGFuZ2V6ZWln +dC48L3A+CgogICAgICAgICAgICAgICAgPGgyIGlkPSJoZWxwLXNlYXJjaCI+U3VjaGUgJmFtcDsg +RmlsdGVyPC9oMj4KICAgICAgICAgICAgICAgIDxwPkRpZSBTdGV1ZXJ1bmdzbGVpc3RlIGJpZXRl +dCBtZWhyZXJlIE3DtmdsaWNoa2VpdGVuLCBEb2t1bWVudGUgenUgZmluZGVuOjwvcD4KICAgICAg +ICAgICAgICAgIDx1bD4KICAgICAgICAgICAgICAgICAgICA8bGk+PHN0cm9uZz5TdWNoZmVsZDo8 +L3N0cm9uZz4gRHVyY2hzdWNodCBUaXRlbCwgSW5oYWx0LCBLYXRlZ29yaWUgdW5kIFNjaGxhZ3fD +tnJ0ZXIgaW4gRWNodHplaXQuPC9saT4KICAgICAgICAgICAgICAgICAgICA8bGk+PHN0cm9uZz5L +YXRlZ29yaWUtRmlsdGVyPC9zdHJvbmc+ICh6d2VpdGUgWmVpbGUpOiBLbGlja2UgYXVmIGVpbmUg +S2F0ZWdvcmllLCB1bSBudXIgZGVyZW4gRG9rdW1lbnRlIGFuenV6ZWlnZW4uIOKAnkFsbGUiIHpl +aWd0IGFsbGVzLjwvbGk+CiAgICAgICAgICAgICAgICAgICAgPGxpPjxzdHJvbmc+U3RhdHVzLUZp +bHRlcjo8L3N0cm9uZz4gRmlsdGVydCBuYWNoIERva3VtZW50ZW5zdGF0dXMgKEVudHd1cmYsIFp1 +ciBQcsO8ZnVuZywgRnJlaWdlZ2ViZW4pLjwvbGk+CiAgICAgICAgICAgICAgICA8L3VsPgogICAg +ICAgICAgICAgICAgPHA+QWxsZSBGaWx0ZXIgbGFzc2VuIHNpY2gga29tYmluaWVyZW4uIERpZSBB +bnplaWdlIOKAnlggLyBZIiB6ZWlndCBnZWZpbHRlcnRlIC8gZ2VzYW10ZSBEb2t1bWVudGUuPC9w +PgoKICAgICAgICAgICAgICAgIDxoMiBpZD0iaGVscC1kb2NzIj5Eb2t1bWVudGVubGlzdGU8L2gy +PgogICAgICAgICAgICAgICAgPHA+RGllIGxpbmtlIFNwYWx0ZSB6ZWlndCBhbGxlIERva3VtZW50 +ZSwgZGllIGRlbiBha3R1ZWxsZW4gRmlsdGVybiBlbnRzcHJlY2hlbi48L3A+CiAgICAgICAgICAg +ICAgICA8dWw+CiAgICAgICAgICAgICAgICAgICAgPGxpPjxzdHJvbmc+VGl0ZWw6PC9zdHJvbmc+ +IEZldHQgZGFyZ2VzdGVsbHQuIERlciBIaW53ZWlzIOKAnltnZXNwZXJydF0iIHplaWd0IGFuLCBk +YXNzIGVpbiBhbmRlcmVyIEJlbnV0emVyIGRhcyBEb2t1bWVudCBnZXJhZGUgYmVhcmJlaXRldC48 +L2xpPgogICAgICAgICAgICAgICAgICAgIDxsaT48c3Ryb25nPk1ldGFkYXRlbjo8L3N0cm9uZz4g +S2F0ZWdvcmllLUJhZGdlLCBTdGF0dXMtQmFkZ2UgKGZhcmJpZyksIG9wdGlvbmFsIOKAnitNZWRp +ZW4iLjwvbGk+CiAgICAgICAgICAgICAgICAgICAgPGxpPjxzdHJvbmc+U2NobGFnd8O2cnRlcjo8 +L3N0cm9uZz4gQmlzIHp1IDQgVGFncyB3ZXJkZW4gdW50ZXIgZGVuIE1ldGFkYXRlbiBhbmdlemVp +Z3QuPC9saT4KICAgICAgICAgICAgICAgICAgICA8bGk+PHN0cm9uZz5VbnRlcmFydGlrZWw6PC9z +dHJvbmc+IFdlcmRlbiBlaW5nZXLDvGNrdCB1bnRlciBpaHJlbSDDnGJlcmFydGlrZWwgZGFyZ2Vz +dGVsbHQgdW5kIG1pdCDigJ7ihrMiIG1hcmtpZXJ0LjwvbGk+CiAgICAgICAgICAgICAgICA8L3Vs +PgoKICAgICAgICAgICAgICAgIDxoMiBpZD0iaGVscC1kZXRhaWwiPkRldGFpbGFuc2ljaHQ8L2gy +PgogICAgICAgICAgICAgICAgPHA+RGllIHJlY2h0ZSBTcGFsdGUgemVpZ3QgZGVuIGF1c2dld8Ok +aGx0ZW4gQXJ0aWtlbCBtaXQgYWxsZW4gRGV0YWlsczo8L3A+CiAgICAgICAgICAgICAgICA8dWw+ +CiAgICAgICAgICAgICAgICAgICAgPGxpPjxzdHJvbmc+S29wZmJlcmVpY2g6PC9zdHJvbmc+IFRp +dGVsLCBLYXRlZ29yaWUsIFN0YXR1cyAoZmFyYmlnKSwgVmVyc2lvbiwgRXJzdGVsbHVuZ3MtIHVu +ZCDDhG5kZXJ1bmdzZGF0dW0sIEVyc3RlbGxlci9CZWFyYmVpdGVyLjwvbGk+CiAgICAgICAgICAg +ICAgICAgICAgPGxpPjxzdHJvbmc+U2NobGFnd8O2cnRlcjo8L3N0cm9uZz4gQWxsZSBTY2hsYWd3 +w7ZydGVyIGFscyBUYWdzLjwvbGk+CiAgICAgICAgICAgICAgICAgICAgPGxpPjxzdHJvbmc+w5xi +ZXJhcnRpa2VsIC8gVW50ZXJhcnRpa2VsOjwvc3Ryb25nPiBLbGlja2JhcmUgTGlua3MgenUgdmVy +d2FuZHRlbiBBcnRpa2Vsbi48L2xpPgogICAgICAgICAgICAgICAgICAgIDxsaT48c3Ryb25nPklu +aGFsdDo8L3N0cm9uZz4gRGVyIGZvcm1hdGllcnRlIEFydGlrZWx0ZXh0LjwvbGk+CiAgICAgICAg +ICAgICAgICAgICAgPGxpPjxzdHJvbmc+TWl0d2lya2VuZGU6PC9zdHJvbmc+IEF1Zmxpc3R1bmcg +YWxsZXIgQmVpdHJhZ2VuZGVuIG1pdCBSb2xsZSB1bmQgcHJvemVudHVhbGVtIEFudGVpbC48L2xp +PgogICAgICAgICAgICAgICAgICAgIDxsaT48c3Ryb25nPlByw7xmdW5nc3ZlcmxhdWY6PC9zdHJv +bmc+IENocm9ub2xvZ2llIGFsbGVyIEZyZWlnYWJlLS9BYmxlaG51bmdzYWt0aW9uZW4uPC9saT4K +ICAgICAgICAgICAgICAgICAgICA8bGk+PHN0cm9uZz5BbmjDpG5nZTo8L3N0cm9uZz4gTWVkaWVu +IHVuZCBEYXRlaWVuIG1pdCBWb3JzY2hhdS0vRG93bmxvYWQtTcO2Z2xpY2hrZWl0LjwvbGk+CiAg +ICAgICAgICAgICAgICA8L3VsPgogICAgICAgICAgICAgICAgPGgzPkFrdGlvbnNzY2hhbHRmbMOk +Y2hlbjwvaDM+CiAgICAgICAgICAgICAgICA8dWw+CiAgICAgICAgICAgICAgICAgICAgPGxpPjxz +dHJvbmc+QmVhcmJlaXRlbjo8L3N0cm9uZz4gw5ZmZm5ldCBkZW4gRWRpdG9yIChTY2hyZWlienVn +cmlmZiBlcmZvcmRlcmxpY2gpLjwvbGk+CiAgICAgICAgICAgICAgICAgICAgPGxpPjxzdHJvbmc+ +TMO2c2NoZW46PC9zdHJvbmc+IEVudGZlcm50IGRhcyBEb2t1bWVudCBuYWNoIEJlc3TDpHRpZ3Vu +ZyBtaXQgTlctS2VubnVuZy4gR2Vsw7ZzY2h0ZSBEb2t1bWVudGUgc2luZCAyOCBUYWdlIHdpZWRl +cmhlcnN0ZWxsYmFyLjwvbGk+CiAgICAgICAgICAgICAgICAgICAgPGxpPjxzdHJvbmc+RnJlaWdl +YmVuIC8gQWJsZWhuZW46PC9zdHJvbmc+IE51ciBiZWkgU3RhdHVzIOKAnlp1ciBQcsO8ZnVuZyIg +dW5kIG1pdCBlbnRzcHJlY2hlbmRlciBCZXJlY2h0aWd1bmcgc2ljaHRiYXIuPC9saT4KICAgICAg +ICAgICAgICAgIDwvdWw+CgogICAgICAgICAgICAgICAgPGgyIGlkPSJoZWxwLXRhYmxlIj5UYWJl +bGxlbmFuc2ljaHQ8L2gyPgogICAgICAgICAgICAgICAgPHA+S2xpY2tlIGF1ZiA8c3Ryb25nPuKA +nlRhYmVsbGUiPC9zdHJvbmc+IGluIGRlciBTdGV1ZXJ1bmdzbGVpc3RlLCB1bSBhbGxlIERva3Vt +ZW50ZSBpbiBlaW5lciBzb3J0aWVyYmFyZW4gR2VzYW10w7xiZXJzaWNodCBhbnp1emVpZ2VuLjwv +cD4KICAgICAgICAgICAgICAgIDx1bD4KICAgICAgICAgICAgICAgICAgICA8bGk+PHN0cm9uZz5T +cGFsdGVuOjwvc3Ryb25nPiBUaXRlbCwgS2F0ZWdvcmllLCBTdGF0dXMsIEVyc3RlbGxlciwgRXJz +dGVsbHQsIEdlw6RuZGVydCwgU2NobGFnd8O2cnRlciwgVmVyc2lvbi48L2xpPgogICAgICAgICAg +ICAgICAgICAgIDxsaT48c3Ryb25nPlNvcnRpZXJ1bmc6PC9zdHJvbmc+IEtsaWNrIGF1ZiBlaW5l +IFNwYWx0ZW7DvGJlcnNjaHJpZnQgc29ydGllcnQgYXVmc3RlaWdlbmQgKOKWsikgYnp3LiBhYnN0 +ZWlnZW5kICjilrwpLjwvbGk+CiAgICAgICAgICAgICAgICAgICAgPGxpPjxzdHJvbmc+S2xpY2sg +YXVmIGVpbmUgWmVpbGU6PC9zdHJvbmc+IFdlY2hzZWx0IHp1csO8Y2sgenVyIERldGFpbGFuc2lj +aHQgdW5kIHplaWd0IGRhcyBnZXfDpGhsdGUgRG9rdW1lbnQuPC9saT4KICAgICAgICAgICAgICAg +IDwvdWw+CiAgICAgICAgICAgICAgICA8cD5EaWUgVGFiZWxsZSByZXNwZWt0aWVydCBhbGxlIGFr +dGl2ZW4gRmlsdGVyIChLYXRlZ29yaWUsIFN0YXR1cywgU3VjaGUpLjwvcD4KCiAgICAgICAgICAg +ICAgICA8aDIgaWQ9ImhlbHAtZWRpdG9yIj5FZGl0b3I8L2gyPgogICAgICAgICAgICAgICAgPHA+ +RGVyIEVkaXRvciDDtmZmbmV0IHNpY2ggYWxzIFZvbGxiaWxkLU92ZXJsYXkgYmVpbSBFcnN0ZWxs +ZW4gb2RlciBCZWFyYmVpdGVuIGVpbmVzIERva3VtZW50cy48L3A+CiAgICAgICAgICAgICAgICA8 +aDM+TWV0YWRhdGVuIChvYmVyZSBaZWlsZW4pPC9oMz4KICAgICAgICAgICAgICAgIDx1bD4KICAg +ICAgICAgICAgICAgICAgICA8bGk+PHN0cm9uZz5UaXRlbDo8L3N0cm9uZz4gUGZsaWNodGZlbGQg +4oCTIGRlciBEb2t1bWVudG5hbWUuPC9saT4KICAgICAgICAgICAgICAgICAgICA8bGk+PHN0cm9u +Zz5LYXRlZ29yaWU6PC9zdHJvbmc+IEF1c3dhaGwgZGVyIE9iZXJrYXRlZ29yaWUuPC9saT4KICAg +ICAgICAgICAgICAgICAgICA8bGk+PHN0cm9uZz5TdGF0dXM6PC9zdHJvbmc+IEVudHd1cmYsIFp1 +ciBQcsO8ZnVuZywgRnJlaWdlZ2ViZW4gKGplIG5hY2ggQmVyZWNodGlndW5nKS48L2xpPgogICAg +ICAgICAgICAgICAgICAgIDxsaT48c3Ryb25nPlZlcnNpb246PC9zdHJvbmc+IFdpcmQgYXV0b21h +dGlzY2ggYmVyZWNobmV0LiBLbGlja2UgaW4gZGVyIERldGFpbGFuc2ljaHQgYXVmIGRpZSBWZXJz +aW9uc251bW1lciBmw7xyIGVpbmUgRXJrbMOkcnVuZy48L2xpPgogICAgICAgICAgICAgICAgICAg +IDxsaT48c3Ryb25nPsOcYmVyYXJ0aWtlbDo8L3N0cm9uZz4gT3B0aW9uYWwg4oCTIG9yZG5ldCBk +YXMgRG9rdW1lbnQgYWxzIFVudGVyYXJ0aWtlbCBlaW5lbSBiZXN0ZWhlbmRlbiBEb2t1bWVudCB6 +dS48L2xpPgogICAgICAgICAgICAgICAgPC91bD4KCiAgICAgICAgICAgICAgICA8aDM+VmVyc2lv +bmllcnVuZzwvaDM+CiAgICAgICAgICAgICAgICA8cD5EaWUgQXJ0aWtlbHZlcnNpb24gd2lyZCBh +dXRvbWF0aXNjaCBiZWltIFNwZWljaGVybiBiZXJlY2huZXQuIERpZSBaYWhsIDxzdHJvbmc+dm9y +PC9zdHJvbmc+IGRlbSBQdW5rdCB6ZWlndCwgd2llIG9mdCBkZXIgQXJ0aWtlbCBmcmVpZ2VnZWJl +biB3dXJkZS4gRGllIFphaGwgPHN0cm9uZz5uYWNoPC9zdHJvbmc+IGRlbSBQdW5rdCB6ZWlndCBk +aWUgQmVhcmJlaXR1bmdlbiBzZWl0IGRlciBsZXR6dGVuIEZyZWlnYWJlLjwvcD4KICAgICAgICAg +ICAgICAgIDx1bD4KICAgICAgICAgICAgICAgICAgICA8bGk+PHN0cm9uZz52MC4xLCB2MC4yLCB2 +MC4zLCAuLi46PC9zdHJvbmc+IEVudHd1cmZzcGhhc2Ug4oCTIGplZGUgQmVhcmJlaXR1bmcgesOk +aGx0ICswLjE8L2xpPgogICAgICAgICAgICAgICAgICAgIDxsaT48c3Ryb25nPnYxLjA6PC9zdHJv +bmc+IEVyc3RlIEZyZWlnYWJlPC9saT4KICAgICAgICAgICAgICAgICAgICA8bGk+PHN0cm9uZz52 +MS4xLCB2MS4yLCAuLi46PC9zdHJvbmc+IMOcYmVyYXJiZWl0dW5nZW4gbmFjaCBGcmVpZ2FiZTwv +bGk+CiAgICAgICAgICAgICAgICAgICAgPGxpPjxzdHJvbmc+djIuMCwgdjMuMCwgLi4uOjwvc3Ry +b25nPiBKZWRlIHdlaXRlcmUgRnJlaWdhYmU8L2xpPgogICAgICAgICAgICAgICAgPC91bD4KICAg +ICAgICAgICAgICAgIDxwPkJlaXNwaWVsOiA8c3Ryb25nPnYyLjU8L3N0cm9uZz4gYmVkZXV0ZXQ6 +IHp3ZWltYWwgZnJlaWdlZ2ViZW4sIGRhbmFjaCA1IEJlYXJiZWl0dW5nZW4uIEtsaWNrZSBpbiBk +ZXIgRGV0YWlsYW5zaWNodCBhdWYgZGllIFZlcnNpb25zbnVtbWVyIGbDvHIgZWluZSBhdXNmw7xo +cmxpY2hlIEVya2zDpHJ1bmcuPC9wPgoKICAgICAgICAgICAgICAgIDxoMyBpZD0iaGVscC1rZXl3 +b3JkcyI+U2NobGFnd8O2cnRlcjwvaDM+CiAgICAgICAgICAgICAgICA8cD5TY2hsYWd3w7ZydGVy +IGhlbGZlbiBkYWJlaSwgQXJ0aWtlbCBzY2huZWxsZXIgenUgZmluZGVuIHVuZCB0aGVtYXRpc2No +IHp1IHZlcmtuw7xwZmVuLjwvcD4KICAgICAgICAgICAgICAgIDx1bD4KICAgICAgICAgICAgICAg +ICAgICA8bGk+R2liIGVpbiBTY2hsYWd3b3J0IGVpbiB1bmQgZHLDvGNrZSA8a2JkPkVudGVyPC9r +YmQ+IG9kZXIgPGtiZD4sPC9rYmQ+IHp1bSBIaW56dWbDvGdlbi48L2xpPgogICAgICAgICAgICAg +ICAgICAgIDxsaT48c3Ryb25nPkF1dG9jb21wbGV0ZTo8L3N0cm9uZz4gQmVpbSBUaXBwZW4gd2Vy +ZGVuIHBhc3NlbmRlIFNjaGxhZ3fDtnJ0ZXIgYXVzIGFsbGVuIERva3VtZW50ZW4gdm9yZ2VzY2hs +YWdlbi48L2xpPgogICAgICAgICAgICAgICAgICAgIDxsaT48c3Ryb25nPlZvcnNjaGzDpGdlOjwv +c3Ryb25nPiBVbnRlcmhhbGIgZGVzIEVpbmdhYmVmZWxkcyB3ZXJkZW4gdGhlbWVudmVyd2FuZHRl +IFNjaGxhZ3fDtnJ0ZXIgYWxzIGtsaWNrYmFyZSBDaGlwcyBhbmdlemVpZ3Qg4oCTIGJhc2llcmVu +ZCBhdWYgS2F0ZWdvcmllLCB2ZXJ3YW5kdGVuIEFydGlrZWxuIHVuZCBiZXJlaXRzIGdlc2V0enRl +biBUYWdzLjwvbGk+CiAgICAgICAgICAgICAgICAgICAgPGxpPktsaWNrZSBhdWYgPHN0cm9uZz7D +lzwvc3Ryb25nPiBhbiBlaW5lbSBUYWcgenVtIEVudGZlcm5lbiwgb2RlciBkcsO8Y2tlIDxrYmQ+ +QmFja3NwYWNlPC9rYmQ+IGJlaSBsZWVyZW0gRWluZ2FiZWZlbGQuPC9saT4KICAgICAgICAgICAg +ICAgIDwvdWw+CgogICAgICAgICAgICAgICAgPGgzIGlkPSJoZWxwLXBhcmVudCI+VW50ZXJhcnRp +a2VsPC9oMz4KICAgICAgICAgICAgICAgIDxwPsOcYmVyIGRhcyBEcm9wZG93biDigJ7DnGJlcmFy +dGlrZWwiIGthbm5zdCBkdSBlaW4gRG9rdW1lbnQgYWxzIEVyZ8Okbnp1bmcgZWluZXMgYmVzdGVo +ZW5kZW4gQXJ0aWtlbHMgYW5sZWdlbi48L3A+CiAgICAgICAgICAgICAgICA8dWw+CiAgICAgICAg +ICAgICAgICAgICAgPGxpPlVudGVyYXJ0aWtlbCB3ZXJkZW4gaW4gZGVyIERva3VtZW50ZW5saXN0 +ZSBlaW5nZXLDvGNrdCB1bnRlciBpaHJlbSDDnGJlcmFydGlrZWwgYW5nZXplaWd0LjwvbGk+CiAg +ICAgICAgICAgICAgICAgICAgPGxpPkluIGRlciBEZXRhaWxhbnNpY2h0IHdlcmRlbiDDnGJlci0g +dW5kIFVudGVyYXJ0aWtlbCBhbHMga2xpY2tiYXJlIExpbmtzIGRhcmdlc3RlbGx0LjwvbGk+CiAg +ICAgICAgICAgICAgICAgICAgPGxpPlppcmtlbHZlcndlaXNlIHdlcmRlbiBhdXRvbWF0aXNjaCB2 +ZXJoaW5kZXJ0LjwvbGk+CiAgICAgICAgICAgICAgICA8L3VsPgoKICAgICAgICAgICAgICAgIDxo +MyBpZD0iaGVscC1tZWRpYSI+TWVkaWVuIGVpbmbDvGdlbjwvaDM+CiAgICAgICAgICAgICAgICA8 +cD7DnGJlciBkZW4gPHN0cm9uZz5EYXRlaS1CdXR0b248L3N0cm9uZz4gaW4gZGVyIFdlcmt6ZXVn +bGVpc3RlIGthbm5zdCBkdSBEYXRlaWVuIGhvY2hsYWRlbi4gTWVocmZhY2hhdXN3YWhsIGlzdCBt +w7ZnbGljaCDigJMgaGFsdGUgZGF6dSA8a2JkPlN0cmc8L2tiZD4gZ2VkcsO8Y2t0LjwvcD4KCiAg +ICAgICAgICAgICAgICA8aDQ+VW50ZXJzdMO8dHp0ZSBEYXRlaXR5cGVuPC9oND4KICAgICAgICAg +ICAgICAgIDx1bD4KICAgICAgICAgICAgICAgICAgICA8bGk+PHN0cm9uZz5CaWxkZXI6PC9zdHJv +bmc+IFBORywgSlBHLCBKUEVHLCBHSUYsIFNWRywgV2ViUDwvbGk+CiAgICAgICAgICAgICAgICAg +ICAgPGxpPjxzdHJvbmc+UERGLURva3VtZW50ZTo8L3N0cm9uZz4gQWxzIERvd25sb2FkLUxpbmss +IGVpbmdlYmV0dGV0ZSBWb3JzY2hhdSBvZGVyIEFuaGFuZzwvbGk+CiAgICAgICAgICAgICAgICAg +ICAgPGxpPjxzdHJvbmc+VmlkZW9zOjwvc3Ryb25nPiBNUDQsIFdlYk08L2xpPgogICAgICAgICAg +ICAgICAgICAgIDxsaT48c3Ryb25nPkF1ZGlvOjwvc3Ryb25nPiBNUDMsIFdBViwgT0dHPC9saT4K +ICAgICAgICAgICAgICAgICAgICA8bGk+PHN0cm9uZz5PZmZpY2UtRG9rdW1lbnRlOjwvc3Ryb25n +PiBXb3JkIChET0NYKSwgRXhjZWwgKFhMU1gpLCBQb3dlclBvaW50IChQUFRYKTwvbGk+CiAgICAg +ICAgICAgICAgICA8L3VsPgoKICAgICAgICAgICAgICAgIDxoND5XaWUgd2VyZGVuIE1lZGllbiBl +aW5nZWbDvGd0PzwvaDQ+CiAgICAgICAgICAgICAgICA8dWw+CiAgICAgICAgICAgICAgICAgICAg +PGxpPjxzdHJvbmc+RGF0ZWktQnV0dG9uOjwvc3Ryb25nPiDDlmZmbmV0IGRlbiBEYXRlaWRpYWxv +ZyDigJMgZHUga2FubnN0IGVpbmUgb2RlciBtZWhyZXJlIERhdGVpZW4gZ2xlaWNoemVpdGlnIGF1 +c3fDpGhsZW48L2xpPgogICAgICAgICAgICAgICAgICAgIDxsaT48c3Ryb25nPkVpbmbDvGdlbiBh +dXMgWndpc2NoZW5hYmxhZ2U6PC9zdHJvbmc+IEJpbGRlciBhdXMgU2NyZWVuc2hvdHMgb2RlciBr +b3BpZXJ0ZW4gV2Vic2VpdGVuIHdlcmRlbiBhdXRvbWF0aXNjaCBoZXJ1bnRlcmdlbGFkZW4gdW5k +IGxva2FsIGdlc3BlaWNoZXJ0PC9saT4KICAgICAgICAgICAgICAgICAgICA8bGk+PHN0cm9uZz5E +cmFnICZhbXA7IERyb3A6PC9zdHJvbmc+IERhdGVpZW4ga8O2bm5lbiBkaXJla3QgaW4gZGVuIEVk +aXRvciBnZXpvZ2VuIHdlcmRlbjwvbGk+CiAgICAgICAgICAgICAgICA8L3VsPgoKICAgICAgICAg +ICAgICAgIDxoND5EYXJzdGVsbHVuZ3Ntb2RpPC9oND4KICAgICAgICAgICAgICAgIDx1bD4KICAg +ICAgICAgICAgICAgICAgICA8bGk+PHN0cm9uZz5Bbmhhbmc6PC9zdHJvbmc+IERhdGVpIHdpcmQg +dW50ZXJoYWxiIGRlcyBBcnRpa2VscyBhbHMgRG93bmxvYWQtTGluayBhbmdlemVpZ3Q8L2xpPgog +ICAgICAgICAgICAgICAgICAgIDxsaT48c3Ryb25nPklubGluZSAoQmlsZCk6PC9zdHJvbmc+IEJp +bGQgd2lyZCBkaXJla3QgaW0gVGV4dCBhbmdlemVpZ3Qg4oCTIGFscyBWb3JzY2hhdWJpbGQgb2Rl +ciBpbiBPcmlnaW5hbGdyw7bDn2UgKG1heC4gNjQww5c0ODAgcHgpPC9saT4KICAgICAgICAgICAg +ICAgICAgICA8bGk+PHN0cm9uZz5QREYtTGluazo8L3N0cm9uZz4gS2xpY2tiYXJlciBMaW5rLCBk +ZXIgZGFzIFBERiBpbiBlaW5lbSBWb3JzY2hhdS1GZW5zdGVyIMO2ZmZuZXQ8L2xpPgogICAgICAg +ICAgICAgICAgICAgIDxsaT48c3Ryb25nPlBERiBlaW5nZWJldHRldDo8L3N0cm9uZz4gUERGIHdp +cmQgYWxzIHNjcm9sbGJhcmVyIFJhaG1lbiBkaXJla3QgaW0gQXJ0aWtlbCBhbmdlemVpZ3Q8L2xp +PgogICAgICAgICAgICAgICAgICAgIDxsaT48c3Ryb25nPlZpZGVvL0F1ZGlvL09mZmljZTo8L3N0 +cm9uZz4gSWNvbi1FbGVtZW50IGltIFRleHQg4oCTIEtsaWNrIMO2ZmZuZXQgZGllIFZvcnNjaGF1 +PC9saT4KICAgICAgICAgICAgICAgIDwvdWw+CgogICAgICAgICAgICAgICAgPGg0Pk1lZGllbiBi +ZWFyYmVpdGVuPC9oND4KICAgICAgICAgICAgICAgIDxwPktsaWNrZSBpbSBFZGl0b3IgYXVmIGVp +biBlaW5nZWbDvGd0ZXMgTWVkaXVtLCB1bSBlcyB6dSBiZWFyYmVpdGVuOjwvcD4KICAgICAgICAg +ICAgICAgIDx1bD4KICAgICAgICAgICAgICAgICAgICA8bGk+PHN0cm9uZz5BdXNyaWNodHVuZzo8 +L3N0cm9uZz4gTGlua3MsIE1pdHRpZyBvZGVyIFJlY2h0czwvbGk+CiAgICAgICAgICAgICAgICAg +ICAgPGxpPjxzdHJvbmc+VW50ZXJ0aXRlbDo8L3N0cm9uZz4gT3B0aW9uYWxlIEJlc2NocmlmdHVu +ZyB1bnRlciBkZW0gTWVkaXVtPC9saT4KICAgICAgICAgICAgICAgICAgICA8bGk+PHN0cm9uZz5F +bnRmZXJuZW46PC9zdHJvbmc+IE1lZGl1bSBhdXMgZGVtIEFydGlrZWwgbMO2c2NoZW4gKGRpZSBE +YXRlaSBibGVpYnQgaW0gTWVkaWVuLU9yZG5lcik8L2xpPgogICAgICAgICAgICAgICAgPC91bD4K +CiAgICAgICAgICAgICAgICA8aDM+V2Vya3pldWdsZWlzdGU8L2gzPgogICAgICAgICAgICAgICAg +PHVsPgogICAgICAgICAgICAgICAgICAgIDxsaT48c3Ryb25nPlLDvGNrZ8OkbmdpZyAvIFdpZWRl +cmhvbGVuOjwvc3Ryb25nPiDihrYgLyDihrc8L2xpPgogICAgICAgICAgICAgICAgICAgIDxsaT48 +c3Ryb25nPlRleHRmb3JtYXRpZXJ1bmc6PC9zdHJvbmc+IEZldHQgKEIpLCBLdXJzaXYgKEkpLCBV +bnRlcnN0cmljaGVuIChVKTwvbGk+CiAgICAgICAgICAgICAgICAgICAgPGxpPjxzdHJvbmc+TGlz +dGVuOjwvc3Ryb25nPiBBdWZ6w6RobHVuZyAo4oCiKSwgTnVtbWVyaWVydGUgTGlzdGUgKDEuKTwv +bGk+CiAgICAgICAgICAgICAgICAgICAgPGxpPjxzdHJvbmc+U2NocmlmdGdyw7bDn2U6PC9zdHJv +bmc+IDEy4oCTMjAgcHg8L2xpPgogICAgICAgICAgICAgICAgICAgIDxsaT48c3Ryb25nPlRleHRm +YXJiZTo8L3N0cm9uZz4gNiB2b3JkZWZpbmllcnRlIEZhcmJlbjwvbGk+CiAgICAgICAgICAgICAg +ICAgICAgPGxpPjxzdHJvbmc+QWtrb3JkZW9uOjwvc3Ryb25nPiBBdWZrbGFwcGJhcmUgVGV4dGJl +cmVpY2hlIOKAkyBpZGVhbCBmw7xyIGVyZ8OkbnplbmRlIEluZm9ybWF0aW9uZW4sIGRpZSBuaWNo +dCBzb2ZvcnQgc2ljaHRiYXIgc2VpbiBtw7xzc2VuPC9saT4KICAgICAgICAgICAgICAgICAgICA8 +bGk+PHN0cm9uZz5GQVE6PC9zdHJvbmc+IEZyYWdlLUFudHdvcnQtQmVyZWljaGUg4oCTIG1laHJl +cmUgRnJhZ2VuIG1pdCBhdXNrbGFwcGJhcmVuIEFudHdvcnRlbiBpbiBlaW5lbSBCbG9jazwvbGk+ +CiAgICAgICAgICAgICAgICAgICAgPGxpPjxzdHJvbmc+VGFiZWxsZTo8L3N0cm9uZz4gU29ydGll +cmJhcmUgVGFiZWxsZW4gbWl0IG9wdGlvbmFsZW4gU3BhbHRlbi0gdW5kIFplaWxlbsO8YmVyc2No +cmlmdGVuPC9saT4KICAgICAgICAgICAgICAgICAgICA8bGk+PHN0cm9uZz5BcnRpa2VscmVmZXJl +bnogKCMpOjwvc3Ryb25nPiBUaXBwZSA8a2JkPiM8L2tiZD4gaW0gVGV4dCwgdW0gYXVmIGVpbmVu +IGFuZGVyZW4gQXJ0aWtlbCB6dSB2ZXJsaW5rZW4g4oCTIG1pdCDDnGJlcnNjaHJpZnRlbi1BdXN3 +YWhsIGFscyBTcHJ1bmd6aWVsPC9saT4KICAgICAgICAgICAgICAgICAgICA8bGk+PHN0cm9uZz5E +YXRlaTo8L3N0cm9uZz4gQmlsZGVyLCBQREZzLCBWaWRlb3MsIEF1ZGlvIHVuZCBPZmZpY2UtRGF0 +ZWllbiBob2NobGFkZW4gdW5kIGltIEFydGlrZWwgZWluYmV0dGVuPC9saT4KICAgICAgICAgICAg +ICAgIDwvdWw+CgogICAgICAgICAgICAgICAgPGgzPkJlaXRyYWdzYXJ0PC9oMz4KICAgICAgICAg +ICAgICAgIDxwPkJlaW0gU3BlaWNoZXJuIGVpbmVzIGJlc3RlaGVuZGVuIERva3VtZW50cyB3aXJz +dCBkdSBuYWNoIGRlciBBcnQgZGVpbmVzIEJlaXRyYWdzIGdlZnJhZ3Q6PC9wPgogICAgICAgICAg +ICAgICAgPHVsPgogICAgICAgICAgICAgICAgICAgIDxsaT48c3Ryb25nPkF1dG9yOjwvc3Ryb25n +PiBTaWduaWZpa2FudGUgaW5oYWx0bGljaGUgRXJzdGVsbHVuZy48L2xpPgogICAgICAgICAgICAg +ICAgICAgIDxsaT48c3Ryb25nPlJlZGFrdGlvbjo8L3N0cm9uZz4gUmVjaHRzY2hyZWlidW5nLCBG +b3JtYXRpZXJ1bmcsIGtsZWluZXJlIEtvcnJla3R1cmVuLjwvbGk+CiAgICAgICAgICAgICAgICAg +ICAgPGxpPjxzdHJvbmc+UmV2aWV3Ojwvc3Ryb25nPiBGYWNobGljaGUgUHLDvGZ1bmcgdW5kIEFu +bWVya3VuZ2VuLjwvbGk+CiAgICAgICAgICAgICAgICA8L3VsPgogICAgICAgICAgICAgICAgPHA+ +RGllc2UgQW5nYWJlbiBmbGllw59lbiBpbiBkaWUgTWl0d2lya2VuZGVuLUFuemVpZ2UgaW0gRG9r +dW1lbnQgZWluLjwvcD4KCiAgICAgICAgICAgICAgICA8aDIgaWQ9ImhlbHAtZGVsZXRlIj5Mw7Zz +Y2hlbiAmYW1wOyBQYXBpZXJrb3JiPC9oMj4KICAgICAgICAgICAgICAgIDxwPkJlaW0gTMO2c2No +ZW4gZWluZXMgRG9rdW1lbnRzIHdpcmQgZWluIEJlc3TDpHRpZ3VuZ3NkaWFsb2cgYW5nZXplaWd0 +OjwvcD4KICAgICAgICAgICAgICAgIDx1bD4KICAgICAgICAgICAgICAgICAgICA8bGk+RHUgbXVz +c3QgZGVpbmUgPHN0cm9uZz5OVy1LZW5udW5nPC9zdHJvbmc+IHp1ciBJZGVudGlmaWthdGlvbiBl +aW5nZWJlbi48L2xpPgogICAgICAgICAgICAgICAgICAgIDxsaT5EYXMgTMO2c2NoZXJlaWduaXMg +d2lyZCBwcm90b2tvbGxpZXJ0IChXZXIsIFdhbm4sIFdlbGNoZXMgRG9rdW1lbnQpLjwvbGk+CiAg +ICAgICAgICAgICAgICAgICAgPGxpPkdlbMO2c2NodGUgRG9rdW1lbnRlIHdlcmRlbiBpbiBkZW4g +PHN0cm9uZz5QYXBpZXJrb3JiPC9zdHJvbmc+IHZlcnNjaG9iZW4gdW5kIHNpbmQgPHN0cm9uZz4y +OCBUYWdlPC9zdHJvbmc+IGxhbmcgd2llZGVyaGVyc3RlbGxiYXIuPC9saT4KICAgICAgICAgICAg +ICAgIDwvdWw+CiAgICAgICAgICAgICAgICA8cD5HZWzDtnNjaHRlIERva3VtZW50ZSB3ZXJkZW4g +MjggVGFnZSBpbSBQYXBpZXJrb3JiIGF1ZmJld2FocnQgdW5kIGvDtm5uZW4gaW4gZGllc2VtIFpl +aXRyYXVtIHdpZWRlcmhlcmdlc3RlbGx0IHdlcmRlbi48L3A+CgogICAgICAgICAgICAgICAgPGgy +IGlkPSJoZWxwLXRoZW1lIj5UYWcvTmFjaHQtTW9kdXM8L2gyPgogICAgICAgICAgICAgICAgPHA+ +S2xpY2tlIGF1ZiBkZW4gQnV0dG9uIG9iZW4gcmVjaHRzIGltIEhlYWRlciwgdW0gendpc2NoZW4g +aGVsbGVtIHVuZCBkdW5rbGVtIERlc2lnbiB6dSB3ZWNoc2Vsbi48L3A+CiAgICAgICAgICAgICAg +ICA8cD5EZWluZSBBdXN3YWhsIHdpcmQgaW0gQnJvd3NlciBnZXNwZWljaGVydCB1bmQgYmVpbSBu +w6RjaHN0ZW4gQmVzdWNoIGF1dG9tYXRpc2NoIHdpZWRlcmhlcmdlc3RlbGx0LjwvcD4KCiAgICAg +ICAgICAgICAgICA8aDM+RGlhbG9nZmVuc3RlciBzY2hsaWXDn2VuPC9oMz4KICAgICAgICAgICAg +ICAgIDxwPkRpZSBtZWlzdGVuIERpYWxvZ2ZlbnN0ZXIgKEhpbGZlLCBWZXJzaW9uc2hpc3Rvcmll +LCBGcmVpZ2FiZXZlcmFudHdvcnRsaWNoZSkga8O2bm5lbiBkdXJjaCBlaW5lbiBLbGljayBhdWYg +ZGVuIEJlcmVpY2ggYXXDn2VyaGFsYiBkZXMgRGlhbG9ncyBnZXNjaGxvc3NlbiB3ZXJkZW4uIERp +YWxvZ2UgbWl0IEVpbmdhYmVmZWxkZXJuIChFZGl0b3IsIEzDtnNjaGJlc3TDpHRpZ3VuZykgZXJm +b3JkZXJuIGV4cGxpeml0ZXMgU3BlaWNoZXJuIG9kZXIgQWJicmVjaGVuLjwvcD4KCiAgICAgICAg +ICAgICAgICA8aDIgaWQ9ImhlbHAtc2hvcnRjdXRzIj5UYXN0ZW5rw7xyemVsPC9oMj4KICAgICAg +ICAgICAgICAgIDxoMz5JbSBFZGl0b3I8L2gzPgogICAgICAgICAgICAgICAgPHVsPgogICAgICAg +ICAgICAgICAgICAgIDxsaT48a2JkPlN0cmc8L2tiZD4rPGtiZD5aPC9rYmQ+IOKAkyBSw7xja2fD +pG5naWc8L2xpPgogICAgICAgICAgICAgICAgICAgIDxsaT48a2JkPlN0cmc8L2tiZD4rPGtiZD5Z +PC9rYmQ+IC8gPGtiZD5TdHJnPC9rYmQ+KzxrYmQ+U2hpZnQ8L2tiZD4rPGtiZD5aPC9rYmQ+IOKA +kyBXaWVkZXJob2xlbjwvbGk+CiAgICAgICAgICAgICAgICA8L3VsPgogICAgICAgICAgICAgICAg +PGgzPlNjaGxhZ3fDtnJ0ZXItRWluZ2FiZTwvaDM+CiAgICAgICAgICAgICAgICA8dWw+CiAgICAg +ICAgICAgICAgICAgICAgPGxpPjxrYmQ+RW50ZXI8L2tiZD4gb2RlciA8a2JkPiw8L2tiZD4g4oCT +IFNjaGxhZ3dvcnQgaGluenVmw7xnZW48L2xpPgogICAgICAgICAgICAgICAgICAgIDxsaT48a2Jk +PkJhY2tzcGFjZTwva2JkPiAoYmVpIGxlZXJlbSBGZWxkKSDigJMgTGV0enRlcyBTY2hsYWd3b3J0 +IGVudGZlcm5lbjwvbGk+CiAgICAgICAgICAgICAgICA8L3VsPgogICAgICAgICAgICAgICAgPGgz +PkFsbGdlbWVpbjwvaDM+CiAgICAgICAgICAgICAgICA8dWw+CiAgICAgICAgICAgICAgICAgICAg +PGxpPjxrYmQ+RXNjPC9rYmQ+IOKAkyBNZWRpZW4tVm9sbGFuc2ljaHQgc2NobGllw59lbjwvbGk+ +CiAgICAgICAgICAgICAgICA8L3VsPgoKICAgICAgICAgICAgICAgIDxoMiBpZD0iaGVscC12ZXJz +aW9uIj5WZXJzaW9uc2hpc3RvcmllPC9oMj4KICAgICAgICAgICAgICAgIDxwPktsaWNrZSBhdWYg +ZGllIFZlcnNpb25zbnVtbWVyICh6LiBCLiA8c3Ryb25nPnYxLjA8L3N0cm9uZz4pIGltIEZvb3Rl +ciwgdW0gZGllIHZvbGxzdMOkbmRpZ2UgVmVyc2lvbnNoaXN0b3JpZSBhbnp1emVpZ2VuLjwvcD4K +ICAgICAgICAgICAgICAgIDx1bD4KICAgICAgICAgICAgICAgICAgICA8bGk+PHN0cm9uZz52MS4w +PC9zdHJvbmc+IOKAkyBPZmZpemllbGxlIMOcYmVyZ2FiZTogTGVzZW1vZHVzLCBFZGl0b3ItS29t +cG9uZW50ZW4sIFZlcnNpb25pZXJ1bmcsIEFkbWluLUFubGVpdHVuZzwvbGk+CiAgICAgICAgICAg +ICAgICAgICAgPGxpPjxzdHJvbmc+djAuOTwvc3Ryb25nPiDigJMgQ3Jvc3NsaW5rcywgUmV2aXNp +b25zaGlzdG9yaWUsIFNjaGxhZ3dvcnQtVmVyd2FsdHVuZzwvbGk+CiAgICAgICAgICAgICAgICAg +ICAgPGxpPjxzdHJvbmc+djAuODwvc3Ryb25nPiDigJMgUmV2aWV3LVdvcmtmbG93LCBUYWctL05h +Y2h0LU1vZHVzPC9saT4KICAgICAgICAgICAgICAgICAgICA8bGk+PHN0cm9uZz52MC43PC9zdHJv +bmc+IOKAkyBHb3Zlcm5hbmNlLCBMb2NraW5nLCBWZXJzY2hsw7xzc2VsdW5nLCBTdGF0aXN0aWs8 +L2xpPgogICAgICAgICAgICAgICAgICAgIDxsaT48c3Ryb25nPnYwLjY8L3N0cm9uZz4g4oCTIEZy +ZWlnYWJlLVdvcmtmbG93LCBNZWRpZW4tVXBsb2FkPC9saT4KICAgICAgICAgICAgICAgICAgICA8 +bGk+PHN0cm9uZz52MC41PC9zdHJvbmc+IOKAkyBXWVNJV1lHLUVkaXRvciwgVW50ZXJhcnRpa2Vs +PC9saT4KICAgICAgICAgICAgICAgICAgICA8bGk+PHN0cm9uZz52MC40PC9zdHJvbmc+IOKAkyBT +aW5nbGUtRmlsZS1BcHAsIFBvd2VyU2hlbGwtU2VydmVyPC9saT4KICAgICAgICAgICAgICAgICAg +ICA8bGk+PHN0cm9uZz52MC4xPC9zdHJvbmc+IOKAkyBFcnN0ZXIgUHJvdG90eXA8L2xpPgogICAg +ICAgICAgICAgICAgPC91bD4KCiAgICAgICAgICAgICAgICA8aDIgaWQ9ImhlbHAtY29udGFjdCI+ +RnJhZ2VuIHVuZCBVbnRlcnN0w7x0enVuZzwvaDI+CiAgICAgICAgICAgICAgICA8cD5CZWkgPHN0 +cm9uZz50ZWNobmlzY2hlbiBQcm9ibGVtZW48L3N0cm9uZz4gKEZlaGxlcm1lbGR1bmdlbiwgRGFy +c3RlbGx1bmdzZmVobGVyLCBBYnN0w7xyemUpIHN0ZWh0IGRlciB0ZWNobmlzY2hlIFN1cHBvcnQg +w7xiZXIgZGFzIFZlcndhbHR1bmdzcGFuZWwgenVyIFZlcmbDvGd1bmcuPC9wPgogICAgICAgICAg +ICAgICAgPHAgc3R5bGU9Im1hcmdpbi10b3A6OHB4OyI+QmVpIEZyYWdlbiBydW5kIHVtIGRlbiA8 +c3Ryb25nPkVyc3RlbGx1bmdzcHJvemVzcywgRnJlaWdhYmUtV29ya2Zsb3cgb2RlciBpbmhhbHRs +aWNoZSBUaGVtZW48L3N0cm9uZz4gd2VuZGUgZGljaCBiaXR0ZSBhbiBkaWUgZsO8ciBkZWluZSBL +YXRlZ29yaWUgenVzdMOkbmRpZ2VuIDxzdHJvbmc+RnJlaWdhYmV2ZXJhbnR3b3J0bGljaGVuPC9z +dHJvbmc+IG9kZXIgZGllIDxzdHJvbmc+RmFjaGF1ZnNpY2h0PC9zdHJvbmc+LiBEdSBmaW5kZXN0 +IGRpZSBadXN0w6RuZGlna2VpdGVuIMO8YmVyIGRlbiBMaW5rIOKAnkZyZWlnYWJldmVyYW50d29y +dGxpY2hlIiBpbSBGb290ZXIuPC9wPgoKICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwv +ZGl2PgogICAgICAgIDwvZGl2PgogICAgPC9kaXY+Cgo8IS0tIFN0YXRpc2NoZXIgSW5kZXggZnVl +ciBmaWxlOi8vIExlc2Vtb2R1cyAod2lyZCB2b20gU2VydmVyIGF1dG9tYXRpc2NoIGFrdHVhbGlz +aWVydCkgLS0+CjxzY3JpcHQgc3JjPSJkYXRhL2luZGV4LmpzIiBvbmVycm9yPSIiPjwvc2NyaXB0 +PgoKPHNjcmlwdD4KLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 +PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLy8gRC5SLkkuVi5FLiBQb3J0YWwg +djEuMCAtIEtvbXBsZXR0ZSBBcHAtTG9naWsKLy8gRmlsZSBTeXN0ZW0gQWNjZXNzIEFQSSArIEpT +T04tYmFzaWVydGUgRG9rdW1lbnRlbnZlcndhbHR1bmcKLy8gPT09PT09PT09PT09PT09PT09PT09 +PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K +Ci8vID09PT09PT09PT09PT09PT09PT09PSBUSEVNRSBUT0dHTEUgPT09PT09PT09PT09PT09PT09 +PT09CgpmdW5jdGlvbiB0b2dnbGVUaGVtZSgpIHsKICAgIGNvbnN0IGN1cnJlbnQgPSBkb2N1bWVu +dC5kb2N1bWVudEVsZW1lbnQuZ2V0QXR0cmlidXRlKCdkYXRhLXRoZW1lJyk7CiAgICBjb25zdCBu +ZXh0ID0gY3VycmVudCA9PT0gJ25pZ2h0JyA/ICdkYXknIDogJ25pZ2h0JzsKICAgIGRvY3VtZW50 +LmRvY3VtZW50RWxlbWVudC5zZXRBdHRyaWJ1dGUoJ2RhdGEtdGhlbWUnLCBuZXh0KTsKICAgIHRy +eSB7IGxvY2FsU3RvcmFnZS5zZXRJdGVtKCdkcml2ZS10aGVtZScsIG5leHQpOyB9IGNhdGNoKGUp +IHt9Cn0KCihmdW5jdGlvbiBpbml0VGhlbWUoKSB7CiAgICB2YXIgc2F2ZWQgPSBudWxsOwogICAg +dHJ5IHsgc2F2ZWQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnZHJpdmUtdGhlbWUnKTsgfSBjYXRj +aChlKSB7fQogICAgaWYgKHNhdmVkID09PSAnbmlnaHQnKSB7CiAgICAgICAgZG9jdW1lbnQuZG9j +dW1lbnRFbGVtZW50LnNldEF0dHJpYnV0ZSgnZGF0YS10aGVtZScsICduaWdodCcpOwogICAgfQp9 +KSgpOwoKLy8gPT09PT09PT09PT09PT09PT09PT09IEhJTEZFLU1PREFMID09PT09PT09PT09PT09 +PT09PT09PQoKdmFyIF9oZWxwT3JpZ2luYWxDb250ZW50ID0gJyc7CgpmdW5jdGlvbiBzaG93SGVs +cCgpIHsKICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdoZWxwTW9kYWwnKS5jbGFzc0xpc3Qu +YWRkKCdhY3RpdmUnKTsKICAgIHZhciBib2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2hl +bHBCb2R5Jyk7CiAgICBib2R5LnNjcm9sbFRvcCA9IDA7CiAgICBib2R5LmNvbnRlbnRFZGl0YWJs +ZSA9ICdmYWxzZSc7CiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaGVscEVkaXRCYXInKS5j +bGFzc0xpc3QucmVtb3ZlKCdhY3RpdmUnKTsKICAgIC8vIEVkaXQtQnV0dG9uIG51ciBmdWVyIFN1 +cGVyVXNlciBpbSBTZXJ2ZXItTW9kdXMgYW56ZWlnZW4KICAgIHZhciBlZGl0QnRuID0gZG9jdW1l +bnQuZ2V0RWxlbWVudEJ5SWQoJ2hlbHBFZGl0QnRuJyk7CiAgICB2YXIgY2FuRWRpdCA9IGZhbHNl +OwogICAgdHJ5IHsgY2FuRWRpdCA9IERyaXZlRlMubW9kZSA9PT0gJ3NlcnZlcicgJiYgRHJpdmVH +b3Zlcm5hbmNlLmlzU3VwZXJVc2VyKCk7IH0gY2F0Y2goZSkge30KICAgIGVkaXRCdG4uc3R5bGUu +ZGlzcGxheSA9IGNhbkVkaXQgPyAnYmxvY2snIDogJ25vbmUnOwogICAgX3VwZGF0ZUhlbHBUb2NB +Y3RpdmUoKTsKICAgIGJvZHkub25zY3JvbGwgPSBfdXBkYXRlSGVscFRvY0FjdGl2ZTsKfQoKZnVu +Y3Rpb24gY2xvc2VIZWxwKCkgewogICAgdmFyIGJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJ +ZCgnaGVscEJvZHknKTsKICAgIGJvZHkuY29udGVudEVkaXRhYmxlID0gJ2ZhbHNlJzsKICAgIGRv +Y3VtZW50LmdldEVsZW1lbnRCeUlkKCdoZWxwRWRpdEJhcicpLmNsYXNzTGlzdC5yZW1vdmUoJ2Fj +dGl2ZScpOwogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2hlbHBNb2RhbCcpLmNsYXNzTGlz +dC5yZW1vdmUoJ2FjdGl2ZScpOwp9CgpmdW5jdGlvbiBzdGFydEVkaXRIZWxwKCkgewogICAgdmFy +IGJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaGVscEJvZHknKTsKICAgIF9oZWxwT3Jp +Z2luYWxDb250ZW50ID0gYm9keS5pbm5lckhUTUw7CiAgICBib2R5LmNvbnRlbnRFZGl0YWJsZSA9 +ICd0cnVlJzsKICAgIGJvZHkuZm9jdXMoKTsKICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdo +ZWxwRWRpdEJhcicpLmNsYXNzTGlzdC5hZGQoJ2FjdGl2ZScpOwogICAgZG9jdW1lbnQuZ2V0RWxl +bWVudEJ5SWQoJ2hlbHBFZGl0QnRuJykuc3R5bGUuZGlzcGxheSA9ICdub25lJzsKfQoKZnVuY3Rp +b24gY2FuY2VsRWRpdEhlbHAoKSB7CiAgICB2YXIgYm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRC +eUlkKCdoZWxwQm9keScpOwogICAgYm9keS5pbm5lckhUTUwgPSBfaGVscE9yaWdpbmFsQ29udGVu +dDsKICAgIGJvZHkuY29udGVudEVkaXRhYmxlID0gJ2ZhbHNlJzsKICAgIGRvY3VtZW50LmdldEVs +ZW1lbnRCeUlkKCdoZWxwRWRpdEJhcicpLmNsYXNzTGlzdC5yZW1vdmUoJ2FjdGl2ZScpOwogICAg +ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2hlbHBFZGl0QnRuJykuc3R5bGUuZGlzcGxheSA9ICcn +OwogICAgc2hvd1RvYXN0KCdCZWFyYmVpdHVuZyBhYmdlYnJvY2hlbicsICdpbmZvJyk7Cn0KCmZ1 +bmN0aW9uIHNhdmVFZGl0SGVscCgpIHsKICAgIHZhciBib2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVu +dEJ5SWQoJ2hlbHBCb2R5Jyk7CiAgICB2YXIgY29udGVudCA9IGJvZHkuaW5uZXJIVE1MOwogICAg +Ym9keS5jb250ZW50RWRpdGFibGUgPSAnZmFsc2UnOwogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5 +SWQoJ2hlbHBFZGl0QmFyJykuY2xhc3NMaXN0LnJlbW92ZSgnYWN0aXZlJyk7CiAgICBkb2N1bWVu +dC5nZXRFbGVtZW50QnlJZCgnaGVscEVkaXRCdG4nKS5zdHlsZS5kaXNwbGF5ID0gJyc7CiAgICAv +LyBQZXJzaXN0aWVyZW4KICAgIERyaXZlR292ZXJuYW5jZS5zYXZlSGVscENvbnRlbnQoKTsKICAg +IC8vIFRPQyBha3R1YWxpc2llcmVuIGJhc2llcmVuZCBhdWYgZGVuIGgyL2gzIElEcwogICAgX3Jl +YnVpbGRIZWxwVG9jKCk7CiAgICBzaG93VG9hc3QoJ0hpbGZlLUluaGFsdCBnZXNwZWljaGVydCcs +ICdzdWNjZXNzJyk7Cn0KCmZ1bmN0aW9uIF9yZWJ1aWxkSGVscFRvYygpIHsKICAgIHZhciBib2R5 +ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2hlbHBCb2R5Jyk7CiAgICB2YXIgdG9jID0gZG9j +dW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2hlbHBUb2MnKTsKICAgIHZhciBoZWFkaW5ncyA9IGJvZHku +cXVlcnlTZWxlY3RvckFsbCgnaDJbaWRdLCBoM1tpZF0nKTsKICAgIHZhciBodG1sID0gJzxkaXYg +Y2xhc3M9ImhlbHAtdG9jLXRpdGxlIj5IaWxmZSAmYW1wOyBBbmxlaXR1bmc8L2Rpdj4nOwogICAg +aGVhZGluZ3MuZm9yRWFjaChmdW5jdGlvbihoKSB7CiAgICAgICAgdmFyIGlzU3ViID0gaC50YWdO +YW1lID09PSAnSDMnOwogICAgICAgIHZhciBzYWZlSWQgPSBoLmlkLnJlcGxhY2UoL1teYS16QS1a +MC05XC1fXS9nLCAnJyk7CiAgICAgICAgaHRtbCArPSAnPGEgaHJlZj0iIycgKyBzYWZlSWQgKyAn +IiBkYXRhLXNlY3Rpb249IicgKyBzYWZlSWQgKyAnIicgKyAoaXNTdWIgPyAnIGNsYXNzPSJzdWIi +JyA6ICcnKSArICc+JyArIGgudGV4dENvbnRlbnQgKyAnPC9hPic7CiAgICB9KTsKICAgIHRvYy5p +bm5lckhUTUwgPSBodG1sOwp9CgpmdW5jdGlvbiBfdXBkYXRlSGVscFRvY0FjdGl2ZSgpIHsKICAg +IHZhciBib2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2hlbHBCb2R5Jyk7CiAgICB2YXIg +c2VjdGlvbnMgPSBib2R5LnF1ZXJ5U2VsZWN0b3JBbGwoJ2gyW2lkXSwgaDNbaWRdJyk7CiAgICB2 +YXIgc2Nyb2xsVG9wID0gYm9keS5zY3JvbGxUb3AgKyA0MDsKICAgIHZhciBhY3RpdmVJZCA9ICcn +OwogICAgc2VjdGlvbnMuZm9yRWFjaChmdW5jdGlvbihzKSB7CiAgICAgICAgaWYgKHMub2Zmc2V0 +VG9wIDw9IHNjcm9sbFRvcCkgYWN0aXZlSWQgPSBzLmlkOwogICAgfSk7CiAgICBkb2N1bWVudC5x +dWVyeVNlbGVjdG9yQWxsKCcjaGVscFRvYyBhJykuZm9yRWFjaChmdW5jdGlvbihhKSB7CiAgICAg +ICAgYS5jbGFzc0xpc3QudG9nZ2xlKCdhY3RpdmUnLCBhLmdldEF0dHJpYnV0ZSgnZGF0YS1zZWN0 +aW9uJykgPT09IGFjdGl2ZUlkKTsKICAgIH0pOwp9CgovLyBUT0MtS2xpY2tzOiBzbW9vdGggc2Ny +b2xsIGltIGhlbHAtYm9keQpkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0 +aW9uKGUpIHsKICAgIHZhciBsaW5rID0gZS50YXJnZXQuY2xvc2VzdCgnI2hlbHBUb2MgYScpOwog +ICAgaWYgKCFsaW5rKSByZXR1cm47CiAgICBlLnByZXZlbnREZWZhdWx0KCk7CiAgICB2YXIgdGFy +Z2V0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQobGluay5nZXRBdHRyaWJ1dGUoJ2RhdGEtc2Vj +dGlvbicpKTsKICAgIGlmICh0YXJnZXQpIHsKICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJ +ZCgnaGVscEJvZHknKS5zY3JvbGxUbyh7IHRvcDogdGFyZ2V0Lm9mZnNldFRvcCAtIDIwLCBiZWhh +dmlvcjogJ3Ntb290aCcgfSk7CiAgICB9Cn0pOwoKLy8gPT09PT09PT09PT09PT09PT09PT09IFZF +UlNJT04gSElTVE9SWSA9PT09PT09PT09PT09PT09PT09PT0KCmZ1bmN0aW9uIHNob3dWZXJzaW9u +SGlzdG9yeSgpIHsKICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd2ZXJzaW9uTW9kYWwnKS5j +bGFzc0xpc3QuYWRkKCdhY3RpdmUnKTsKfQoKZnVuY3Rpb24gY2xvc2VWZXJzaW9uSGlzdG9yeSgp +IHsKICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd2ZXJzaW9uTW9kYWwnKS5jbGFzc0xpc3Qu +cmVtb3ZlKCdhY3RpdmUnKTsKfQoKLy8gPT09PT09PT09PT09PT09PT09PT09IFRPQVNUIE5PVElG +SUNBVElPTlMgPT09PT09PT09PT09PT09PT09PT09CgovLyBEYXR1bS9aZWl0LUZvcm1hdGllcnVu +ZzogSVNPIC0+IGRldXRzY2hlcyBGb3JtYXQKZnVuY3Rpb24gZm9ybWF0RGF0ZShpc29TdHIpIHsK +ICAgIGlmICghaXNvU3RyIHx8IGlzb1N0ciA9PT0gJy0nKSByZXR1cm4gJy0nOwogICAgLy8gIjIw +MjYtMDMtMjYiIG9kZXIgIjIwMjYtMDMtMjZUMTk6MjY6NTIuMDAwWiIKICAgIHZhciBwYXJ0cyA9 +IGlzb1N0ci5zcGxpdCgnVCcpWzBdLnNwbGl0KCctJyk7CiAgICBpZiAocGFydHMubGVuZ3RoICE9 +PSAzKSByZXR1cm4gaXNvU3RyOwogICAgcmV0dXJuIHBhcnRzWzJdICsgJy4nICsgcGFydHNbMV0g +KyAnLicgKyBwYXJ0c1swXTsKfQpmdW5jdGlvbiBmb3JtYXREYXRlVGltZShpc29TdHIpIHsKICAg +IGlmICghaXNvU3RyIHx8IGlzb1N0ciA9PT0gJy0nKSByZXR1cm4gJy0nOwogICAgdmFyIGQgPSBu +ZXcgRGF0ZShpc29TdHIpOwogICAgaWYgKGlzTmFOKGQuZ2V0VGltZSgpKSkgcmV0dXJuIGlzb1N0 +cjsKICAgIHJldHVybiBkLnRvTG9jYWxlRGF0ZVN0cmluZygnZGUtREUnLCB7ZGF5OicyLWRpZ2l0 +Jyxtb250aDonMi1kaWdpdCcseWVhcjonbnVtZXJpYyd9KSArCiAgICAgICAgJyAnICsgZC50b0xv +Y2FsZVRpbWVTdHJpbmcoJ2RlLURFJywge2hvdXI6JzItZGlnaXQnLG1pbnV0ZTonMi1kaWdpdCd9 +KTsKfQoKLy8gQXV0b21hdGlzY2hlIEFydGlrZWx2ZXJzaW9uaWVydW5nIChTZW1hbnRpYyBWZXJz +aW9uaW5nKQovLyBNYWpvciA9IEZyZWlnYWJlenlrbGVuICh2MC54ID0gbmllIGZyZWlnZWdlYmVu +LCB2MS54ID0gZWlubWFsLCB2Mi54ID0gendlaW1hbCwgLi4uKQovLyBNaW5vciA9IEJlYXJiZWl0 +dW5nZW4gaW5uZXJoYWxiIGVpbmVzIFp5a2x1cyAoKzAuMSBwcm8gU3BlaWNoZXJ1bmcpCi8vIEZy +ZWlnYWJlID0gbmFlY2hzdGUgdm9sbGUgVmVyc2lvbiAodjEuMCwgdjIuMCwgLi4uKQpmdW5jdGlv +biBjYWxjdWxhdGVWZXJzaW9uKGRvYywgb2xkSW5oYWx0LCBuZXdJbmhhbHQsIG5ld1N0YXR1cykg +ewogICAgdmFyIGN1cnJlbnQgPSBwYXJzZVZlcnNpb24oZG9jLnZlcnNpb24pOwoKICAgIC8vIEZy +ZWlnYWJlOiBTcHJ1bmcgYXVmIG5hZWNoc3RlIHZvbGxlIFZlcnNpb24gKG1pbmQuIHYxLjApCiAg +ICAvLyBHaWx0IGF1Y2ggZnVlciBuZXVlIEFydGlrZWwgZGllIGRpcmVrdCBmcmVpZ2VnZWJlbiB3 +ZXJkZW4gKHYwLjEgLT4gdjEuMCkKICAgIGlmIChuZXdTdGF0dXMgPT09ICdGcmVpZ2VnZWJlbicg +JiYgZG9jLnN0YXR1cyAhPT0gJ0ZyZWlnZWdlYmVuJykgewogICAgICAgIHJldHVybiAndicgKyBN +YXRoLm1heCgxLCBjdXJyZW50Lm1ham9yICsgMSkgKyAnLjAnOwogICAgfQoKICAgIC8vIE5ldWVz +IERva3VtZW50IChFbnR3dXJmKTogYmxlaWJ0IHYwLjEKICAgIGlmICghZG9jLnZlcnNpb24gfHwg +ZG9jLnZlcnNpb24gPT09ICd2MC4xJykgcmV0dXJuICd2MC4xJzsKCiAgICAvLyBBYmxlaG51bmc6 +IFZlcnNpb24gYmxlaWJ0CiAgICBpZiAobmV3U3RhdHVzID09PSAnQWJnZWxlaG50JykgcmV0dXJu +IGRvYy52ZXJzaW9uOwoKICAgIC8vIEluaGFsdCBnZWFlbmRlcnQ6ICswLjEKICAgIGlmIChvbGRJ +bmhhbHQgJiYgbmV3SW5oYWx0ICYmIG9sZEluaGFsdCAhPT0gbmV3SW5oYWx0KSB7CiAgICAgICAg +cmV0dXJuICd2JyArIGN1cnJlbnQubWFqb3IgKyAnLicgKyAoY3VycmVudC5taW5vciArIDEpOwog +ICAgfQoKICAgIHJldHVybiBkb2MudmVyc2lvbjsKfQoKZnVuY3Rpb24gcGFyc2VWZXJzaW9uKHYp +IHsKICAgIGlmICghdikgcmV0dXJuIHsgbWFqb3I6IDAsIG1pbm9yOiAxIH07CiAgICB2YXIgbSA9 +IHYucmVwbGFjZSgndicsICcnKS5zcGxpdCgnLicpOwogICAgcmV0dXJuIHsgbWFqb3I6IHBhcnNl +SW50KG1bMF0pIHx8IDAsIG1pbm9yOiBwYXJzZUludChtWzFdKSB8fCAwIH07Cn0KCi8vIFZlcnNp +b25zaW50ZWdyaXRhZXRzcHJ1ZWZ1bmc6IFN0ZWxsdCBzaWNoZXIsIGRhc3MgZGllIFZlcnNpb24g +enVtIFN0YXR1cyBwYXNzdC4KLy8gV2lyZCBiZWltIExhZGVuIGplZGVzIERva3VtZW50cyBhdWZn +ZXJ1ZmVuIHVuZCBrb3JyaWdpZXJ0IElua29uc2lzdGVuemVuLgovLyBSZWdlbG46Ci8vICAgRW50 +d3VyZi9QcnVlZnVuZzogdjAueCAobWluZC4gdjAuMSkKLy8gICBGcmVpZ2VnZWJlbjogICAgICB2 +MS4wKyAoTWFqb3IgPj0gMSkKLy8gICBBYmdlbGVobnQ6ICAgICAgICB1bnZlcmFlbmRlcnQKLy8g +R2lidCB0cnVlIHp1cnVlY2sgd2VubiBkaWUgVmVyc2lvbiBrb3JyaWdpZXJ0IHd1cmRlLgpmdW5j +dGlvbiBlbnN1cmVDb3JyZWN0VmVyc2lvbihkb2MpIHsKICAgIGlmICghZG9jIHx8ICFkb2Muc3Rh +dHVzKSByZXR1cm4gZmFsc2U7CiAgICB2YXIgdiA9IHBhcnNlVmVyc2lvbihkb2MudmVyc2lvbik7 +CiAgICB2YXIgc3RhdHVzID0gZG9jLnN0YXR1czsKICAgIHZhciBjaGFuZ2VkID0gZmFsc2U7Cgog +ICAgaWYgKHN0YXR1cyA9PT0gJ0ZyZWlnZWdlYmVuJyAmJiB2Lm1ham9yIDwgMSkgewogICAgICAg +IC8vIEZyZWlnZWdlYmVuZXIgQXJ0aWtlbCBtdXNzIG1pbmRlc3RlbnMgdjEuMCBzZWluCiAgICAg +ICAgZG9jLnZlcnNpb24gPSAndjEuMCc7CiAgICAgICAgY2hhbmdlZCA9IHRydWU7CiAgICB9IGVs +c2UgaWYgKChzdGF0dXMgPT09ICdFbnR3dXJmJyB8fCBzdGF0dXMgPT09ICdQcsO8ZnVuZycpICYm +ICFkb2MudmVyc2lvbikgewogICAgICAgIC8vIEVudHd1cmYvUHJ1ZWZ1bmcgb2huZSBWZXJzaW9u +OiB2MC4xCiAgICAgICAgZG9jLnZlcnNpb24gPSAndjAuMSc7CiAgICAgICAgY2hhbmdlZCA9IHRy +dWU7CiAgICB9CgogICAgcmV0dXJuIGNoYW5nZWQ7Cn0KCmZ1bmN0aW9uIHNob3dWZXJzaW9uTG9n +aWMoKSB7CiAgICB2YXIgbW9kYWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKICAg +IG1vZGFsLnN0eWxlLmNzc1RleHQgPSAncG9zaXRpb246Zml4ZWQ7dG9wOjA7bGVmdDowO3dpZHRo +OjEwMCU7aGVpZ2h0OjEwMCU7YmFja2dyb3VuZDpyZ2JhKDAsMCwwLDAuNSk7ei1pbmRleDoxMDAw +MDtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7 +JzsKICAgIG1vZGFsLm9uY2xpY2sgPSBmdW5jdGlvbihlKSB7IGlmIChlLnRhcmdldCA9PT0gbW9k +YWwpIG1vZGFsLnJlbW92ZSgpOyB9OwogICAgbW9kYWwuaW5uZXJIVE1MID0KICAgICAgICAnPGRp +diBzdHlsZT0iYmFja2dyb3VuZDp2YXIoLS1iZy1jYXJkKTtib3JkZXItcmFkaXVzOjEwcHg7cGFk +ZGluZzoyNHB4IDI4cHg7bWF4LXdpZHRoOjQ4MHB4O3dpZHRoOjkwJTtib3gtc2hhZG93OjAgOHB4 +IDMycHggcmdiYSgwLDAsMCwwLjMpOyI+JyArCiAgICAgICAgICAgICc8aDIgc3R5bGU9ImNvbG9y +OnZhcigtLXRleHQtaGVhZGluZyk7bWFyZ2luLWJvdHRvbToxNHB4O2ZvbnQtc2l6ZToxN3B4OyI+ +QXV0b21hdGlzY2hlIFZlcnNpb25pZXJ1bmc8L2gyPicgKwogICAgICAgICAgICAnPHAgc3R5bGU9 +ImNvbG9yOnZhcigtLXRleHQtcHJpbWFyeSk7Zm9udC1zaXplOjEzcHg7bGluZS1oZWlnaHQ6MS43 +O21hcmdpbi1ib3R0b206MTRweDsiPicgKwogICAgICAgICAgICAgICAgJ0RpZSBWZXJzaW9uIHpl +aWd0IGRpciBhdWYgZWluZW4gQmxpY2ssIHdpZSBvZnQgZWluIEFydGlrZWwgYmVhcmJlaXRldCB1 +bmQgZnJlaWdlZ2ViZW4gd3VyZGUuJyArCiAgICAgICAgICAgICc8L3A+JyArCiAgICAgICAgICAg +ICc8dGFibGUgc3R5bGU9IndpZHRoOjEwMCU7Ym9yZGVyLWNvbGxhcHNlOmNvbGxhcHNlO2ZvbnQt +c2l6ZToxM3B4O21hcmdpbi1ib3R0b206MTRweDsiPicgKwogICAgICAgICAgICAgICAgJzx0ciBz +dHlsZT0iYm9yZGVyLWJvdHRvbToycHggc29saWQgdmFyKC0tYm9yZGVyLWxpZ2h0KTsiPicgKwog +ICAgICAgICAgICAgICAgICAgICc8dGggc3R5bGU9InRleHQtYWxpZ246bGVmdDtwYWRkaW5nOjhw +eDtjb2xvcjp2YXIoLS10ZXh0LWhlYWRpbmcpOyI+VmVyc2lvbjwvdGg+JyArCiAgICAgICAgICAg +ICAgICAgICAgJzx0aCBzdHlsZT0idGV4dC1hbGlnbjpsZWZ0O3BhZGRpbmc6OHB4O2NvbG9yOnZh +cigtLXRleHQtaGVhZGluZyk7Ij5CZWRldXR1bmc8L3RoPicgKwogICAgICAgICAgICAgICAgJzwv +dHI+JyArCiAgICAgICAgICAgICAgICAnPHRyIHN0eWxlPSJib3JkZXItYm90dG9tOjFweCBzb2xp +ZCB2YXIoLS1ib3JkZXItbGlnaHQpOyI+JyArCiAgICAgICAgICAgICAgICAgICAgJzx0ZCBzdHls +ZT0icGFkZGluZzo4cHg7Zm9udC13ZWlnaHQ6NjAwOyI+djAuMTwvdGQ+JyArCiAgICAgICAgICAg +ICAgICAgICAgJzx0ZCBzdHlsZT0icGFkZGluZzo4cHg7Y29sb3I6dmFyKC0tdGV4dC1wcmltYXJ5 +KTsiPkVyc3RlciBFbnR3dXJmPC90ZD4nICsKICAgICAgICAgICAgICAgICc8L3RyPicgKwogICAg +ICAgICAgICAgICAgJzx0ciBzdHlsZT0iYm9yZGVyLWJvdHRvbToxcHggc29saWQgdmFyKC0tYm9y +ZGVyLWxpZ2h0KTsiPicgKwogICAgICAgICAgICAgICAgICAgICc8dGQgc3R5bGU9InBhZGRpbmc6 +OHB4O2ZvbnQtd2VpZ2h0OjYwMDsiPnYwLjIsIHYwLjMsIC4uLjwvdGQ+JyArCiAgICAgICAgICAg +ICAgICAgICAgJzx0ZCBzdHlsZT0icGFkZGluZzo4cHg7Y29sb3I6dmFyKC0tdGV4dC1wcmltYXJ5 +KTsiPkplZGUgQmVhcmJlaXR1bmcgaW0gRW50d3VyZjwvdGQ+JyArCiAgICAgICAgICAgICAgICAn +PC90cj4nICsKICAgICAgICAgICAgICAgICc8dHIgc3R5bGU9ImJvcmRlci1ib3R0b206MXB4IHNv +bGlkIHZhcigtLWJvcmRlci1saWdodCk7YmFja2dyb3VuZDp2YXIoLS1iZy1hY3RpdmUpOyI+JyAr +CiAgICAgICAgICAgICAgICAgICAgJzx0ZCBzdHlsZT0icGFkZGluZzo4cHg7Zm9udC13ZWlnaHQ6 +NzAwO2NvbG9yOnZhcigtLXRleHQtaGVhZGluZyk7Ij52MS4wPC90ZD4nICsKICAgICAgICAgICAg +ICAgICAgICAnPHRkIHN0eWxlPSJwYWRkaW5nOjhweDtjb2xvcjp2YXIoLS10ZXh0LXByaW1hcnkp +O2ZvbnQtd2VpZ2h0OjYwMDsiPkVyc3RlIEZyZWlnYWJlPC90ZD4nICsKICAgICAgICAgICAgICAg +ICc8L3RyPicgKwogICAgICAgICAgICAgICAgJzx0ciBzdHlsZT0iYm9yZGVyLWJvdHRvbToxcHgg +c29saWQgdmFyKC0tYm9yZGVyLWxpZ2h0KTsiPicgKwogICAgICAgICAgICAgICAgICAgICc8dGQg +c3R5bGU9InBhZGRpbmc6OHB4O2ZvbnQtd2VpZ2h0OjYwMDsiPnYxLjEsIHYxLjIsIC4uLjwvdGQ+ +JyArCiAgICAgICAgICAgICAgICAgICAgJzx0ZCBzdHlsZT0icGFkZGluZzo4cHg7Y29sb3I6dmFy +KC0tdGV4dC1wcmltYXJ5KTsiPsOcYmVyYXJiZWl0dW5nZW4gbmFjaCBGcmVpZ2FiZTwvdGQ+JyAr +CiAgICAgICAgICAgICAgICAnPC90cj4nICsKICAgICAgICAgICAgICAgICc8dHIgc3R5bGU9ImJh +Y2tncm91bmQ6dmFyKC0tYmctYWN0aXZlKTsiPicgKwogICAgICAgICAgICAgICAgICAgICc8dGQg +c3R5bGU9InBhZGRpbmc6OHB4O2ZvbnQtd2VpZ2h0OjcwMDtjb2xvcjp2YXIoLS10ZXh0LWhlYWRp +bmcpOyI+djIuMCwgdjMuMCwgLi4uPC90ZD4nICsKICAgICAgICAgICAgICAgICAgICAnPHRkIHN0 +eWxlPSJwYWRkaW5nOjhweDtjb2xvcjp2YXIoLS10ZXh0LXByaW1hcnkpO2ZvbnQtd2VpZ2h0OjYw +MDsiPkplZGUgd2VpdGVyZSBGcmVpZ2FiZTwvdGQ+JyArCiAgICAgICAgICAgICAgICAnPC90cj4n +ICsKICAgICAgICAgICAgJzwvdGFibGU+JyArCiAgICAgICAgICAgICc8cCBzdHlsZT0iZm9udC1z +aXplOjEzcHg7Y29sb3I6dmFyKC0tdGV4dC1zZWNvbmRhcnkpO2xpbmUtaGVpZ2h0OjEuNzttYXJn +aW4tYm90dG9tOjZweDsiPicgKwogICAgICAgICAgICAgICAgJzxzdHJvbmc+U28gbGllc3QgZHUg +ZGllIFZlcnNpb246PC9zdHJvbmc+IERpZSBaYWhsIHZvciBkZW0gUHVua3QgemVpZ3QsIHdpZSBv +ZnQgZGVyIEFydGlrZWwgZnJlaWdlZ2ViZW4gd3VyZGUuIERpZSBaYWhsIG5hY2ggZGVtIFB1bmt0 +IHplaWd0LCB3aWUgdmllbGUgQmVhcmJlaXR1bmdlbiBzZWl0IGRlciBsZXR6dGVuIEZyZWlnYWJl +IHN0YXR0ZmFuZGVuLicgKwogICAgICAgICAgICAnPC9wPicgKwogICAgICAgICAgICAnPHAgc3R5 +bGU9ImZvbnQtc2l6ZToxMnB4O2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpO2xpbmUtaGVpZ2h0OjEu +NjttYXJnaW4tdG9wOjhweDsiPicgKwogICAgICAgICAgICAgICAgJ0JlaXNwaWVsOiA8c3Ryb25n +PnYyLjU8L3N0cm9uZz4gPSB6d2VpbWFsIGZyZWlnZWdlYmVuLCBkYW5hY2ggNSB3ZWl0ZXJlIEJl +YXJiZWl0dW5nZW4uJyArCiAgICAgICAgICAgICc8L3A+JyArCiAgICAgICAgICAgICc8ZGl2IHN0 +eWxlPSJ0ZXh0LWFsaWduOnJpZ2h0O21hcmdpbi10b3A6MTRweDsiPicgKwogICAgICAgICAgICAg +ICAgJzxidXR0b24gb25jbGljaz0idmFyIG09dGhpczt3aGlsZShtLnBhcmVudEVsZW1lbnQhPT1k +b2N1bWVudC5ib2R5KW09bS5wYXJlbnRFbGVtZW50O20ucmVtb3ZlKCk7IiBzdHlsZT0icGFkZGlu +Zzo4cHggMjBweDtib3JkZXItcmFkaXVzOjRweDtib3JkZXI6bm9uZTtiYWNrZ3JvdW5kOnZhcigt +LXRleHQtaGVhZGluZyk7Y29sb3I6d2hpdGU7Y3Vyc29yOnBvaW50ZXI7Zm9udC13ZWlnaHQ6NjAw +OyI+VmVyc3RhbmRlbjwvYnV0dG9uPicgKwogICAgICAgICAgICAnPC9kaXY+JyArCiAgICAgICAg +JzwvZGl2Pic7CiAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKG1vZGFsKTsKfQoKZnVuY3Rp +b24gc2hvd1RvYXN0KG1lc3NhZ2UsIHR5cGUgPSAnaW5mbycsIGR1cmF0aW9uID0gMzAwMCkgewog +ICAgY29uc3QgdG9hc3QgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9hc3QnKTsKICAgIHRv +YXN0LnRleHRDb250ZW50ID0gbWVzc2FnZTsKICAgIHRvYXN0LmNsYXNzTmFtZSA9ICd0b2FzdCAn +ICsgdHlwZTsKICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB0b2FzdC5jbGFzc0xpc3Qu +YWRkKCdzaG93JykpOwogICAgY2xlYXJUaW1lb3V0KHRvYXN0Ll90aW1lb3V0KTsKICAgIHRvYXN0 +Ll90aW1lb3V0ID0gc2V0VGltZW91dCgoKSA9PiB0b2FzdC5jbGFzc0xpc3QucmVtb3ZlKCdzaG93 +JyksIGR1cmF0aW9uKTsKfQoKZnVuY3Rpb24gc2hvd0NvbnRhY3RGb3JtKCkgewogICAgdmFyIGlu +cHV0U3R5bGUgPSAnd2lkdGg6MTAwJTtwYWRkaW5nOjhweCAxMHB4O2JvcmRlcjoxcHggc29saWQg +dmFyKC0tYm9yZGVyLWNvbG9yKTtib3JkZXItcmFkaXVzOjRweDtmb250LXNpemU6MTRweDtiYWNr +Z3JvdW5kOnZhcigtLWJnLWlucHV0KTtjb2xvcjp2YXIoLS10ZXh0LXByaW1hcnkpOyc7CiAgICB2 +YXIgdXNlcm5hbWUgPSAoRHJpdmVGUy5lbnZpcm9uICYmIERyaXZlRlMuZW52aXJvbi51c2VybmFt +ZSkgPyBEcml2ZUZTLmVudmlyb24udXNlcm5hbWUgOiAnJzsKICAgIHZhciBtb2RhbCA9IGRvY3Vt +ZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwogICAgbW9kYWwuc3R5bGUuY3NzVGV4dCA9ICdwb3Np +dGlvbjpmaXhlZDt0b3A6MDtsZWZ0OjA7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTtiYWNrZ3JvdW5k +OnJnYmEoMCwwLDAsMC41KTt6LWluZGV4OjEwMDAwO2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpj +ZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjsnOwogICAgbW9kYWwub25jbGljayA9IGZ1bmN0 +aW9uKGUpIHsgaWYgKGUudGFyZ2V0ID09PSBtb2RhbCkgbW9kYWwucmVtb3ZlKCk7IH07CiAgICBt +b2RhbC5pbm5lckhUTUwgPQogICAgICAgICc8ZGl2IHN0eWxlPSJiYWNrZ3JvdW5kOnZhcigtLWJn +LWNhcmQpO2JvcmRlci1yYWRpdXM6MTBweDtwYWRkaW5nOjI0cHggMjhweDttYXgtd2lkdGg6NTIw +cHg7d2lkdGg6OTAlO2JveC1zaGFkb3c6MCA4cHggMzJweCByZ2JhKDAsMCwwLDAuMyk7Ij4nICsK +ICAgICAgICAgICAgJzxoMiBzdHlsZT0iY29sb3I6dmFyKC0tdGV4dC1oZWFkaW5nKTttYXJnaW4t +Ym90dG9tOjRweDtmb250LXNpemU6MTdweDsiPlRlY2huaXNjaGVyIFN1cHBvcnQ8L2gyPicgKwog +ICAgICAgICAgICAnPHAgc3R5bGU9ImNvbG9yOnZhcigtLXRleHQtbXV0ZWQpO2ZvbnQtc2l6ZTox +MnB4O21hcmdpbi1ib3R0b206MTRweDsiPkJlaSB0ZWNobmlzY2hlbiBQcm9ibGVtZW4gbWl0IGRl +bSBTeXN0ZW0gKEZlaGxlciwgQWJzdMO8cnplLCBEYXJzdGVsbHVuZ3Nwcm9ibGVtZSkga2FubnN0 +IGR1IGhpZXIgZGVuIEVudHdpY2tsZXIga29udGFrdGllcmVuLiBEaWUgTmFjaHJpY2h0IHdpcmQg +w7xiZXIgZGVpbiBFLU1haWwtUHJvZ3JhbW0gZ2VzZW5kZXQuPC9wPicgKwogICAgICAgICAgICAn +PGRpdiBzdHlsZT0ibWFyZ2luLWJvdHRvbToxMHB4OyI+JyArCiAgICAgICAgICAgICAgICAnPGxh +YmVsIHN0eWxlPSJmb250LXNpemU6MTJweDtmb250LXdlaWdodDo2MDA7Y29sb3I6dmFyKC0tdGV4 +dC1zZWNvbmRhcnkpO2Rpc3BsYXk6YmxvY2s7bWFyZ2luLWJvdHRvbTozcHg7Ij5CZXRyZWZmPC9s +YWJlbD4nICsKICAgICAgICAgICAgICAgICc8aW5wdXQgdHlwZT0idGV4dCIgaWQ9ImNvbnRhY3RT +dWJqZWN0IiBwbGFjZWhvbGRlcj0iV29ydW0gZ2VodCBlcz8iIHN0eWxlPSInICsgaW5wdXRTdHls +ZSArICciIHZhbHVlPSJELlIuSS5WLkUuIOKAkyAiPicgKwogICAgICAgICAgICAnPC9kaXY+JyAr +CiAgICAgICAgICAgICc8ZGl2IHN0eWxlPSJtYXJnaW4tYm90dG9tOjE0cHg7Ij4nICsKICAgICAg +ICAgICAgICAgICc8bGFiZWwgc3R5bGU9ImZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjYwMDtj +b2xvcjp2YXIoLS10ZXh0LXNlY29uZGFyeSk7ZGlzcGxheTpibG9jazttYXJnaW4tYm90dG9tOjNw +eDsiPk5hY2hyaWNodDwvbGFiZWw+JyArCiAgICAgICAgICAgICAgICAnPHRleHRhcmVhIGlkPSJj +b250YWN0Qm9keSIgcm93cz0iNiIgcGxhY2Vob2xkZXI9IkJlc2NocmVpYmUgZGVpbiBBbmxpZWdl +bi4uLiIgc3R5bGU9IicgKyBpbnB1dFN0eWxlICsgJ3Jlc2l6ZTp2ZXJ0aWNhbDtsaW5lLWhlaWdo +dDoxLjY7Ij48L3RleHRhcmVhPicgKwogICAgICAgICAgICAnPC9kaXY+JyArCiAgICAgICAgICAg +ICc8ZGl2IHN0eWxlPSJkaXNwbGF5OmZsZXg7Z2FwOjhweDtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1l +bmQ7Ij4nICsKICAgICAgICAgICAgICAgICc8YnV0dG9uIG9uY2xpY2s9InRoaXMuY2xvc2VzdChc +J2RpdltzdHlsZV1cJykucGFyZW50RWxlbWVudC5yZW1vdmUoKSIgc3R5bGU9InBhZGRpbmc6OHB4 +IDE2cHg7Ym9yZGVyLXJhZGl1czo0cHg7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29s +b3IpO2JhY2tncm91bmQ6dmFyKC0tYmctY2FyZCk7Y29sb3I6dmFyKC0tdGV4dC1wcmltYXJ5KTtj +dXJzb3I6cG9pbnRlcjsiPkFiYnJlY2hlbjwvYnV0dG9uPicgKwogICAgICAgICAgICAgICAgJzxi +dXR0b24gb25jbGljaz0ic2VuZENvbnRhY3RNYWlsKCkiIHN0eWxlPSJwYWRkaW5nOjhweCAxNnB4 +O2JvcmRlci1yYWRpdXM6NHB4O2JvcmRlcjpub25lO2JhY2tncm91bmQ6dmFyKC0tdGV4dC1oZWFk +aW5nKTtjb2xvcjp3aGl0ZTtjdXJzb3I6cG9pbnRlcjtmb250LXdlaWdodDo2MDA7Ij5BYnNlbmRl +bjwvYnV0dG9uPicgKwogICAgICAgICAgICAnPC9kaXY+JyArCiAgICAgICAgJzwvZGl2Pic7CiAg +ICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKG1vZGFsKTsKICAgIHNldFRpbWVvdXQoZnVuY3Rp +b24oKSB7IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb250YWN0U3ViamVjdCcpLmZvY3VzKCk7 +IH0sIDUwKTsKfQoKZnVuY3Rpb24gc2VuZENvbnRhY3RNYWlsKCkgewogICAgdmFyIHN1YmplY3Qg +PSAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnRhY3RTdWJqZWN0JykudmFsdWUgfHwgJycp +LnRyaW0oKTsKICAgIHZhciBib2R5ID0gKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb250YWN0 +Qm9keScpLnZhbHVlIHx8ICcnKS50cmltKCk7CiAgICBpZiAoIXN1YmplY3QpIHsgc2hvd1RvYXN0 +KCdCaXR0ZSBlaW5lbiBCZXRyZWZmIGVpbmdlYmVuJywgJ3dhcm5pbmcnKTsgcmV0dXJuOyB9CiAg +ICBpZiAoIWJvZHkpIHsgc2hvd1RvYXN0KCdCaXR0ZSBlaW5lIE5hY2hyaWNodCBlaW5nZWJlbics +ICd3YXJuaW5nJyk7IHJldHVybjsgfQogICAgdmFyIHVzZXJuYW1lID0gKERyaXZlRlMuZW52aXJv +biAmJiBEcml2ZUZTLmVudmlyb24udXNlcm5hbWUpID8gRHJpdmVGUy5lbnZpcm9uLnVzZXJuYW1l +IDogJ1VuYmVrYW5udCc7CiAgICB2YXIgZnVsbEJvZHkgPSBib2R5ICsgJ1xuXG4tLS1cbkdlc2Vu +ZGV0IGF1cyBELlIuSS5WLkUuIHYxLjBcbkJlbnV0emVyOiAnICsgdXNlcm5hbWU7CiAgICB2YXIg +bWFpbHRvID0gJ21haWx0bzpwaGlsaXBwLnJvZXNnZW5AcG9saXplaS5ucncuZGU/c3ViamVjdD0n +ICsgZW5jb2RlVVJJQ29tcG9uZW50KHN1YmplY3QpICsgJyZib2R5PScgKyBlbmNvZGVVUklDb21w +b25lbnQoZnVsbEJvZHkpOwogICAgLy8gTW9kYWwgKyBPdmVybGF5IHNvZm9ydCBzY2hsaWVzc2Vu +LCBkYW5uIE1haWwtUHJvZ3JhbW0gb2VmZm5lbgogICAgdmFyIGNvbnRhY3RNb2RhbCA9IGRvY3Vt +ZW50LmdldEVsZW1lbnRCeUlkKCdjb250YWN0U3ViamVjdCcpOwogICAgaWYgKGNvbnRhY3RNb2Rh +bCkgewogICAgICAgIHZhciBvdmVybGF5ID0gY29udGFjdE1vZGFsLmNsb3Nlc3QoJ2RpdltzdHls +ZSo9InBvc2l0aW9uOmZpeGVkIl0nKTsKICAgICAgICBpZiAob3ZlcmxheSkgb3ZlcmxheS5yZW1v +dmUoKTsKICAgIH0KICAgIHNob3dUb2FzdCgnRS1NYWlsLVByb2dyYW1tIHdpcmQgZ2XDtmZmbmV0 +Li4uJywgJ3N1Y2Nlc3MnKTsKICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gbWFpbHRvOwp9Cgpm +dW5jdGlvbiBzaG93UmVhZE1vZGVJbmZvKCkgewogICAgdmFyIG1vZGFsID0gZG9jdW1lbnQuY3Jl +YXRlRWxlbWVudCgnZGl2Jyk7CiAgICBtb2RhbC5zdHlsZS5jc3NUZXh0ID0gJ3Bvc2l0aW9uOmZp +eGVkO3RvcDowO2xlZnQ6MDt3aWR0aDoxMDAlO2hlaWdodDoxMDAlO2JhY2tncm91bmQ6cmdiYSgw +LDAsMCwwLjUpO3otaW5kZXg6MTAwMDA7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtq +dXN0aWZ5LWNvbnRlbnQ6Y2VudGVyOyc7CiAgICBtb2RhbC5vbmNsaWNrID0gZnVuY3Rpb24oZSkg +eyBpZiAoZS50YXJnZXQgPT09IG1vZGFsKSBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKG1vZGFs +KTsgfTsKICAgIG1vZGFsLmlubmVySFRNTCA9CiAgICAgICAgJzxkaXYgc3R5bGU9ImJhY2tncm91 +bmQ6dmFyKC0tYmctY2FyZCk7Ym9yZGVyLXJhZGl1czoxMHB4O3BhZGRpbmc6MjRweCAyOHB4O21h +eC13aWR0aDo0ODBweDt3aWR0aDo5MCU7Ym94LXNoYWRvdzowIDhweCAzMnB4IHJnYmEoMCwwLDAs +MC4zKTsiPicgKwogICAgICAgICAgICAnPGgyIHN0eWxlPSJjb2xvcjp2YXIoLS10ZXh0LWhlYWRp +bmcpO21hcmdpbi1ib3R0b206MTJweDtmb250LXNpemU6MThweDsiPkxlc2Vtb2R1czwvaDI+JyAr +CiAgICAgICAgICAgICc8cCBzdHlsZT0iY29sb3I6dmFyKC0tdGV4dC1wcmltYXJ5KTtmb250LXNp +emU6MTRweDtsaW5lLWhlaWdodDoxLjc7bWFyZ2luLWJvdHRvbToxMnB4OyI+JyArCiAgICAgICAg +ICAgICAgICAnRHUgYmVmaW5kZXN0IGRpY2ggZ2VyYWRlIGltIDxzdHJvbmc+TGVzZW1vZHVzPC9z +dHJvbmc+LiBIaWVyIGthbm5zdCBkdSBhbGxlIEFydGlrZWwgbGVzZW4sIGR1cmNoc3VjaGVuIHVu +ZCBmaWx0ZXJuIOKAkyBhYmVyIG5pY2h0cyB2ZXLDpG5kZXJuLicgKwogICAgICAgICAgICAnPC9w +PicgKwogICAgICAgICAgICAnPHAgc3R5bGU9ImNvbG9yOnZhcigtLXRleHQtcHJpbWFyeSk7Zm9u +dC1zaXplOjE0cHg7bGluZS1oZWlnaHQ6MS43O21hcmdpbi1ib3R0b206MTZweDsiPicgKwogICAg +ICAgICAgICAgICAgJzxzdHJvbmc+V2VubiBkdSBtaXRhcmJlaXRlbiBtw7ZjaHRlc3QsIGJpc3Qg +ZHUgaGVyemxpY2ggZWluZ2VsYWRlbiE8L3N0cm9uZz4nICsKICAgICAgICAgICAgJzwvcD4nICsK +ICAgICAgICAgICAgJzxwIHN0eWxlPSJjb2xvcjp2YXIoLS10ZXh0LXByaW1hcnkpO2ZvbnQtc2l6 +ZToxNHB4O2xpbmUtaGVpZ2h0OjEuNzttYXJnaW4tYm90dG9tOjE2cHg7Ij4nICsKICAgICAgICAg +ICAgICAgICdTdGFydGUgZGF6dSBlaW5mYWNoIGRhcyBTeXN0ZW0gw7xiZXIgPHN0cm9uZz5EUklW +RV9TdGFydC5iYXQ8L3N0cm9uZz4uPC9icj4nICsKICAgICAgICAgICAgICAgICcoRGllIERhdGVp +IGxpZWd0IGltIFN0YW1tdmVyemVpY2huaXMgdm9uIEQuUi5JLlYuRS4pLicgKwogICAgICAgICAg +ICAnPC9wPicgKwogICAgICAgICAgICAnPHAgc3R5bGU9ImNvbG9yOnZhcigtLXRleHQtcHJpbWFy +eSk7Zm9udC1zaXplOjE0cHg7bGluZS1oZWlnaHQ6MS43O21hcmdpbi1ib3R0b206MTZweDsiPicg +KwogICAgICAgICAgICAgICAgJ0RhbWl0IMO2ZmZuZXQgc2ljaCBkZXIgdm9sbHN0w6RuZGlnZSBC +ZWFyYmVpdHVuZ3Ntb2R1cywgaW4gZGVtIGR1IEFydGlrZWwgZXJzdGVsbGVuLCBiZWFyYmVpdGVu +IHVuZCBNZWRpZW4gaG9jaGxhZGVuIGthbm5zdC4nICsKICAgICAgICAgICAgJzwvcD4nICsKICAg +ICAgICAgICAgJzxkaXYgc3R5bGU9InRleHQtYWxpZ246cmlnaHQ7Ij4nICsKICAgICAgICAgICAg +ICAgICc8YnV0dG9uIG9uY2xpY2s9InZhciBtPXRoaXM7d2hpbGUobS5wYXJlbnRFbGVtZW50IT09 +ZG9jdW1lbnQuYm9keSltPW0ucGFyZW50RWxlbWVudDttLnJlbW92ZSgpOyIgc3R5bGU9InBhZGRp +bmc6OHB4IDIwcHg7Ym9yZGVyLXJhZGl1czo0cHg7Ym9yZGVyOm5vbmU7YmFja2dyb3VuZDp2YXIo +LS10ZXh0LWhlYWRpbmcpO2NvbG9yOndoaXRlO2N1cnNvcjpwb2ludGVyO2ZvbnQtd2VpZ2h0OjYw +MDsiPlZlcnN0YW5kZW48L2J1dHRvbj4nICsKICAgICAgICAgICAgJzwvZGl2PicgKwogICAgICAg +ICc8L2Rpdj4nOwogICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChtb2RhbCk7Cn0KCi8vID09 +PT09PT09PT09PT09PT09PT09PSBGSUxFIFNZU1RFTSBBQ0NFU1MgQVBJID09PT09PT09PT09PT09 +PT09PT09PQoKLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 +PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLy8gTW9kdWw6IERyaXZlRlMgLSBEYXRl +aXN5c3RlbS1BYnN0cmFrdGlvbnNzY2hpY2h0Ci8vIFp1c3RhZW5kaWcgZnVlcjogTGFkZW4vU3Bl +aWNoZXJuIHZvbiBEb2t1bWVudGVuLCBNZWRpZW4sIEtvbmZpZ3VyYXRpb24KLy8gRGF0ZW5xdWVs +bGVuOiBTZXJ2ZXItQVBJIChwcmltYWVyKSwgc3RhdGlzY2hlIERhdGVpZW4gKEZhbGxiYWNrKSwg +RmlsZSBTeXN0ZW0gQWNjZXNzIEFQSQovLyBTaWNoZXJoZWl0OiBQZmFkdmFsaWRpZXJ1bmcgdmlh +IHNhbml0aXplRmlsZW5hbWUoKSArIHNlcnZlcnNlaXRpZ2UgUmVzb2x2ZS1TYWZlUGF0aCgpCi8v +ICAgICAgICAgICAgIENsaWVudC1zZWl0aWdlIFZhbGlkaWVydW5nIGlzdCBFcmdhZW56dW5nLCBu +aWNodCBFcnNhdHogZnVlciBzZXJ2ZXJzZWl0aWdlIFBydWVmdW5nLgovLyA9PT09PT09PT09PT09 +PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 +PT09PT09PQpjb25zdCBEcml2ZUZTID0gewogICAgbW9kZTogbnVsbCwgICAgICAgICAgICAgLy8g +J3NlcnZlcicgb2RlciAnZmlsZXN5c3RlbScKICAgIGNvbm5lY3RlZDogZmFsc2UsCiAgICByZWFk +T25seTogdHJ1ZSwgICAgICAgICAvLyBTdGFydGV0IGltbWVyIGltIE51ci1MZXNlbi1Nb2R1cwog +ICAgY29uZmlnOiBudWxsLAogICAgX2lkYk5hbWU6ICdEcml2ZVBvcnRhbCcsCiAgICBfaWRiU3Rv +cmU6ICdoYW5kbGVzJywKICAgIGRvY3VtZW50czogW10sCiAgICBpbmRleDogbnVsbCwKICAgIGZp +bGVUaW1lc3RhbXBzOiB7fSwgICAgIC8vIGRvY0lkIC0+IHsgbW9kaWZpZWQsIGthdGVnb3JpZSwg +ZmlsZW5hbWUsIHBhdGggfQogICAgc3luY0ludGVydmFsOiBudWxsLAogICAgZW52aXJvbjogbnVs +bCwKCiAgICAvLyAtLS0gSW5kZXhlZERCOiBPcmRuZXItSGFuZGxlIHNwZWljaGVybi9sYWRlbiAt +LS0KICAgIF9vcGVuSURCKCkgewogICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwg +cmVqZWN0KSA9PiB7CiAgICAgICAgICAgIGNvbnN0IHJlcSA9IGluZGV4ZWREQi5vcGVuKHRoaXMu +X2lkYk5hbWUsIDEpOwogICAgICAgICAgICByZXEub251cGdyYWRlbmVlZGVkID0gKCkgPT4gcmVx +LnJlc3VsdC5jcmVhdGVPYmplY3RTdG9yZSh0aGlzLl9pZGJTdG9yZSk7CiAgICAgICAgICAgIHJl +cS5vbnN1Y2Nlc3MgPSAoKSA9PiByZXNvbHZlKHJlcS5yZXN1bHQpOwogICAgICAgICAgICByZXEu +b25lcnJvciA9ICgpID0+IHJlamVjdChyZXEuZXJyb3IpOwogICAgICAgIH0pOwogICAgfSwKCiAg +ICBhc3luYyBfc2F2ZUhhbmRsZShkaXJIYW5kbGUpIHsKICAgICAgICB0cnkgewogICAgICAgICAg +ICBjb25zdCBkYiA9IGF3YWl0IHRoaXMuX29wZW5JREIoKTsKICAgICAgICAgICAgY29uc3QgdHgg +PSBkYi50cmFuc2FjdGlvbih0aGlzLl9pZGJTdG9yZSwgJ3JlYWR3cml0ZScpOwogICAgICAgICAg +ICB0eC5vYmplY3RTdG9yZSh0aGlzLl9pZGJTdG9yZSkucHV0KGRpckhhbmRsZSwgJ3Jvb3REaXIn +KTsKICAgICAgICAgICAgYXdhaXQgbmV3IFByb21pc2UoKHJlcywgcmVqKSA9PiB7IHR4Lm9uY29t +cGxldGUgPSByZXM7IHR4Lm9uZXJyb3IgPSByZWo7IH0pOwogICAgICAgICAgICBkYi5jbG9zZSgp +OwogICAgICAgIH0gY2F0Y2gge30KICAgIH0sCgogICAgYXN5bmMgX2xvYWRIYW5kbGUoKSB7CiAg +ICAgICAgdHJ5IHsKICAgICAgICAgICAgY29uc3QgZGIgPSBhd2FpdCB0aGlzLl9vcGVuSURCKCk7 +CiAgICAgICAgICAgIGNvbnN0IHR4ID0gZGIudHJhbnNhY3Rpb24odGhpcy5faWRiU3RvcmUsICdy +ZWFkb25seScpOwogICAgICAgICAgICBjb25zdCByZXEgPSB0eC5vYmplY3RTdG9yZSh0aGlzLl9p +ZGJTdG9yZSkuZ2V0KCdyb290RGlyJyk7CiAgICAgICAgICAgIGNvbnN0IGhhbmRsZSA9IGF3YWl0 +IG5ldyBQcm9taXNlKChyZXMsIHJlaikgPT4geyByZXEub25zdWNjZXNzID0gKCkgPT4gcmVzKHJl +cS5yZXN1bHQpOyByZXEub25lcnJvciA9IHJlajsgfSk7CiAgICAgICAgICAgIGRiLmNsb3NlKCk7 +CiAgICAgICAgICAgIHJldHVybiBoYW5kbGUgfHwgbnVsbDsKICAgICAgICB9IGNhdGNoIHsgcmV0 +dXJuIG51bGw7IH0KICAgIH0sCgogICAgLy8gLS0tIEhpbGZzZnVua3Rpb25lbiAtLS0KICAgICAg +ICAvLyBEYXRlaW5hbWVuLUJlcmVpbmlndW5nOiBFbnRmZXJudCBTb25kZXJ6ZWljaGVuLCBlcnNl +dHp0IFVtbGF1dGUsIG5vcm1hbGlzaWVydCBMZWVyemVpY2hlbi4KICAgICAgICAvLyBWZXJoaW5k +ZXJ0IGNsaWVudC1zZWl0aWcgUGF0aC1UcmF2ZXJzYWwgKC4uLykgdW5kIHVuZ3VlbHRpZ2UgRGF0 +ZWluYW1lbi4KICAgICAgICAvLyBTZXJ2ZXJzZWl0aWcgd2lyZCB6dXNhZXR6bGljaCBSZXNvbHZl +LVNhZmVQYXRoKCkgLyByZXNvbHZlX3NhZmVfcGF0aCgpIGF1ZmdlcnVmZW4uCiAgICBzYW5pdGl6 +ZUZpbGVuYW1lKHRpdGVsKSB7CiAgICAgICAgcmV0dXJuIHRpdGVsCiAgICAgICAgICAgIC5yZXBs +YWNlKC9cdTAwZTQvZywgJ2FlJykucmVwbGFjZSgvXHUwMGY2L2csICdvZScpLnJlcGxhY2UoL1x1 +MDBmYy9nLCAndWUnKQogICAgICAgICAgICAucmVwbGFjZSgvXHUwMGM0L2csICdBZScpLnJlcGxh +Y2UoL1x1MDBkNi9nLCAnT2UnKS5yZXBsYWNlKC9cdTAwZGMvZywgJ1VlJykKICAgICAgICAgICAg +LnJlcGxhY2UoL1x1MDBkZi9nLCAnc3MnKQogICAgICAgICAgICAucmVwbGFjZSgvW1xzXSsvZywg +J18nKQogICAgICAgICAgICAucmVwbGFjZSgvW15hLXpBLVowLTlfXC1dL2csICcnKQogICAgICAg +ICAgICAucmVwbGFjZSgvXysvZywgJ18nKQogICAgICAgICAgICAucmVwbGFjZSgvXl98XyQvZywg +JycpOwogICAgfSwKCiAgICBkb2NGaWxlbmFtZShkb2MpIHsKICAgICAgICByZXR1cm4gZG9jLmlk +ICsgJ18nICsgdGhpcy5zYW5pdGl6ZUZpbGVuYW1lKGRvYy50aXRlbCkgKyAnLmpzb24nOwogICAg +fSwKCiAgICBkb2NQYXRoKGRvYykgewogICAgICAgIHJldHVybiAnZGF0YS8nICsgZG9jLmthdGVn +b3JpZSArICcvJyArIHRoaXMuZG9jRmlsZW5hbWUoZG9jKTsKICAgIH0sCgogICAgZ2VuZXJhdGVJ +ZCgpIHsKICAgICAgICBsZXQgbWF4TnVtID0gMDsKICAgICAgICB0aGlzLmRvY3VtZW50cy5mb3JF +YWNoKGRvYyA9PiB7CiAgICAgICAgICAgIGNvbnN0IG51bSA9IHBhcnNlSW50KGRvYy5pZC5yZXBs +YWNlKCdEJywgJycpLCAxMCk7CiAgICAgICAgICAgIGlmIChudW0gPiBtYXhOdW0pIG1heE51bSA9 +IG51bTsKICAgICAgICB9KTsKICAgICAgICByZXR1cm4gJ0QnICsgU3RyaW5nKG1heE51bSArIDEp +LnBhZFN0YXJ0KDMsICcwJyk7CiAgICB9LAoKICAgIC8vID09PT09PT09PT09PT09PT09PT09PT09 +PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgICAvLyBDT05ORUNU +IC0gU3R1ZmVuOiAxLiBTZXJ2ZXIgKHZvbGwpLCAyLiBGaWxlc3lzdGVtIGxlc2VuZCwgMy4gSGlu +d2VpcwogICAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 +PT09PT09PT09PT09PT09PT09PT0KCiAgICBhc3luYyBjb25uZWN0KHVzZXJJbml0aWF0ZWQpIHsK +ICAgICAgICAvLyAxLiBWZXJzdWNoZSBTZXJ2ZXItTW9kdXMgKERSSVZFX1N0YXJ0LmJhdCAvIHNl +cnZlci5wczEpCiAgICAgICAgaWYgKGF3YWl0IHRoaXMudHJ5U2VydmVyQ29ubmVjdCgpKSByZXR1 +cm47CgogICAgICAgIC8vIDIuIFZlcnN1Y2hlIHN0YXRpc2NoZW4gTW9kdXMgKGRhdGEvIE9yZG5l +ciByZWxhdGl2IHp1ciBIVE1MLURhdGVpKQogICAgICAgIGlmIChhd2FpdCB0aGlzLnRyeVN0YXRp +Y0Nvbm5lY3QoKSkgcmV0dXJuOwoKICAgICAgICAvLyAzLiBWZXJzdWNoZSBnZXNwZWljaGVydGVu +IE9yZG5lci1IYW5kbGUgKGF1dG8tcmVjb25uZWN0KQogICAgICAgIGlmICh3aW5kb3cuc2hvd0Rp +cmVjdG9yeVBpY2tlcikgewogICAgICAgICAgICBpZiAoYXdhaXQgdGhpcy50cnlBdXRvUmVjb25u +ZWN0KHVzZXJJbml0aWF0ZWQpKSByZXR1cm47CiAgICAgICAgICAgIGlmICh1c2VySW5pdGlhdGVk +KSB7CiAgICAgICAgICAgICAgICBhd2FpdCB0aGlzLmNvbm5lY3RGaWxlc3lzdGVtKCdyZWFkJyk7 +CiAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAg +IC8vIDQuIEtlaW4gTW9kdXMgdmVyZnVlZ2JhciDigJMgV2lsbGtvbW1lbnNzZWl0ZSBtaXQgSGlu +d2VpcyBhbnplaWdlbgogICAgICAgIGNvbnN0IGhpbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJ +ZCgnd2VsY29tZUNvbm5lY3RIaW50Jyk7CiAgICAgICAgaWYgKGhpbnQpIGhpbnQuc3R5bGUuZGlz +cGxheSA9ICcnOwogICAgICAgIHRoaXMudXBkYXRlQ29ubmVjdGlvblVJKCk7CiAgICB9LAoKICAg +IGFzeW5jIHRyeVN0YXRpY0Nvbm5lY3QoKSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgICAgLy8g +RFJJVkVfU1RBVElDX0lOREVYIHdpcmQgdmlhIDxzY3JpcHQgc3JjPSJkYXRhL2luZGV4LmpzIj4g +Z2VsYWRlbgogICAgICAgICAgICAvLyB1bmQgZW50aGFlbHQgQUxMRSBEb2t1bWVudGUgKyBDb25m +aWcgKGZ1bmt0aW9uaWVydCBiZWkgZmlsZTovLykKICAgICAgICAgICAgaWYgKHR5cGVvZiBEUklW +RV9TVEFUSUNfSU5ERVggPT09ICd1bmRlZmluZWQnIHx8ICFEUklWRV9TVEFUSUNfSU5ERVgpIHJl +dHVybiBmYWxzZTsKICAgICAgICAgICAgdmFyIGRhdGEgPSBEUklWRV9TVEFUSUNfSU5ERVg7CiAg +ICAgICAgICAgIGlmICghZGF0YS5kb2N1bWVudHMgfHwgZGF0YS5kb2N1bWVudHMubGVuZ3RoID09 +PSAwKSByZXR1cm4gZmFsc2U7CgogICAgICAgICAgICB0aGlzLm1vZGUgPSAnc3RhdGljJzsKICAg +ICAgICAgICAgdGhpcy5yZWFkT25seSA9IHRydWU7CiAgICAgICAgICAgIHRoaXMuaW5kZXggPSBk +YXRhOwoKICAgICAgICAgICAgLy8gQ29uZmlnIGF1cyBlaW5nZWJldHRldGVuIERhdGVuIG9kZXIg +RmFsbGJhY2sKICAgICAgICAgICAgaWYgKGRhdGEuY29uZmlnKSB7CiAgICAgICAgICAgICAgICB0 +aGlzLmNvbmZpZyA9IGRhdGEuY29uZmlnOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAg +ICAgICAgdmFyIGNhdHMgPSBuZXcgU2V0KCk7CiAgICAgICAgICAgICAgICBkYXRhLmRvY3VtZW50 +cy5mb3JFYWNoKGZ1bmN0aW9uKGQpIHsgaWYgKGQua2F0ZWdvcmllKSBjYXRzLmFkZChkLmthdGVn +b3JpZSk7IH0pOwogICAgICAgICAgICAgICAgdGhpcy5jb25maWcgPSB7IGthdGVnb3JpZW46IFsu +Li5jYXRzXS5zb3J0KGZ1bmN0aW9uKGEsYikgeyByZXR1cm4gYS5sb2NhbGVDb21wYXJlKGIsICdk +ZScpOyB9KSB9OwogICAgICAgICAgICB9CgogICAgICAgICAgICAvLyBEb2t1bWVudGUgZGlyZWt0 +IGF1cyBkZW4gZWluZ2ViZXR0ZXRlbiBEYXRlbiBsYWRlbgogICAgICAgICAgICAvLyBJbSBMZXNl +bW9kdXM6IE5VUiBmcmVpZ2VnZWJlbmUgRG9rdW1lbnRlIGFuemVpZ2VuCiAgICAgICAgICAgIHRo +aXMuZG9jdW1lbnRzID0gW107CiAgICAgICAgICAgIHRoaXMuZmlsZVRpbWVzdGFtcHMgPSB7fTsK +ICAgICAgICAgICAgZGF0YS5kb2N1bWVudHMuZm9yRWFjaChmdW5jdGlvbihkb2MpIHsKICAgICAg +ICAgICAgICAgIGlmIChkb2Muc3RhdHVzICE9PSAnRnJlaWdlZ2ViZW4nKSByZXR1cm47CiAgICAg +ICAgICAgICAgICBlbnN1cmVDb3JyZWN0VmVyc2lvbihkb2MpOwogICAgICAgICAgICAgICAgRHJp +dmVGUy5kb2N1bWVudHMucHVzaChkb2MpOwogICAgICAgICAgICAgICAgRHJpdmVGUy5maWxlVGlt +ZXN0YW1wc1tkb2MuaWRdID0gewogICAgICAgICAgICAgICAgICAgIG1vZGlmaWVkOiBkb2MuZ2Vh +ZW5kZXJ0IHx8IGRvYy5lcnN0ZWxsdCwKICAgICAgICAgICAgICAgICAgICBrYXRlZ29yaWU6IGRv +Yy5rYXRlZ29yaWUsCiAgICAgICAgICAgICAgICAgICAgZmlsZW5hbWU6IGRvYy5pZCArICcuanNv +bicsCiAgICAgICAgICAgICAgICAgICAgcGF0aDogJ2RhdGEvJyArIGRvYy5rYXRlZ29yaWUgKyAn +LycgKyBkb2MuaWQgKyAnLmpzb24nCiAgICAgICAgICAgICAgICB9OwogICAgICAgICAgICB9KTsK +ICAgICAgICAgICAgdGhpcy5kb2N1bWVudHMuc29ydChmdW5jdGlvbihhLCBiKSB7IHJldHVybiAo +Yi5lcnN0ZWxsdCB8fCAnJykubG9jYWxlQ29tcGFyZShhLmVyc3RlbGx0IHx8ICcnKTsgfSk7Cgog +ICAgICAgICAgICB0aGlzLmNvbm5lY3RlZCA9IHRydWU7CiAgICAgICAgICAgIHRoaXMuZW52aXJv +biA9IHsgdXNlcm5hbWU6ICdMZXNlcicsIGNvbXB1dGVybmFtZTogJy0nIH07CiAgICAgICAgICAg +IHRoaXMudXBkYXRlQ29ubmVjdGlvblVJKCk7CiAgICAgICAgICAgIGF3YWl0IERyaXZlR292ZXJu +YW5jZS5sb2FkKCk7CgogICAgICAgICAgICAvLyBTdGFydHNlaXRlIGF1cyBlaW5nZWJldHRldGVu +IERhdGVuIGxhZGVuCiAgICAgICAgICAgIGlmIChkYXRhLnN0YXJ0c2VpdGUpIHsKICAgICAgICAg +ICAgICAgIHZhciB3ZWxjb21lRWwgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcud2VsY29tZS1j +b250ZW50Jyk7CiAgICAgICAgICAgICAgICBpZiAod2VsY29tZUVsKSB3ZWxjb21lRWwuaW5uZXJI +VE1MID0gRHJpdmVQb3J0YWwuc2FuaXRpemVIVE1MKGRhdGEuc3RhcnRzZWl0ZSk7CiAgICAgICAg +ICAgIH0KCiAgICAgICAgICAgIERyaXZlUG9ydGFsLmluaXQoKTsKICAgICAgICAgICAgcmV0dXJu +IHRydWU7CiAgICAgICAgfSBjYXRjaChlKSB7IGNvbnNvbGUud2FybignU3RhdGljIGNvbm5lY3Q6 +JywgZSk7IHJldHVybiBmYWxzZTsgfQogICAgfSwKCiAgICBhc3luYyB0cnlBdXRvUmVjb25uZWN0 +KHVzZXJJbml0aWF0ZWQpIHsKICAgICAgICB0cnkgewogICAgICAgICAgICBjb25zdCBzdG9yZWQg +PSBhd2FpdCB0aGlzLl9sb2FkSGFuZGxlKCk7CiAgICAgICAgICAgIGlmICghc3RvcmVkKSByZXR1 +cm4gZmFsc2U7CgogICAgICAgICAgICAvLyBQcnVlZmVuIG9iIEJlcmVjaHRpZ3VuZyBub2NoIGFr +dGl2CiAgICAgICAgICAgIGxldCBwZXJtID0gYXdhaXQgc3RvcmVkLnF1ZXJ5UGVybWlzc2lvbih7 +IG1vZGU6ICdyZWFkJyB9KTsKICAgICAgICAgICAgaWYgKHBlcm0gPT09ICdwcm9tcHQnICYmIHVz +ZXJJbml0aWF0ZWQpIHsKICAgICAgICAgICAgICAgIC8vIEJlaSBVc2VyLUtsaWNrOiBlaW5mYWNo +ZW4gRXJsYXViZW4tRGlhbG9nIHplaWdlbiAoa2VpbiBQaWNrZXIpCiAgICAgICAgICAgICAgICBw +ZXJtID0gYXdhaXQgc3RvcmVkLnJlcXVlc3RQZXJtaXNzaW9uKHsgbW9kZTogJ3JlYWQnIH0pOwog +ICAgICAgICAgICB9CiAgICAgICAgICAgIGlmIChwZXJtICE9PSAnZ3JhbnRlZCcpIHJldHVybiBm +YWxzZTsKCiAgICAgICAgICAgIC8vIGRhdGEtVW50ZXJvcmRuZXIgYmVzdGltbWVuIChnZXNwZWlj +aGVydGVyIEhhbmRsZSBrYW5uIFJvb3Qgb2RlciBkYXRhIHNlaW4pCiAgICAgICAgICAgIGxldCBk +YXRhSGFuZGxlLCBtZWRpYUhhbmRsZSA9IG51bGwsIHJvb3RIYW5kbGUgPSBzdG9yZWQ7CiAgICAg +ICAgICAgIGlmIChzdG9yZWQubmFtZSA9PT0gJ2RhdGEnKSB7CiAgICAgICAgICAgICAgICAvLyBV +c2VyIGhhdHRlICJkYXRhIiBkaXJla3QgZ2V3YWVobHQKICAgICAgICAgICAgICAgIGRhdGFIYW5k +bGUgPSBzdG9yZWQ7CiAgICAgICAgICAgICAgICAvLyBNZWRpYSBsaWVndCBlaW5lIEViZW5lIGhv +ZWhlciAtIG5pY2h0IHZlcmZ1ZWdiYXIKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAg +ICAgIGRhdGFIYW5kbGUgPSBhd2FpdCBzdG9yZWQuZ2V0RGlyZWN0b3J5SGFuZGxlKCdkYXRhJyk7 +CiAgICAgICAgICAgICAgICB0cnkgeyBtZWRpYUhhbmRsZSA9IGF3YWl0IHN0b3JlZC5nZXREaXJl +Y3RvcnlIYW5kbGUoJ21lZGlhJyk7IH0gY2F0Y2gge30KICAgICAgICAgICAgfQoKICAgICAgICAg +ICAgLy8gQWxsZXMgb2sgLSB2ZXJiaW5kZW4KICAgICAgICAgICAgdGhpcy5tb2RlID0gJ2ZpbGVz +eXN0ZW0nOwogICAgICAgICAgICB0aGlzLnJlYWRPbmx5ID0gdHJ1ZTsKICAgICAgICAgICAgdGhp +cy5fZGlySGFuZGxlID0gcm9vdEhhbmRsZTsKICAgICAgICAgICAgdGhpcy5fZGF0YUhhbmRsZSA9 +IGRhdGFIYW5kbGU7CiAgICAgICAgICAgIHRoaXMuX21lZGlhSGFuZGxlID0gbWVkaWFIYW5kbGU7 +CiAgICAgICAgICAgIGF3YWl0IHRoaXMubG9hZEVudmlyb24oKTsKICAgICAgICAgICAgYXdhaXQg +dGhpcy5sb2FkQ29uZmlnKCk7CiAgICAgICAgICAgIGF3YWl0IHRoaXMubG9hZEFsbERvY3VtZW50 +cygpOwogICAgICAgICAgICB0aGlzLmNvbm5lY3RlZCA9IHRydWU7CiAgICAgICAgICAgIHRoaXMu +dXBkYXRlQ29ubmVjdGlvblVJKCk7CiAgICAgICAgICAgIGF3YWl0IERyaXZlR292ZXJuYW5jZS5s +b2FkKCk7CiAgICAgICAgICAgIERyaXZlUG9ydGFsLmluaXQoKTsKICAgICAgICAgICAgc2hvd1Rv +YXN0KCdPcmRuZXIgYXV0b21hdGlzY2ggdmVyYnVuZGVuIChOdXItTGVzZW4pJywgJ3N1Y2Nlc3Mn +KTsKICAgICAgICAgICAgdGhpcy5zdGFydFN5bmMoKTsKICAgICAgICAgICAgcmV0dXJuIHRydWU7 +CiAgICAgICAgfSBjYXRjaCB7IHJldHVybiBmYWxzZTsgfQogICAgfSwKCiAgICBhc3luYyB0cnlT +ZXJ2ZXJDb25uZWN0KCkgewogICAgICAgIHRyeSB7CiAgICAgICAgICAgIGNvbnN0IHNjYW5SZXMg +PSBhd2FpdCBmZXRjaCgnL2FwaS9zY2FuJyk7CiAgICAgICAgICAgIGlmIChzY2FuUmVzLm9rKSB7 +CiAgICAgICAgICAgICAgICB0aGlzLm1vZGUgPSAnc2VydmVyJzsKICAgICAgICAgICAgICAgIHRo +aXMucmVhZE9ubHkgPSBmYWxzZTsKICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMubG9hZEVudmly +b24oKTsKICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMubG9hZENvbmZpZygpOwogICAgICAgICAg +ICAgICAgYXdhaXQgdGhpcy5sb2FkQWxsRG9jdW1lbnRzKCk7CiAgICAgICAgICAgICAgICB0aGlz +LmNvbm5lY3RlZCA9IHRydWU7CiAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZUNvbm5lY3Rpb25V +SSgpOwogICAgICAgICAgICAgICAgYXdhaXQgRHJpdmVHb3Zlcm5hbmNlLmxvYWQoKTsKICAgICAg +ICAgICAgICAgIERyaXZlUG9ydGFsLmluaXQoKTsKICAgICAgICAgICAgICAgIGNvbnN0IHVzZXJJ +bmZvID0gdGhpcy5lbnZpcm9uID8gJyAoQmVudXR6ZXI6ICcgKyB0aGlzLmVudmlyb24udXNlcm5h +bWUgKyAnKScgOiAnJzsKICAgICAgICAgICAgICAgIHNob3dUb2FzdCgnVm9sbHp1Z3JpZmYgYWt0 +aXYnICsgdXNlckluZm8sICdzdWNjZXNzJyk7CiAgICAgICAgICAgICAgICB0aGlzLnN0YXJ0U3lu +YygpOwogICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgICAgIH0KICAgICAgICB9 +IGNhdGNoIHt9CiAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgfSwKCiAgICBhc3luYyBjb25uZWN0 +RmlsZXN5c3RlbShhY2Nlc3NNb2RlKSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgICAgY29uc3Qg +aXNSZWFkT25seSA9IChhY2Nlc3NNb2RlID09PSAncmVhZCcpOwogICAgICAgICAgICBjb25zdCBk +aXJIYW5kbGUgPSBhd2FpdCB3aW5kb3cuc2hvd0RpcmVjdG9yeVBpY2tlcih7CiAgICAgICAgICAg +ICAgICBtb2RlOiBpc1JlYWRPbmx5ID8gJ3JlYWQnIDogJ3JlYWR3cml0ZScsCiAgICAgICAgICAg +ICAgICBpZDogJ2RyaXZlLWRhdGEnCiAgICAgICAgICAgIH0pOwogICAgICAgICAgICB0aGlzLm1v +ZGUgPSAnZmlsZXN5c3RlbSc7CiAgICAgICAgICAgIHRoaXMucmVhZE9ubHkgPSBpc1JlYWRPbmx5 +OwogICAgICAgICAgICB0aGlzLl9kaXJIYW5kbGUgPSBkaXJIYW5kbGU7CgogICAgICAgICAgICAv +LyBFcmtlbm51bmc6IFVzZXIgaGF0ICJkYXRhIiBkaXJla3Qgb2RlciBkZW4gSGF1cHRvcmRuZXIg +Z2V3YWVobHQKICAgICAgICAgICAgbGV0IGhhc0RhdGFTdWIgPSBmYWxzZTsKICAgICAgICAgICAg +dHJ5IHsgYXdhaXQgZGlySGFuZGxlLmdldERpcmVjdG9yeUhhbmRsZSgnZGF0YScpOyBoYXNEYXRh +U3ViID0gdHJ1ZTsgfSBjYXRjaCB7fQoKICAgICAgICAgICAgaWYgKGhhc0RhdGFTdWIpIHsKICAg +ICAgICAgICAgICAgIC8vIEhhdXB0b3JkbmVyIGdld2FlaGx0IChlbnRoYWVsdCBkYXRhLykKICAg +ICAgICAgICAgICAgIHRoaXMuX2RhdGFIYW5kbGUgPSBhd2FpdCBkaXJIYW5kbGUuZ2V0RGlyZWN0 +b3J5SGFuZGxlKCdkYXRhJywgeyBjcmVhdGU6ICFpc1JlYWRPbmx5IH0pOwogICAgICAgICAgICAg +ICAgaWYgKCFpc1JlYWRPbmx5KSB7CiAgICAgICAgICAgICAgICAgICAgdGhpcy5fbWVkaWFIYW5k +bGUgPSBhd2FpdCBkaXJIYW5kbGUuZ2V0RGlyZWN0b3J5SGFuZGxlKCdtZWRpYScsIHsgY3JlYXRl +OiB0cnVlIH0pOwogICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICB0 +cnkgeyB0aGlzLl9tZWRpYUhhbmRsZSA9IGF3YWl0IGRpckhhbmRsZS5nZXREaXJlY3RvcnlIYW5k +bGUoJ21lZGlhJyk7IH0gY2F0Y2ggeyB0aGlzLl9tZWRpYUhhbmRsZSA9IG51bGw7IH0KICAgICAg +ICAgICAgICAgIH0KICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIC8vICJkYXRh +IiBPcmRuZXIgZGlyZWt0IGdld2FlaGx0IChvZGVyIGFuZGVyZXIgT3JkbmVyIG1pdCBjb25maWcu +anNvbikKICAgICAgICAgICAgICAgIHRoaXMuX2RhdGFIYW5kbGUgPSBkaXJIYW5kbGU7CiAgICAg +ICAgICAgICAgICB0aGlzLl9tZWRpYUhhbmRsZSA9IG51bGw7CiAgICAgICAgICAgIH0KICAgICAg +ICAgICAgYXdhaXQgdGhpcy5sb2FkRW52aXJvbigpOwogICAgICAgICAgICBhd2FpdCB0aGlzLmxv +YWRDb25maWcoKTsKICAgICAgICAgICAgaWYgKCFpc1JlYWRPbmx5KSB7CiAgICAgICAgICAgICAg +ICBmb3IgKGNvbnN0IGthdCBvZiAodGhpcy5jb25maWcua2F0ZWdvcmllbiB8fCBbXSkpIHsKICAg +ICAgICAgICAgICAgICAgICBhd2FpdCB0aGlzLl9kYXRhSGFuZGxlLmdldERpcmVjdG9yeUhhbmRs +ZShrYXQsIHsgY3JlYXRlOiB0cnVlIH0pOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9 +CiAgICAgICAgICAgIGF3YWl0IHRoaXMubG9hZEFsbERvY3VtZW50cygpOwogICAgICAgICAgICB0 +aGlzLmNvbm5lY3RlZCA9IHRydWU7CiAgICAgICAgICAgIHRoaXMudXBkYXRlQ29ubmVjdGlvblVJ +KCk7CiAgICAgICAgICAgIGF3YWl0IERyaXZlR292ZXJuYW5jZS5sb2FkKCk7CiAgICAgICAgICAg +IERyaXZlUG9ydGFsLmluaXQoKTsKICAgICAgICAgICAgY29uc3QgbW9kZVRleHQgPSBpc1JlYWRP +bmx5ID8gJ051ci1MZXNlbi1Nb2R1cycgOiAnVm9sbHp1Z3JpZmYnOwogICAgICAgICAgICBzaG93 +VG9hc3QobW9kZVRleHQgKyAnOiAnICsgZGlySGFuZGxlLm5hbWUsICdzdWNjZXNzJyk7CiAgICAg +ICAgICAgIHRoaXMuc3RhcnRTeW5jKCk7CgogICAgICAgICAgICAvLyBIYW5kbGUgc3BlaWNoZXJu +IGZ1ZXIgYXV0b21hdGlzY2hlIFdpZWRlcnZlcmJpbmR1bmcKICAgICAgICAgICAgYXdhaXQgdGhp +cy5fc2F2ZUhhbmRsZShkaXJIYW5kbGUpOwogICAgICAgIH0gY2F0Y2ggKGVycikgewogICAgICAg +ICAgICBpZiAoZXJyLm5hbWUgIT09ICdBYm9ydEVycm9yJykgewogICAgICAgICAgICAgICAgc2hv +d1RvYXN0KCdGZWhsZXI6ICcgKyBlcnIubWVzc2FnZSwgJ2Vycm9yJyk7CiAgICAgICAgICAgIH0K +ICAgICAgICB9CiAgICB9LAoKICAgIC8vIFdpcmQgYXVmZ2VydWZlbiB3ZW5uIFVzZXIgQmVhcmJl +aXR1bmcgYWt0aXZpZXJlbiB3aWxsCiAgICBhc3luYyBhY3RpdmF0ZVNlcnZlcigpIHsKICAgICAg +ICAvLyBQcnVlZmVuIG9iIFNlcnZlciBpbnp3aXNjaGVuIGxhZXVmdAogICAgICAgIGlmIChhd2Fp +dCB0aGlzLnRyeVNlcnZlckNvbm5lY3QoKSkgewogICAgICAgICAgICBzaG93VG9hc3QoJ1NlcnZl +ciBlcmthbm50IC0gVm9sbHp1Z3JpZmYgYWt0aXZpZXJ0IScsICdzdWNjZXNzJyk7CiAgICAgICAg +ICAgIHJldHVybjsKICAgICAgICB9CgogICAgICAgIC8vIFNlcnZlciBuaWNodCBlcnJlaWNoYmFy +IC0gSGlud2VpcyBhbnplaWdlbgogICAgICAgIHNob3dUb2FzdCgnU2VydmVyIG5pY2h0IGVycmVp +Y2hiYXIuIEJpdHRlIHN0YXJ0ZSBEUklWRV9TdGFydC5iYXQgcGVyIERvcHBlbGtsaWNrIHVuZCB2 +ZXJzdWNoZSBlcyBlcm5ldXQuJywgJ3dhcm5pbmcnLCA1MDAwKTsKICAgIH0sCgogICAgLy8gVXBn +cmFkZSB2b24gTnVyLUxlc2VuIGF1ZiBTY2hyZWliZW4gKEZpbGVzeXN0ZW0tTW9kdXMpCiAgICBh +c3luYyB1cGdyYWRlVG9SZWFkV3JpdGUoKSB7CiAgICAgICAgLy8gRXJzdCBTZXJ2ZXIgcHJ1ZWZl +bgogICAgICAgIGlmIChhd2FpdCB0aGlzLnRyeVNlcnZlckNvbm5lY3QoKSkgcmV0dXJuIHRydWU7 +CgogICAgICAgIC8vIEZpbGVzeXN0ZW06IFNjaHJlaWJyZWNodGUgYW5mb3JkZXJuCiAgICAgICAg +aWYgKHRoaXMubW9kZSA9PT0gJ2ZpbGVzeXN0ZW0nICYmIHRoaXMuX2RpckhhbmRsZSkgewogICAg +ICAgICAgICB0cnkgewogICAgICAgICAgICAgICAgY29uc3QgcGVybSA9IGF3YWl0IHRoaXMuX2Rp +ckhhbmRsZS5yZXF1ZXN0UGVybWlzc2lvbih7IG1vZGU6ICdyZWFkd3JpdGUnIH0pOwogICAgICAg +ICAgICAgICAgaWYgKHBlcm0gPT09ICdncmFudGVkJykgewogICAgICAgICAgICAgICAgICAgIHRo +aXMucmVhZE9ubHkgPSBmYWxzZTsKICAgICAgICAgICAgICAgICAgICB0aGlzLl9tZWRpYUhhbmRs +ZSA9IGF3YWl0IHRoaXMuX2RpckhhbmRsZS5nZXREaXJlY3RvcnlIYW5kbGUoJ21lZGlhJywgeyBj +cmVhdGU6IHRydWUgfSk7CiAgICAgICAgICAgICAgICAgICAgZm9yIChjb25zdCBrYXQgb2YgKHRo +aXMuY29uZmlnLmthdGVnb3JpZW4gfHwgW10pKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGF3 +YWl0IHRoaXMuX2RhdGFIYW5kbGUuZ2V0RGlyZWN0b3J5SGFuZGxlKGthdCwgeyBjcmVhdGU6IHRy +dWUgfSk7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIHRoaXMudXBk +YXRlQ29ubmVjdGlvblVJKCk7CiAgICAgICAgICAgICAgICAgICAgc2hvd1RvYXN0KCdTY2hyZWli +enVncmlmZiBha3RpdmllcnQnLCAnc3VjY2VzcycpOwogICAgICAgICAgICAgICAgICAgIHJldHVy +biB0cnVlOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9IGNhdGNoIHt9CiAgICAgICAg +fQoKICAgICAgICByZXR1cm4gZmFsc2U7CiAgICB9LAoKICAgIC8vIFBydWVmZW4gb2IgU2NocmVp +Ynp1Z3JpZmYgdm9yaGFuZGVuLCBzb25zdCBVcGdyYWRlIHZlcnN1Y2hlbgogICAgYXN5bmMgZW5z +dXJlV3JpdGVBY2Nlc3MoKSB7CiAgICAgICAgaWYgKCF0aGlzLnJlYWRPbmx5KSByZXR1cm4gdHJ1 +ZTsKCiAgICAgICAgY29uc3QgY2hvaWNlID0gY29uZmlybSgKICAgICAgICAgICAgJ1p1bSBCZWFy +YmVpdGVuIHdpcmQgU2NocmVpYnp1Z3JpZmYgYmVuw7Z0aWd0LlxuXG4nICsKICAgICAgICAgICAg +J09wdGlvbiAxOiBTdGFydGUgRFJJVkVfU3RhcnQuYmF0IHVuZCBrbGlja2UgT0suXG4nICsKICAg +ICAgICAgICAgJ09wdGlvbiAyOiBLbGlja2UgT0ssIHVtIFNjaHJlaWJyZWNodGUgaW0gQnJvd3Nl +ciB6dSBlcnRlaWxlbi4nCiAgICAgICAgKTsKCiAgICAgICAgaWYgKCFjaG9pY2UpIHJldHVybiBm +YWxzZTsKICAgICAgICByZXR1cm4gYXdhaXQgdGhpcy51cGdyYWRlVG9SZWFkV3JpdGUoKTsKICAg +IH0sCgogICAgcmVjb25uZWN0KCkgewogICAgICAgIGlmICh3aW5kb3cuc2hvd0RpcmVjdG9yeVBp +Y2tlcikgewogICAgICAgICAgICB0aGlzLmNvbm5lY3RGaWxlc3lzdGVtKCdyZWFkJyk7CiAgICAg +ICAgfQogICAgfSwKCiAgICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 +PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICAgLy8gRU5WSVJPTgogICAgLy8gPT09PT09 +PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 +PT0KCiAgICBhc3luYyBsb2FkRW52aXJvbigpIHsKICAgICAgICB0cnkgewogICAgICAgICAgICBj +b25zdCByZXMgPSBhd2FpdCBmZXRjaCgnL2FwaS9lbnZpcm9uJyk7CiAgICAgICAgICAgIGlmIChy +ZXMub2spIHsKICAgICAgICAgICAgICAgIHRoaXMuZW52aXJvbiA9IGF3YWl0IHJlcy5qc29uKCk7 +CiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygnQmVudXR6ZXI6JywgdGhpcy5lbnZpcm9uLnVz +ZXJuYW1lLCAnQCcsIHRoaXMuZW52aXJvbi5jb21wdXRlcm5hbWUpOwogICAgICAgICAgICAgICAg +cmV0dXJuOwogICAgICAgICAgICB9CiAgICAgICAgfSBjYXRjaCB7fQogICAgICAgIC8vIEZhbGxi +YWNrOiBJbSBOdXItTGVzZW4tTW9kdXMga2VpbmVuIE5hbWVuIGFiZnJhZ2VuCiAgICAgICAgaWYg +KHRoaXMucmVhZE9ubHkpIHsKICAgICAgICAgICAgY29uc3Qgc3RvcmVkID0gbG9jYWxTdG9yYWdl +LmdldEl0ZW0oJ2RyaXZlX3VzZXJuYW1lJyk7CiAgICAgICAgICAgIGlmIChzdG9yZWQpIHsKICAg +ICAgICAgICAgICAgIHRoaXMuZW52aXJvbiA9IHsgdXNlcm5hbWU6IHN0b3JlZCwgY29tcHV0ZXJu +YW1lOiAnLScgfTsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIHRoaXMuZW52 +aXJvbiA9IHsgdXNlcm5hbWU6ICdMZXNlcicsIGNvbXB1dGVybmFtZTogJy0nIH07CiAgICAgICAg +ICAgIH0KICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgICAgICAvLyBTY2hyZWlibW9k +dXM6IE5hbWVuIGFiZnJhZ2VuCiAgICAgICAgY29uc3Qgc3RvcmVkID0gbG9jYWxTdG9yYWdlLmdl +dEl0ZW0oJ2RyaXZlX3VzZXJuYW1lJyk7CiAgICAgICAgaWYgKHN0b3JlZCkgewogICAgICAgICAg +ICB0aGlzLmVudmlyb24gPSB7IHVzZXJuYW1lOiBzdG9yZWQsIGNvbXB1dGVybmFtZTogJy0nIH07 +CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgY29uc3QgbmFtZSA9IHByb21wdCgnQml0dGUg +Z2liIGRlaW5lbiBCZW51dHplcm5hbWVuIGVpbjonKTsKICAgICAgICAgICAgaWYgKG5hbWUpIHsK +ICAgICAgICAgICAgICAgIHRoaXMuZW52aXJvbiA9IHsgdXNlcm5hbWU6IG5hbWUudHJpbSgpLCBj +b21wdXRlcm5hbWU6ICctJyB9OwogICAgICAgICAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0o +J2RyaXZlX3VzZXJuYW1lJywgbmFtZS50cmltKCkpOwogICAgICAgICAgICB9CiAgICAgICAgfQog +ICAgfSwKCiAgICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 +PT09PT09PT09PT09PT09PT09PT09PQogICAgLy8gQ09ORklHCiAgICAvLyA9PT09PT09PT09PT09 +PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKICAg +IGFzeW5jIGxvYWRDb25maWcoKSB7CiAgICAgICAgY29uc3QgZGVmYXVsdENvbmZpZyA9IHsKICAg +ICAgICAgICAgdmVyc2lvbjogJzMuMCcsCiAgICAgICAgICAgIGthdGVnb3JpZW46IFsnVmVya2Vo +cicsICdTaWNoZXJoZWl0JywgJ1BsYW51bmcnLCAnT3JnYW5pc2F0aW9uJ10sCiAgICAgICAgICAg +IHN0YXR1czogewogICAgICAgICAgICAgICAgJ0VudHd1cmYnOiB7IGxhYmVsOiAnRW50d3VyZics +IGNvbG9yOiAnI0ZGRjNDRCcsIHRleHRDb2xvcjogJyM4NTY0MDQnLCBpY29uOiAnXHVkODNkXHVk +Y2RkJywgYmVzY2hyZWlidW5nOiAnRG9rdW1lbnQgaW4gQmVhcmJlaXR1bmcnIH0sCiAgICAgICAg +ICAgICAgICAnUHLDvGZ1bmcnOiB7IGxhYmVsOiAnWnVyIFByw7xmdW5nJywgY29sb3I6ICcjRkZF +NUI0JywgdGV4dENvbG9yOiAnIzdBNDQxOScsIGljb246ICfwn5GB77iPJywgYmVzY2hyZWlidW5n +OiAnV2FydGV0IGF1ZiBGcmVpZ2FiZScgfSwKICAgICAgICAgICAgICAgICdGcmVpZ2VnZWJlbic6 +IHsgbGFiZWw6ICdGcmVpZ2VnZWJlbicsIGNvbG9yOiAnI0Q0RUREQScsIHRleHRDb2xvcjogJyMx +NTU3MjQnLCBpY29uOiAn4pyFJywgYmVzY2hyZWlidW5nOiAnVmVyZsO8Z2JhciB1bmQgZWluc2F0 +emJlcmVpdCcgfQogICAgICAgICAgICB9CiAgICAgICAgfTsKCiAgICAgICAgLy8gU2VydmVyLU1v +ZHVzOiBjb25maWcgdmlhIEhUVFAgbGFkZW4gKGFic29sdXRlciBQZmFkKQogICAgICAgIGlmICh0 +aGlzLm1vZGUgPT09ICdzZXJ2ZXInKSB7CiAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAg +ICBjb25zdCByZXMgPSBhd2FpdCBmZXRjaCgnL2RhdGEvY29uZmlnLmpzb24nKTsKICAgICAgICAg +ICAgICAgIGlmIChyZXMub2spIHsgdGhpcy5jb25maWcgPSBhd2FpdCByZXMuanNvbigpOyB0aGlz +LnNvcnRLYXRlZ29yaWVuKCk7IHJldHVybjsgfQogICAgICAgICAgICB9IGNhdGNoIHt9CiAgICAg +ICAgfQoKICAgICAgICAvLyBTdGF0aXNjaGVyIE1vZHVzOiBjb25maWcgdmlhIHJlbGF0aXZlbSBQ +ZmFkIGxhZGVuCiAgICAgICAgaWYgKHRoaXMubW9kZSA9PT0gJ3N0YXRpYycpIHsKICAgICAgICAg +ICAgdHJ5IHsKICAgICAgICAgICAgICAgIGNvbnN0IHJlcyA9IGF3YWl0IGZldGNoKCdkYXRhL2Nv +bmZpZy5qc29uJyk7CiAgICAgICAgICAgICAgICBpZiAocmVzLm9rKSB7IHRoaXMuY29uZmlnID0g +YXdhaXQgcmVzLmpzb24oKTsgdGhpcy5zb3J0S2F0ZWdvcmllbigpOyByZXR1cm47IH0KICAgICAg +ICAgICAgfSBjYXRjaCB7fQogICAgICAgIH0KCiAgICAgICAgLy8gRmlsZXN5c3RlbS1Nb2R1czog +Y29uZmlnLmpzb24gYXVzIGRhdGEtSGFuZGxlIGxhZGVuCiAgICAgICAgaWYgKHRoaXMuX2RhdGFI +YW5kbGUpIHsKICAgICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgICAgIGNvbnN0IGZoID0gYXdh +aXQgdGhpcy5fZGF0YUhhbmRsZS5nZXRGaWxlSGFuZGxlKCdjb25maWcuanNvbicpOwogICAgICAg +ICAgICAgICAgY29uc3QgZmlsZSA9IGF3YWl0IGZoLmdldEZpbGUoKTsKICAgICAgICAgICAgICAg +IHRoaXMuY29uZmlnID0gSlNPTi5wYXJzZShhd2FpdCBmaWxlLnRleHQoKSk7CiAgICAgICAgICAg +ICAgICB0aGlzLnNvcnRLYXRlZ29yaWVuKCk7CiAgICAgICAgICAgICAgICByZXR1cm47CiAgICAg +ICAgICAgIH0gY2F0Y2gge30KICAgICAgICB9CgogICAgICAgIHRoaXMuY29uZmlnID0gZGVmYXVs +dENvbmZpZzsKICAgICAgICB0aGlzLnNvcnRLYXRlZ29yaWVuKCk7CiAgICB9LAoKICAgIC8vIEth +dGVnb3JpZW4gYWxwaGFiZXRpc2NoIHNvcnRpZXJ0IGhhbHRlbiAobmFjaCBqZWRlbSBMYWRlbi9B +ZW5kZXJuIGF1ZnJ1ZmVuKQogICAgc29ydEthdGVnb3JpZW4oKSB7CiAgICAgICAgaWYgKHRoaXMu +Y29uZmlnICYmIHRoaXMuY29uZmlnLmthdGVnb3JpZW4pIHsKICAgICAgICAgICAgdGhpcy5jb25m +aWcua2F0ZWdvcmllbi5zb3J0KGZ1bmN0aW9uKGEsIGIpIHsgcmV0dXJuIGEubG9jYWxlQ29tcGFy +ZShiLCAnZGUnKTsgfSk7CiAgICAgICAgfQogICAgfSwKCiAgICAvLyA9PT09PT09PT09PT09PT09 +PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICAgLy8g +TE9BRCBBTEwgRE9DVU1FTlRTCiAgICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 +PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKICAgIGFzeW5jIGxvYWRBbGxEb2N1 +bWVudHMoKSB7CiAgICAgICAgdGhpcy5kb2N1bWVudHMgPSBbXTsKICAgICAgICB0aGlzLmZpbGVU +aW1lc3RhbXBzID0ge307CgogICAgICAgIGlmICh0aGlzLm1vZGUgPT09ICdzdGF0aWMnKSB7CiAg +ICAgICAgICAgIC8vIFN0YXRpc2NoZXIgTW9kdXM6IERva3VtZW50ZSB3dXJkZW4gYmVyZWl0cyBp +biB0cnlTdGF0aWNDb25uZWN0KCkgZ2VsYWRlbgogICAgICAgICAgICByZXR1cm47CiAgICAgICAg +fSBlbHNlIGlmICh0aGlzLm1vZGUgPT09ICdzZXJ2ZXInKSB7CiAgICAgICAgICAgIC8vIFNlcnZl +ciBzY2FubnQgZGllIE9yZG5lciBmdWVyIHVucwogICAgICAgICAgICBjb25zdCByZXMgPSBhd2Fp +dCBmZXRjaCgnL2FwaS9zY2FuJyk7CiAgICAgICAgICAgIGNvbnN0IGRhdGEgPSBhd2FpdCByZXMu +anNvbigpOwoKICAgICAgICAgICAgZm9yIChjb25zdCBlbnRyeSBvZiAoZGF0YS5maWxlcyB8fCBb +XSkpIHsKICAgICAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgICAgICAgY29uc3QgZG9j +UmVzID0gYXdhaXQgZmV0Y2goJy8nICsgZW50cnkucGF0aCk7CiAgICAgICAgICAgICAgICAgICAg +aWYgKGRvY1Jlcy5vaykgewogICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBkb2MgPSBhd2Fp +dCBkb2NSZXMuanNvbigpOwogICAgICAgICAgICAgICAgICAgICAgICAvLyBWZXJzaW9uc2ludGVn +cml0YWV0IHBydWVmZW4gdW5kIGdnZi4ga29ycmlnaWVyZW4KICAgICAgICAgICAgICAgICAgICAg +ICAgaWYgKGVuc3VyZUNvcnJlY3RWZXJzaW9uKGRvYykpIHsKICAgICAgICAgICAgICAgICAgICAg +ICAgICAgIC8vIEtvcnJpZ2llcnRlIFZlcnNpb24genVydWVja3NjaHJlaWJlbgogICAgICAgICAg +ICAgICAgICAgICAgICAgICAgZmV0Y2goJy9hcGkvd3JpdGUnLCB7CiAgICAgICAgICAgICAgICAg +ICAgICAgICAgICAgICAgbWV0aG9kOiAnUE9TVCcsCiAgICAgICAgICAgICAgICAgICAgICAgICAg +ICAgICAgaGVhZGVyczogeyAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nIH0sCiAg +ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkoeyBwYXRo +OiBlbnRyeS5wYXRoLCBkYXRhOiBkb2MgfSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0p +LmNhdGNoKGZ1bmN0aW9uKCkge30pOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAg +ICAgICAgICAgICAgICAgIHRoaXMuZG9jdW1lbnRzLnB1c2goZG9jKTsKICAgICAgICAgICAgICAg +ICAgICAgICAgdGhpcy5maWxlVGltZXN0YW1wc1tkb2MuaWRdID0gewogICAgICAgICAgICAgICAg +ICAgICAgICAgICAgbW9kaWZpZWQ6IGVudHJ5Lm1vZGlmaWVkLAogICAgICAgICAgICAgICAgICAg +ICAgICAgICAga2F0ZWdvcmllOiBlbnRyeS5rYXRlZ29yaWUsCiAgICAgICAgICAgICAgICAgICAg +ICAgICAgICBmaWxlbmFtZTogZW50cnkuZmlsZW5hbWUsCiAgICAgICAgICAgICAgICAgICAgICAg +ICAgICBwYXRoOiBlbnRyeS5wYXRoCiAgICAgICAgICAgICAgICAgICAgICAgIH07CiAgICAgICAg +ICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfSBjYXRjaCAoZXJyKSB7CiAgICAgICAgICAg +ICAgICAgICAgY29uc29sZS53YXJuKCdGZWhsZXIgYmVpbSBMYWRlbjogJyArIGVudHJ5LnBhdGgs +IGVycik7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9IGVsc2Ugewog +ICAgICAgICAgICAvLyBGaWxlc3lzdGVtLU1vZHVzOiBLYXRlZ29yaWUtT3JkbmVyIGR1cmNobGF1 +ZmVuCiAgICAgICAgICAgIGZvciAoY29uc3Qga2F0IG9mICh0aGlzLmNvbmZpZy5rYXRlZ29yaWVu +IHx8IFtdKSkgewogICAgICAgICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgICAgICAgICBjb25z +dCBrYXREaXIgPSBhd2FpdCB0aGlzLl9kYXRhSGFuZGxlLmdldERpcmVjdG9yeUhhbmRsZShrYXQp +OwogICAgICAgICAgICAgICAgICAgIGZvciBhd2FpdCAoY29uc3QgW25hbWUsIGhhbmRsZV0gb2Yg +a2F0RGlyKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChoYW5kbGUua2luZCA9PT0gJ2Zp +bGUnICYmIG5hbWUuZW5kc1dpdGgoJy5qc29uJykpIHsKICAgICAgICAgICAgICAgICAgICAgICAg +ICAgIHRyeSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZmlsZSA9IGF3 +YWl0IGhhbmRsZS5nZXRGaWxlKCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29u +c3QgZG9jID0gSlNPTi5wYXJzZShhd2FpdCBmaWxlLnRleHQoKSk7CiAgICAgICAgICAgICAgICAg +ICAgICAgICAgICAgICAgZW5zdXJlQ29ycmVjdFZlcnNpb24oZG9jKTsKICAgICAgICAgICAgICAg +ICAgICAgICAgICAgICAgICB0aGlzLmRvY3VtZW50cy5wdXNoKGRvYyk7CiAgICAgICAgICAgICAg +ICAgICAgICAgICAgICAgICAgdGhpcy5maWxlVGltZXN0YW1wc1tkb2MuaWRdID0gewogICAgICAg +ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb2RpZmllZDogZmlsZS5sYXN0TW9kaWZpZWQs +CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGthdGVnb3JpZToga2F0LAogICAg +ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxlbmFtZTogbmFtZSwKICAgICAgICAg +ICAgICAgICAgICAgICAgICAgICAgICAgICAgcGF0aDogJ2RhdGEvJyArIGthdCArICcvJyArIG5h +bWUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9OwogICAgICAgICAgICAgICAgICAg +ICAgICAgICAgfSBjYXRjaCAoZXJyKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg +Y29uc29sZS53YXJuKCdGZWhsZXI6ICcgKyBrYXQgKyAnLycgKyBuYW1lLCBlcnIpOwogICAgICAg +ICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAg +ICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfSBjYXRjaCB7fQogICAgICAgICAgICB9CiAg +ICAgICAgfQoKICAgICAgICB0aGlzLmRvY3VtZW50cy5zb3J0KChhLCBiKSA9PiAoYi5lcnN0ZWxs +dCB8fCAnJykubG9jYWxlQ29tcGFyZShhLmVyc3RlbGx0IHx8ICcnKSk7CiAgICAgICAgYXdhaXQg +dGhpcy51cGRhdGVJbmRleCgpOwogICAgfSwKCiAgICAvLyA9PT09PT09PT09PT09PT09PT09PT09 +PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICAgLy8gTE9BRCBT +SU5HTEUgRE9DVU1FTlQgKGZyaXNjaCB2b24gRGlzaykKICAgIC8vID09PT09PT09PT09PT09PT09 +PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CgogICAgYXN5 +bmMgbG9hZERvY3VtZW50KGRvY0lkKSB7CiAgICAgICAgY29uc3QgbWV0YSA9IHRoaXMuZmlsZVRp +bWVzdGFtcHNbZG9jSWRdOwogICAgICAgIGlmICghbWV0YSkgewogICAgICAgICAgICAvLyBLZWlu +IERhdGVpcGZhZCBiZWthbm50IC0gSW4tTWVtb3J5LUZhbGxiYWNrCiAgICAgICAgICAgIHJldHVy +biB0aGlzLmRvY3VtZW50cy5maW5kKGQgPT4gZC5pZCA9PT0gZG9jSWQpIHx8IG51bGw7CiAgICAg +ICAgfQoKICAgICAgICB0cnkgewogICAgICAgICAgICBpZiAodGhpcy5tb2RlID09PSAnc2VydmVy +JykgewogICAgICAgICAgICAgICAgY29uc3QgcmVzID0gYXdhaXQgZmV0Y2goJy8nICsgbWV0YS5w +YXRoICsgJz90PScgKyBEYXRlLm5vdygpKTsKICAgICAgICAgICAgICAgIGlmICghcmVzLm9rKSB0 +aHJvdyBuZXcgRXJyb3IoJ0hUVFAgJyArIHJlcy5zdGF0dXMpOwogICAgICAgICAgICAgICAgcmV0 +dXJuIGF3YWl0IHJlcy5qc29uKCk7CiAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5tb2RlID09 +PSAnc3RhdGljJykgewogICAgICAgICAgICAgICAgLy8gU3RhdGlzY2g6IEluLU1lbW9yeSB2ZXJ3 +ZW5kZW4gKGJlcmVpdHMga29tcGxldHQgZ2VsYWRlbikKICAgICAgICAgICAgICAgIHJldHVybiB0 +aGlzLmRvY3VtZW50cy5maW5kKGQgPT4gZC5pZCA9PT0gZG9jSWQpIHx8IG51bGw7CiAgICAgICAg +ICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICBjb25zdCBrYXREaXIgPSBhd2FpdCB0aGlzLl9k +YXRhSGFuZGxlLmdldERpcmVjdG9yeUhhbmRsZShtZXRhLmthdGVnb3JpZSk7CiAgICAgICAgICAg +ICAgICBjb25zdCBmaCA9IGF3YWl0IGthdERpci5nZXRGaWxlSGFuZGxlKG1ldGEuZmlsZW5hbWUp +OwogICAgICAgICAgICAgICAgY29uc3QgZmlsZSA9IGF3YWl0IGZoLmdldEZpbGUoKTsKICAgICAg +ICAgICAgICAgIHJldHVybiBKU09OLnBhcnNlKGF3YWl0IGZpbGUudGV4dCgpKTsKICAgICAgICAg +ICAgfQogICAgICAgIH0gY2F0Y2ggKGVycikgewogICAgICAgICAgICBjb25zb2xlLndhcm4oJ2xv +YWREb2N1bWVudCBGZWhsZXIgZnVlciAnICsgZG9jSWQgKyAnOicsIGVycik7CiAgICAgICAgICAg +IC8vIEZhbGxiYWNrOiBJbi1NZW1vcnktVmVyc2lvbiB2ZXJ3ZW5kZW4gKGJlcmVpdHMgYmVpbSBT +dGFydCBnZWxhZGVuKQogICAgICAgICAgICBjb25zdCBtZW1Eb2MgPSB0aGlzLmRvY3VtZW50cy5m +aW5kKGQgPT4gZC5pZCA9PT0gZG9jSWQpOwogICAgICAgICAgICBpZiAobWVtRG9jKSByZXR1cm4g +bWVtRG9jOwogICAgICAgICAgICByZXR1cm4gbnVsbDsKICAgICAgICB9CiAgICB9LAoKICAgIC8v +ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 +PT09PT09PT09CiAgICAvLyBTQVZFIERPQ1VNRU5UCiAgICAvLyA9PT09PT09PT09PT09PT09PT09 +PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKICAgIGFzeW5j +IHNhdmVEb2N1bWVudChkb2MpIHsKICAgICAgICBjb25zdCBkb2NJZCA9IGRvYy5pZDsKICAgICAg +ICBjb25zdCBtZXRhID0gdGhpcy5maWxlVGltZXN0YW1wc1tkb2NJZF07CiAgICAgICAgY29uc3Qg +bmV3UGF0aCA9IHRoaXMuZG9jUGF0aChkb2MpOwoKICAgICAgICAvLyBBbHRlIERhdGVpIGxvZXNj +aGVuIGZhbGxzIFBmYWQgc2ljaCBnZWFlbmRlcnQgaGF0CiAgICAgICAgaWYgKG1ldGEgJiYgbWV0 +YS5wYXRoICE9PSBuZXdQYXRoKSB7CiAgICAgICAgICAgIGF3YWl0IHRoaXMuZGVsZXRlRmlsZSht +ZXRhLnBhdGgpOwogICAgICAgIH0KCiAgICAgICAgLy8gR2VhZW5kZXJ0LVRpbWVzdGFtcCB1bmQg +QmVhcmJlaXRlciBzZXR6ZW4KICAgICAgICBkb2MuZ2VhZW5kZXJ0ID0gbmV3IERhdGUoKS50b0lT +T1N0cmluZygpLnNwbGl0KCdUJylbMF07CiAgICAgICAgaWYgKHRoaXMuZW52aXJvbiAmJiB0aGlz +LmVudmlyb24udXNlcm5hbWUpIHsKICAgICAgICAgICAgZG9jLmJlYXJiZWl0ZXRWb24gPSB0aGlz +LmVudmlyb24udXNlcm5hbWU7CiAgICAgICAgfQoKICAgICAgICAvLyBUZW1wb3JhZXJlIFByb3Bl +cnRpZXMgZW50ZmVybmVuIChtaXQgXyBQcmVmaXgsIG5pY2h0IHBlcnNpc3RpZXJlbikKICAgICAg +ICBkZWxldGUgZG9jLl9wcmV2aW91c0luaGFsdDsKICAgICAgICBkZWxldGUgZG9jLl9wcmV2aW91 +c1RpdGVsOwoKICAgICAgICAvLyBTcGVpY2hlcm4KICAgICAgICBpZiAodGhpcy5tb2RlID09PSAn +c2VydmVyJykgewogICAgICAgICAgICBjb25zdCByZXMgPSBhd2FpdCBmZXRjaCgnL2FwaS93cml0 +ZScsIHsKICAgICAgICAgICAgICAgIG1ldGhvZDogJ1BPU1QnLAogICAgICAgICAgICAgICAgaGVh +ZGVyczogeyAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb247IGNoYXJzZXQ9dXRmLTgn +IH0sCiAgICAgICAgICAgICAgICBib2R5OiBKU09OLnN0cmluZ2lmeSh7IHBhdGg6IG5ld1BhdGgs +IGRhdGE6IGRvYyB9KQogICAgICAgICAgICB9KTsKICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0g +YXdhaXQgcmVzLmpzb24oKTsKICAgICAgICAgICAgaWYgKCFyZXN1bHQub2spIHsKICAgICAgICAg +ICAgICAgIHJldHVybiByZXN1bHQuZXJyb3IgfHwgJ1VuYmVrYW5udGVyIEZlaGxlcic7CiAgICAg +ICAgICAgIH0KICAgICAgICAgICAgdGhpcy5maWxlVGltZXN0YW1wc1tkb2NJZF0gPSB7CiAgICAg +ICAgICAgICAgICBtb2RpZmllZDogcmVzdWx0Lm1vZGlmaWVkLAogICAgICAgICAgICAgICAga2F0 +ZWdvcmllOiBkb2Mua2F0ZWdvcmllLAogICAgICAgICAgICAgICAgZmlsZW5hbWU6IHRoaXMuZG9j +RmlsZW5hbWUoZG9jKSwKICAgICAgICAgICAgICAgIHBhdGg6IG5ld1BhdGgKICAgICAgICAgICAg +fTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBjb25zdCBrYXREaXIgPSBhd2FpdCB0aGlz +Ll9kYXRhSGFuZGxlLmdldERpcmVjdG9yeUhhbmRsZShkb2Mua2F0ZWdvcmllLCB7IGNyZWF0ZTog +dHJ1ZSB9KTsKICAgICAgICAgICAgY29uc3QgZmlsZW5hbWUgPSB0aGlzLmRvY0ZpbGVuYW1lKGRv +Yyk7CiAgICAgICAgICAgIGNvbnN0IGZoID0gYXdhaXQga2F0RGlyLmdldEZpbGVIYW5kbGUoZmls +ZW5hbWUsIHsgY3JlYXRlOiB0cnVlIH0pOwogICAgICAgICAgICBjb25zdCB3cml0YWJsZSA9IGF3 +YWl0IGZoLmNyZWF0ZVdyaXRhYmxlKCk7CiAgICAgICAgICAgIGF3YWl0IHdyaXRhYmxlLndyaXRl +KEpTT04uc3RyaW5naWZ5KGRvYywgbnVsbCwgMikpOwogICAgICAgICAgICBhd2FpdCB3cml0YWJs +ZS5jbG9zZSgpOwogICAgICAgICAgICBjb25zdCBzYXZlZEZpbGUgPSBhd2FpdCAoYXdhaXQga2F0 +RGlyLmdldEZpbGVIYW5kbGUoZmlsZW5hbWUpKS5nZXRGaWxlKCk7CiAgICAgICAgICAgIHRoaXMu +ZmlsZVRpbWVzdGFtcHNbZG9jSWRdID0gewogICAgICAgICAgICAgICAgbW9kaWZpZWQ6IHNhdmVk +RmlsZS5sYXN0TW9kaWZpZWQsCiAgICAgICAgICAgICAgICBrYXRlZ29yaWU6IGRvYy5rYXRlZ29y +aWUsCiAgICAgICAgICAgICAgICBmaWxlbmFtZTogZmlsZW5hbWUsCiAgICAgICAgICAgICAgICBw +YXRoOiBuZXdQYXRoCiAgICAgICAgICAgIH07CiAgICAgICAgfQoKICAgICAgICAvLyBJbi1NZW1v +cnkgYWt0dWFsaXNpZXJlbgogICAgICAgIGNvbnN0IGlkeCA9IHRoaXMuZG9jdW1lbnRzLmZpbmRJ +bmRleChkID0+IGQuaWQgPT09IGRvY0lkKTsKICAgICAgICBpZiAoaWR4ID49IDApIHsgdGhpcy5k +b2N1bWVudHNbaWR4XSA9IGRvYzsgfSBlbHNlIHsgdGhpcy5kb2N1bWVudHMucHVzaChkb2MpOyB9 +CgogICAgICAgIGF3YWl0IHRoaXMudXBkYXRlSW5kZXgoKTsKICAgICAgICByZXR1cm4gdHJ1ZTsK +ICAgIH0sCgogICAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 +PT09PT09PT09PT09PT09PT09PT09PT0KICAgIC8vIERFTEVURQogICAgLy8gPT09PT09PT09PT09 +PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCiAg +ICBhc3luYyBkZWxldGVGaWxlKHBhdGgpIHsKICAgICAgICBpZiAodGhpcy5tb2RlID09PSAnc2Vy +dmVyJykgewogICAgICAgICAgICB2YXIgcmVzID0gYXdhaXQgZmV0Y2goJy9hcGkvZGVsZXRlJywg +ewogICAgICAgICAgICAgICAgbWV0aG9kOiAnUE9TVCcsCiAgICAgICAgICAgICAgICBoZWFkZXJz +OiB7ICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbjsgY2hhcnNldD11dGYtOCcgfSwK +ICAgICAgICAgICAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KHsgcGF0aDogcGF0aCB9KQogICAg +ICAgICAgICB9KTsKICAgICAgICAgICAgaWYgKCFyZXMub2spIHsKICAgICAgICAgICAgICAgIHZh +ciBlcnIgPSBhd2FpdCByZXMuanNvbigpLmNhdGNoKGZ1bmN0aW9uKCkgeyByZXR1cm4ge307IH0p +OwogICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGVyci5lcnJvciB8fCAnTMO2c2NoZW4g +ZmVobGdlc2NobGFnZW4gKEhUVFAgJyArIHJlcy5zdGF0dXMgKyAnKScpOwogICAgICAgICAgICB9 +CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgLy8gRmlsZXN5c3RlbTogRGF0ZWkgYXVzIEth +dGVnb3JpZS1PcmRuZXIgbG9lc2NoZW4KICAgICAgICAgICAgY29uc3QgcGFydHMgPSBwYXRoLnNw +bGl0KCcvJyk7CiAgICAgICAgICAgIGNvbnN0IGthdCA9IHBhcnRzWzFdOwogICAgICAgICAgICBj +b25zdCBmaWxlbmFtZSA9IHBhcnRzWzJdOwogICAgICAgICAgICBjb25zdCBrYXREaXIgPSBhd2Fp +dCB0aGlzLl9kYXRhSGFuZGxlLmdldERpcmVjdG9yeUhhbmRsZShrYXQpOwogICAgICAgICAgICBh +d2FpdCBrYXREaXIucmVtb3ZlRW50cnkoZmlsZW5hbWUpOwogICAgICAgIH0KICAgIH0sCgogICAg +YXN5bmMgZGVsZXRlRG9jdW1lbnQoZG9jSWQpIHsKICAgICAgICBjb25zdCBtZXRhID0gdGhpcy5m +aWxlVGltZXN0YW1wc1tkb2NJZF07CiAgICAgICAgaWYgKCFtZXRhKSByZXR1cm4gZmFsc2U7Cgog +ICAgICAgIHRyeSB7CiAgICAgICAgICAgIGF3YWl0IHRoaXMuZGVsZXRlRmlsZShtZXRhLnBhdGgp +OwogICAgICAgICAgICB0aGlzLmRvY3VtZW50cyA9IHRoaXMuZG9jdW1lbnRzLmZpbHRlcihkID0+ +IGQuaWQgIT09IGRvY0lkKTsKICAgICAgICAgICAgZGVsZXRlIHRoaXMuZmlsZVRpbWVzdGFtcHNb +ZG9jSWRdOwoKICAgICAgICAgICAgLy8gTWVkaWEtT3JkbmVyIGxvZXNjaGVuCiAgICAgICAgICAg +IHRyeSB7CiAgICAgICAgICAgICAgICBpZiAodGhpcy5tb2RlID09PSAnc2VydmVyJykgewogICAg +ICAgICAgICAgICAgICAgIGF3YWl0IGZldGNoKCcvYXBpL2RlbGV0ZScsIHsKICAgICAgICAgICAg +ICAgICAgICAgICAgbWV0aG9kOiAnUE9TVCcsCiAgICAgICAgICAgICAgICAgICAgICAgIGhlYWRl +cnM6IHsgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uOyBjaGFyc2V0PXV0Zi04JyB9 +LAogICAgICAgICAgICAgICAgICAgICAgICBib2R5OiBKU09OLnN0cmluZ2lmeSh7IHBhdGg6ICdt +ZWRpYS8nICsgZG9jSWQgfSkKICAgICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAg +IH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5fbWVkaWFIYW5kbGUucmVt +b3ZlRW50cnkoZG9jSWQsIHsgcmVjdXJzaXZlOiB0cnVlIH0pOwogICAgICAgICAgICAgICAgfQog +ICAgICAgICAgICB9IGNhdGNoIHt9CgogICAgICAgICAgICBhd2FpdCB0aGlzLnVwZGF0ZUluZGV4 +KCk7CiAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgIH0gY2F0Y2ggKGVycikgewogICAg +ICAgICAgICBjb25zb2xlLmVycm9yKCdMb2VzY2hmZWhsZXI6JywgZXJyKTsKICAgICAgICAgICAg +cmV0dXJuIGZhbHNlOwogICAgICAgIH0KICAgIH0sCgogICAgLy8gPT09PT09PT09PT09PT09PT09 +PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgIC8vIElO +REVYCiAgICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 +PT09PT09PT09PT09PT09PT09PQoKICAgIGFzeW5jIHVwZGF0ZUluZGV4KCkgewogICAgICAgIC8v +IFN0YXRpc2NoZXIgTW9kdXM6IEluZGV4IG5pY2h0IHNjaHJlaWJlbiAoa2VpbiBTY2hyZWlienVn +cmlmZikKICAgICAgICBpZiAodGhpcy5tb2RlID09PSAnc3RhdGljJykgcmV0dXJuOwoKICAgICAg +ICBjb25zdCBpbmRleERhdGEgPSB7CiAgICAgICAgICAgIHZlcnNpb246ICczLjAnLAogICAgICAg +ICAgICBsYXN0VXBkYXRlZDogbmV3IERhdGUoKS50b0lTT1N0cmluZygpLAogICAgICAgICAgICBk +b2N1bWVudHM6IHRoaXMuZG9jdW1lbnRzLm1hcChkb2MgPT4gKHsKICAgICAgICAgICAgICAgIGlk +OiBkb2MuaWQsCiAgICAgICAgICAgICAgICB0aXRlbDogZG9jLnRpdGVsLAogICAgICAgICAgICAg +ICAga2F0ZWdvcmllOiBkb2Mua2F0ZWdvcmllLAogICAgICAgICAgICAgICAgc3RhdHVzOiBkb2Mu +c3RhdHVzLAogICAgICAgICAgICAgICAgZXJzdGVsbHQ6IGRvYy5lcnN0ZWxsdCwKICAgICAgICAg +ICAgICAgIGdlYWVuZGVydDogZG9jLmdlYWVuZGVydCB8fCBkb2MuZXJzdGVsbHQsCiAgICAgICAg +ICAgICAgICB2ZXJzaW9uOiBkb2MudmVyc2lvbiwKICAgICAgICAgICAgICAgIGhhc01lZGlhOiAo +ZG9jLm1lZGlhcyAmJiBkb2MubWVkaWFzLmxlbmd0aCA+IDApIHx8IGZhbHNlLAogICAgICAgICAg +ICAgICAgZXJzdGVsbHRWb246IGRvYy5lcnN0ZWxsdFZvbiB8fCBudWxsLAogICAgICAgICAgICAg +ICAgYmVhcmJlaXRldFZvbjogZG9jLmJlYXJiZWl0ZXRWb24gfHwgbnVsbCwKICAgICAgICAgICAg +ICAgIHNjaGxhZ3dvZXJ0ZXI6IGRvYy5zY2hsYWd3b2VydGVyIHx8IFtdLAogICAgICAgICAgICAg +ICAgcGFyZW50SWQ6IGRvYy5wYXJlbnRJZCB8fCBudWxsCiAgICAgICAgICAgIH0pKQogICAgICAg +IH07CgogICAgICAgIC8vIEtvbXBsZXR0ZSBEYXRlbiBmdWVyIGZpbGU6Ly8tTGVzZW1vZHVzIChh +bGxlIERva3VtZW50ZSArIENvbmZpZyArIEdvdmVybmFuY2UtU2V0dGluZ3MpCiAgICAgICAgdmFy +IGdvdlB1YmxpYyA9IG51bGw7CiAgICAgICAgaWYgKERyaXZlR292ZXJuYW5jZS5kYXRhKSB7CiAg +ICAgICAgICAgIC8vIE51ciBsZXNiYXJlIEdvdmVybmFuY2UtRGF0ZW46IFNldHRpbmdzLCBLYXRl +Z29yaWVuLVNpY2h0YmFya2VpdCwgUmV2aWV3ZXItS2F0ZWdvcmllbiAoa2VpbmUgQ3JlZGVudGlh +bHMpCiAgICAgICAgICAgIGdvdlB1YmxpYyA9IHsKICAgICAgICAgICAgICAgIHNldHRpbmdzOiBE +cml2ZUdvdmVybmFuY2UuZGF0YS5zZXR0aW5ncyB8fCB7fSwKICAgICAgICAgICAgICAgIHJldmll +d2VyczogKERyaXZlR292ZXJuYW5jZS5kYXRhLnJldmlld2VycyB8fCBbXSkubWFwKGZ1bmN0aW9u +KHIpIHsKICAgICAgICAgICAgICAgICAgICByZXR1cm4geyBkaXNwbGF5TmFtZTogci5kaXNwbGF5 +TmFtZSB8fCByLnVzZXJuYW1lLCBrYXRlZ29yaWVuOiByLmthdGVnb3JpZW4gfHwgW10gfTsKICAg +ICAgICAgICAgICAgIH0pLAogICAgICAgICAgICAgICAgaGlkZGVuS2F0ZWdvcmllbjogdGhpcy5j +b25maWcuaGlkZGVuS2F0ZWdvcmllbiB8fCBbXQogICAgICAgICAgICB9OwogICAgICAgIH0KICAg +ICAgICAvLyBTdGFydHNlaXRlIGZ1ZXIgTGVzZW1vZHVzIGVpbmJldHRlbgogICAgICAgIHZhciBz +dGFydHNlaXRlSHRtbCA9IG51bGw7CiAgICAgICAgdmFyIHdlbGNvbWVFbCA9IGRvY3VtZW50LnF1 +ZXJ5U2VsZWN0b3IoJy53ZWxjb21lLWNvbnRlbnQnKTsKICAgICAgICBpZiAod2VsY29tZUVsKSBz +dGFydHNlaXRlSHRtbCA9IHdlbGNvbWVFbC5pbm5lckhUTUw7CgogICAgICAgIHZhciBzdGF0aWNE +YXRhID0gewogICAgICAgICAgICB2ZXJzaW9uOiBpbmRleERhdGEudmVyc2lvbiwKICAgICAgICAg +ICAgbGFzdFVwZGF0ZWQ6IGluZGV4RGF0YS5sYXN0VXBkYXRlZCwKICAgICAgICAgICAgY29uZmln +OiB0aGlzLmNvbmZpZyB8fCBudWxsLAogICAgICAgICAgICBnb3Zlcm5hbmNlOiBnb3ZQdWJsaWMs +CiAgICAgICAgICAgIHN0YXJ0c2VpdGU6IHN0YXJ0c2VpdGVIdG1sLAogICAgICAgICAgICBkb2N1 +bWVudHM6IHRoaXMuZG9jdW1lbnRzLm1hcChmdW5jdGlvbihkb2MpIHsKICAgICAgICAgICAgICAg +IC8vIEtvbXBsZXR0ZXMgRG9rdW1lbnQga29waWVyZW4sIGFiZXIgX3ByaXZhdGUgUHJvcGVydGll +cyBlbnRmZXJuZW4KICAgICAgICAgICAgICAgIHZhciBjb3B5ID0ge307CiAgICAgICAgICAgICAg +ICBmb3IgKHZhciBrIGluIGRvYykgewogICAgICAgICAgICAgICAgICAgIGlmIChrLmNoYXJBdCgw +KSAhPT0gJ18nKSBjb3B5W2tdID0gZG9jW2tdOwogICAgICAgICAgICAgICAgfQogICAgICAgICAg +ICAgICAgcmV0dXJuIGNvcHk7CiAgICAgICAgICAgIH0pCiAgICAgICAgfTsKICAgICAgICB2YXIg +anNDb250ZW50ID0gJ3ZhciBEUklWRV9TVEFUSUNfSU5ERVggPSAnICsgSlNPTi5zdHJpbmdpZnko +c3RhdGljRGF0YSkgKyAnOyc7CgogICAgICAgIGlmICh0aGlzLm1vZGUgPT09ICdzZXJ2ZXInKSB7 +CiAgICAgICAgICAgIGF3YWl0IGZldGNoKCcvYXBpL3dyaXRlJywgewogICAgICAgICAgICAgICAg +bWV0aG9kOiAnUE9TVCcsCiAgICAgICAgICAgICAgICBoZWFkZXJzOiB7ICdDb250ZW50LVR5cGUn +OiAnYXBwbGljYXRpb24vanNvbjsgY2hhcnNldD11dGYtOCcgfSwKICAgICAgICAgICAgICAgIGJv +ZHk6IEpTT04uc3RyaW5naWZ5KHsgcGF0aDogJ2RhdGEvaW5kZXguanNvbicsIGRhdGE6IGluZGV4 +RGF0YSB9KQogICAgICAgICAgICB9KTsKICAgICAgICAgICAgYXdhaXQgZmV0Y2goJy9hcGkvd3Jp +dGUnLCB7CiAgICAgICAgICAgICAgICBtZXRob2Q6ICdQT1NUJywKICAgICAgICAgICAgICAgIGhl +YWRlcnM6IHsgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uOyBjaGFyc2V0PXV0Zi04 +JyB9LAogICAgICAgICAgICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkoeyBwYXRoOiAnZGF0YS9p +bmRleC5qcycsIGRhdGE6IGpzQ29udGVudCB9KQogICAgICAgICAgICB9KTsKICAgICAgICB9IGVs +c2UgaWYgKHRoaXMuX2RhdGFIYW5kbGUpIHsKICAgICAgICAgICAgY29uc3QgZmggPSBhd2FpdCB0 +aGlzLl9kYXRhSGFuZGxlLmdldEZpbGVIYW5kbGUoJ2luZGV4Lmpzb24nLCB7IGNyZWF0ZTogdHJ1 +ZSB9KTsKICAgICAgICAgICAgY29uc3Qgd3JpdGFibGUgPSBhd2FpdCBmaC5jcmVhdGVXcml0YWJs +ZSgpOwogICAgICAgICAgICBhd2FpdCB3cml0YWJsZS53cml0ZShKU09OLnN0cmluZ2lmeShpbmRl +eERhdGEsIG51bGwsIDIpKTsKICAgICAgICAgICAgYXdhaXQgd3JpdGFibGUuY2xvc2UoKTsKICAg +ICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgICAgIGNvbnN0IGZoSnMgPSBhd2FpdCB0aGlzLl9k +YXRhSGFuZGxlLmdldEZpbGVIYW5kbGUoJ2luZGV4LmpzJywgeyBjcmVhdGU6IHRydWUgfSk7CiAg +ICAgICAgICAgICAgICBjb25zdCB3SnMgPSBhd2FpdCBmaEpzLmNyZWF0ZVdyaXRhYmxlKCk7CiAg +ICAgICAgICAgICAgICBhd2FpdCB3SnMud3JpdGUoanNDb250ZW50KTsKICAgICAgICAgICAgICAg +IGF3YWl0IHdKcy5jbG9zZSgpOwogICAgICAgICAgICB9IGNhdGNoIHt9CiAgICAgICAgfQoKICAg +ICAgICB0aGlzLmluZGV4ID0gaW5kZXhEYXRhOwogICAgfSwKCiAgICAvLyA9PT09PT09PT09PT09 +PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICAg +Ly8gTUVESUEgVVBMT0FECiAgICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 +PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKICAgIC8vIERhdGVpbmFtZW4gYmVyZWlu +aWdlbjogVW1sYXV0ZSB1bmQgU29uZGVyemVpY2hlbiBkdXJjaCBBU0NJSSBlcnNldHplbgogICAg +c2FuaXRpemVGaWxlbmFtZShuYW1lKSB7CiAgICAgICAgcmV0dXJuIG5hbWUKICAgICAgICAgICAg +LnJlcGxhY2UoL8OkL2csICdhZScpLnJlcGxhY2UoL8OEL2csICdBZScpCiAgICAgICAgICAgIC5y +ZXBsYWNlKC/Dti9nLCAnb2UnKS5yZXBsYWNlKC/Dli9nLCAnT2UnKQogICAgICAgICAgICAucmVw +bGFjZSgvw7wvZywgJ3VlJykucmVwbGFjZSgvw5wvZywgJ1VlJykKICAgICAgICAgICAgLnJlcGxh +Y2UoL8OfL2csICdzcycpCiAgICAgICAgICAgIC5yZXBsYWNlKC9bXlx3LlwtXS9nLCAnXycpCiAg +ICAgICAgICAgIC5yZXBsYWNlKC9fKy9nLCAnXycpOwogICAgfSwKCiAgICBhc3luYyB1cGxvYWRN +ZWRpYShkb2NJZCwgZmlsZSwgb25Qcm9ncmVzcykgewogICAgICAgIGNvbnN0IHNhZmVOYW1lID0g +dGhpcy5zYW5pdGl6ZUZpbGVuYW1lKGZpbGUubmFtZSk7CiAgICAgICAgY29uc3QgcmVsUGF0aCA9 +ICdtZWRpYS8nICsgZG9jSWQgKyAnLycgKyBzYWZlTmFtZTsKCiAgICAgICAgaWYgKHRoaXMubW9k +ZSA9PT0gJ3NlcnZlcicpIHsKICAgICAgICAgICAgLy8gWE1MSHR0cFJlcXVlc3Qgc3RhdHQgZmV0 +Y2g6IEVybW9lZ2xpY2h0IFVwbG9hZC1Gb3J0c2Nocml0dHNhbnplaWdlCiAgICAgICAgICAgIC8v +IHZpYSB4aHIudXBsb2FkLm9ucHJvZ3Jlc3MgKGZldGNoIHVudGVyc3R1ZXR6dCBrZWluIFVwbG9h +ZC1Qcm9ncmVzcykKICAgICAgICAgICAgY29uc3QgZm9ybURhdGEgPSBuZXcgRm9ybURhdGEoKTsK +ICAgICAgICAgICAgZm9ybURhdGEuYXBwZW5kKCdmaWxlJywgZmlsZSk7CiAgICAgICAgICAgIGNv +bnN0IHVybCA9ICcvYXBpL3VwbG9hZD9wYXRoPScgKyBlbmNvZGVVUklDb21wb25lbnQocmVsUGF0 +aCk7CgogICAgICAgICAgICBhd2FpdCBuZXcgUHJvbWlzZShmdW5jdGlvbihyZXNvbHZlLCByZWpl +Y3QpIHsKICAgICAgICAgICAgICAgIHZhciB4aHIgPSBuZXcgWE1MSHR0cFJlcXVlc3QoKTsKICAg +ICAgICAgICAgICAgIHhoci5vcGVuKCdQT1NUJywgdXJsKTsKICAgICAgICAgICAgICAgIGlmIChv +blByb2dyZXNzKSB7CiAgICAgICAgICAgICAgICAgICAgeGhyLnVwbG9hZC5vbnByb2dyZXNzID0g +ZnVuY3Rpb24oZSkgewogICAgICAgICAgICAgICAgICAgICAgICBpZiAoZS5sZW5ndGhDb21wdXRh +YmxlKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvblByb2dyZXNzKE1hdGgucm91bmQo +KGUubG9hZGVkIC8gZS50b3RhbCkgKiAxMDApLCBlLmxvYWRlZCwgZS50b3RhbCk7CiAgICAgICAg +ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9OwogICAgICAgICAgICAgICAg +fQogICAgICAgICAgICAgICAgeGhyLm9ubG9hZCA9IGZ1bmN0aW9uKCkgewogICAgICAgICAgICAg +ICAgICAgIGlmICh4aHIuc3RhdHVzID49IDIwMCAmJiB4aHIuc3RhdHVzIDwgMzAwKSB7CiAgICAg +ICAgICAgICAgICAgICAgICAgIGlmIChvblByb2dyZXNzKSBvblByb2dyZXNzKDEwMCwgZmlsZS5z +aXplLCBmaWxlLnNpemUpOwogICAgICAgICAgICAgICAgICAgICAgICByZXNvbHZlKCk7CiAgICAg +ICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGVyciA9 +IHt9OwogICAgICAgICAgICAgICAgICAgICAgICB0cnkgeyBlcnIgPSBKU09OLnBhcnNlKHhoci5y +ZXNwb25zZVRleHQpOyB9IGNhdGNoKGV4KSB7fQogICAgICAgICAgICAgICAgICAgICAgICByZWpl +Y3QobmV3IEVycm9yKGVyci5lcnJvciB8fCAnVXBsb2FkIGZlaGxnZXNjaGxhZ2VuIChIVFRQICcg +KyB4aHIuc3RhdHVzICsgJyknKSk7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg +ICAgfTsKICAgICAgICAgICAgICAgIHhoci5vbmVycm9yID0gZnVuY3Rpb24oKSB7CiAgICAgICAg +ICAgICAgICAgICAgcmVqZWN0KG5ldyBFcnJvcignU2VydmVyIG5pY2h0IGVycmVpY2hiYXIuIExh +ZXVmdCBkZXIgU2VydmVyIG5vY2g/JykpOwogICAgICAgICAgICAgICAgfTsKICAgICAgICAgICAg +ICAgIHhoci5zZW5kKGZvcm1EYXRhKTsKICAgICAgICAgICAgfSk7CiAgICAgICAgfSBlbHNlIHsK +ICAgICAgICAgICAgY29uc3QgZG9jTWVkaWFEaXIgPSBhd2FpdCB0aGlzLl9tZWRpYUhhbmRsZS5n +ZXREaXJlY3RvcnlIYW5kbGUoZG9jSWQsIHsgY3JlYXRlOiB0cnVlIH0pOwogICAgICAgICAgICBj +b25zdCBmaCA9IGF3YWl0IGRvY01lZGlhRGlyLmdldEZpbGVIYW5kbGUoc2FmZU5hbWUsIHsgY3Jl +YXRlOiB0cnVlIH0pOwogICAgICAgICAgICBjb25zdCB3cml0YWJsZSA9IGF3YWl0IGZoLmNyZWF0 +ZVdyaXRhYmxlKCk7CiAgICAgICAgICAgIGF3YWl0IHdyaXRhYmxlLndyaXRlKGZpbGUpOwogICAg +ICAgICAgICBhd2FpdCB3cml0YWJsZS5jbG9zZSgpOwogICAgICAgICAgICBpZiAob25Qcm9ncmVz +cykgb25Qcm9ncmVzcygxMDAsIGZpbGUuc2l6ZSwgZmlsZS5zaXplKTsKICAgICAgICB9CgogICAg +ICAgIHJldHVybiByZWxQYXRoOwogICAgfSwKCiAgICAvLyA9PT09PT09PT09PT09PT09PT09PT09 +PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICAgLy8gVUkKICAg +IC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 +PT09PT09PT09PT09CgogICAgdXBkYXRlQ29ubmVjdGlvblVJKCkgewogICAgICAgIGNvbnN0IGJh +ciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb25uZWN0aW9uQmFyJyk7CiAgICAgICAgY29u +c3QgZG90ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3N0YXR1c0RvdCcpOwogICAgICAgIGNv +bnN0IHRleHQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29ubmVjdGlvblRleHQnKTsKICAg +ICAgICBjb25zdCBzZWFyY2ggPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc2VhcmNoSW5wdXQn +KTsKICAgICAgICBjb25zdCBidG5OZXcgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYnRuTmV3 +RG9jJyk7CiAgICAgICAgY29uc3QgYnRuUmVjb25uZWN0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5 +SWQoJ2J0blJlY29ubmVjdCcpOwogICAgICAgIGNvbnN0IGJ0blNlcnZlciA9IGRvY3VtZW50Lmdl +dEVsZW1lbnRCeUlkKCdidG5BY3RpdmF0ZVNlcnZlcicpOwoKICAgICAgICBpZiAodGhpcy5jb25u +ZWN0ZWQpIHsKICAgICAgICAgICAgYmFyLnN0eWxlLmRpc3BsYXkgPSAnJzsKICAgICAgICAgICAg +ZG90LmNsYXNzTGlzdC5yZW1vdmUoJ2Nvbm5lY3RlZCcsICdyZWFkb25seScpOwogICAgICAgICAg +ICBpZiAodGhpcy5yZWFkT25seSkgewogICAgICAgICAgICAgICAgZG90LmNsYXNzTGlzdC5hZGQo +J3JlYWRvbmx5Jyk7CiAgICAgICAgICAgICAgICBjb25zdCBtb2RlUHJlZml4ID0gdGhpcy5tb2Rl +ID09PSAnc3RhdGljJyA/ICdMZXNlbW9kdXMnIDogJ051ciBMZXNlbic7CiAgICAgICAgICAgICAg +ICBjb25zdCB1c2VyU3RyID0gKHRoaXMuZW52aXJvbiAmJiB0aGlzLm1vZGUgIT09ICdzdGF0aWMn +KSA/ICcgfCAnICsgdGhpcy5lbnZpcm9uLnVzZXJuYW1lIDogJyc7CiAgICAgICAgICAgICAgICB0 +ZXh0LnRleHRDb250ZW50ID0gbW9kZVByZWZpeCArICcgKCcgKyB0aGlzLmRvY3VtZW50cy5sZW5n +dGggKyAnIERva3VtZW50ZSknICsgdXNlclN0cjsKICAgICAgICAgICAgICAgIGJ0bk5ldy5kaXNh +YmxlZCA9IHRydWU7CiAgICAgICAgICAgICAgICBidG5OZXcuc3R5bGUuZGlzcGxheSA9ICh0aGlz +Lm1vZGUgPT09ICdzdGF0aWMnKSA/ICdub25lJyA6ICcnOwogICAgICAgICAgICAgICAgYnRuTmV3 +LnRpdGxlID0gJ1NlcnZlciBzdGFydGVuIGbDvHIgQmVhcmJlaXR1bmcnOwogICAgICAgICAgICAg +ICAgYnRuU2VydmVyLnN0eWxlLmRpc3BsYXkgPSAodGhpcy5tb2RlID09PSAnc3RhdGljJykgPyAn +bm9uZScgOiAnJzsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIGRvdC5jbGFz +c0xpc3QuYWRkKCdjb25uZWN0ZWQnKTsKICAgICAgICAgICAgICAgIGNvbnN0IHVzZXJTdHIgPSB0 +aGlzLmVudmlyb24gPyAnIHwgQmVudXR6ZXI6ICcgKyB0aGlzLmVudmlyb24udXNlcm5hbWUgOiAn +JzsKICAgICAgICAgICAgICAgIGNvbnN0IG1vZGVTdHIgPSB0aGlzLm1vZGUgPT09ICdzZXJ2ZXIn +ID8gJ1NlcnZlcicgOiAnTG9rYWwgKFZvbGx6dWdyaWZmKSc7CiAgICAgICAgICAgICAgICB0ZXh0 +LnRleHRDb250ZW50ID0gbW9kZVN0ciArICcgKCcgKyB0aGlzLmRvY3VtZW50cy5sZW5ndGggKyAn +IERva3VtZW50ZSknICsgdXNlclN0cjsKICAgICAgICAgICAgICAgIGJ0bk5ldy5kaXNhYmxlZCA9 +IGZhbHNlOwogICAgICAgICAgICAgICAgYnRuTmV3LnN0eWxlLmRpc3BsYXkgPSAnJzsKICAgICAg +ICAgICAgICAgIGJ0bk5ldy50aXRsZSA9ICcnOwogICAgICAgICAgICAgICAgYnRuU2VydmVyLnN0 +eWxlLmRpc3BsYXkgPSAnbm9uZSc7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgc2VhcmNoLmRp +c2FibGVkID0gZmFsc2U7CiAgICAgICAgICAgIGJ0blJlY29ubmVjdC5zdHlsZS5kaXNwbGF5ID0g +KHRoaXMubW9kZSA9PT0gJ2ZpbGVzeXN0ZW0nKSA/ICcnIDogJ25vbmUnOwogICAgICAgICAgICAv +LyBMZXNlbW9kdXMtQmFkZ2UgaW0gRm9vdGVyCiAgICAgICAgICAgIHZhciByZWFkQmFkZ2UgPSBk +b2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZm9vdGVyUmVhZE1vZGUnKTsKICAgICAgICAgICAgaWYg +KHJlYWRCYWRnZSkgcmVhZEJhZGdlLnN0eWxlLmRpc3BsYXkgPSB0aGlzLnJlYWRPbmx5ID8gJycg +OiAnbm9uZSc7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgYmFyLnN0eWxlLmRpc3BsYXkg +PSAnbm9uZSc7CiAgICAgICAgICAgIGRvdC5jbGFzc0xpc3QucmVtb3ZlKCdjb25uZWN0ZWQnLCAn +cmVhZG9ubHknKTsKICAgICAgICAgICAgc2VhcmNoLmRpc2FibGVkID0gdHJ1ZTsKICAgICAgICAg +ICAgYnRuTmV3LmRpc2FibGVkID0gdHJ1ZTsKICAgICAgICAgICAgYnRuTmV3LnN0eWxlLmRpc3Bs +YXkgPSAnbm9uZSc7CiAgICAgICAgICAgIGJ0blJlY29ubmVjdC5zdHlsZS5kaXNwbGF5ID0gJ25v +bmUnOwogICAgICAgICAgICBidG5TZXJ2ZXIuc3R5bGUuZGlzcGxheSA9ICdub25lJzsKICAgICAg +ICB9CiAgICB9LAoKICAgIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 +PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgICAvLyBTWU5DIChwZXJpb2Rpc2NoIHBydWVm +ZW4gb2IgYW5kZXJlIFVzZXIgZXR3YXMgZ2VhZW5kZXJ0IGhhYmVuKQogICAgLy8gPT09PT09PT09 +PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K +CiAgICBzdGFydFN5bmMoKSB7CiAgICAgICAgaWYgKHRoaXMuc3luY0ludGVydmFsKSBjbGVhcklu +dGVydmFsKHRoaXMuc3luY0ludGVydmFsKTsKICAgICAgICB0aGlzLl9sYXN0VmlzdWFsU3luYyA9 +IDA7CgogICAgICAgIHRoaXMuc3luY0ludGVydmFsID0gc2V0SW50ZXJ2YWwoYXN5bmMgKCkgPT4g +ewogICAgICAgICAgICBpZiAoIXRoaXMuY29ubmVjdGVkKSByZXR1cm47CgogICAgICAgICAgICB0 +cnkgewogICAgICAgICAgICAgICAgbGV0IGNoYW5nZWQgPSBmYWxzZTsKCiAgICAgICAgICAgICAg +ICBpZiAodGhpcy5tb2RlID09PSAnc2VydmVyJykgewogICAgICAgICAgICAgICAgICAgIGNvbnN0 +IHJlcyA9IGF3YWl0IGZldGNoKCcvYXBpL3NjYW4nKTsKICAgICAgICAgICAgICAgICAgICBjb25z +dCBkYXRhID0gYXdhaXQgcmVzLmpzb24oKTsKICAgICAgICAgICAgICAgICAgICBjb25zdCBzZXJ2 +ZXJGaWxlcyA9IGRhdGEuZmlsZXMgfHwgW107CgogICAgICAgICAgICAgICAgICAgIC8vIEFuemFo +bCBnZWFlbmRlcnQ/CiAgICAgICAgICAgICAgICAgICAgaWYgKHNlcnZlckZpbGVzLmxlbmd0aCAh +PT0gdGhpcy5kb2N1bWVudHMubGVuZ3RoKSB7IGNoYW5nZWQgPSB0cnVlOyB9CgogICAgICAgICAg +ICAgICAgICAgIC8vIFRpbWVzdGFtcHMgZ2VhZW5kZXJ0PwogICAgICAgICAgICAgICAgICAgIGlm +ICghY2hhbmdlZCkgewogICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGVudHJ5IG9m +IHNlcnZlckZpbGVzKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBkb2NJZCA9 +IGVudHJ5LmZpbGVuYW1lLnNwbGl0KCdfJylbMF07CiAgICAgICAgICAgICAgICAgICAgICAgICAg +ICBjb25zdCBtZXRhID0gdGhpcy5maWxlVGltZXN0YW1wc1tkb2NJZF07CiAgICAgICAgICAgICAg +ICAgICAgICAgICAgICBpZiAoIW1ldGEgfHwgZW50cnkubW9kaWZpZWQgIT09IG1ldGEubW9kaWZp +ZWQpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFuZ2VkID0gdHJ1ZTsKICAg +ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICAg +ICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0K +ICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgLy8gRmlsZXN5c3Rl +bS1Nb2R1czogRGF0ZWllbiBwcnVlZmVuCiAgICAgICAgICAgICAgICAgICAgbGV0IHRvdGFsRmls +ZXMgPSAwOwogICAgICAgICAgICAgICAgICAgIGZvciAoY29uc3Qga2F0IG9mICh0aGlzLmNvbmZp +Zy5rYXRlZ29yaWVuIHx8IFtdKSkgewogICAgICAgICAgICAgICAgICAgICAgICB0cnkgewogICAg +ICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qga2F0RGlyID0gYXdhaXQgdGhpcy5fZGF0YUhh +bmRsZS5nZXREaXJlY3RvcnlIYW5kbGUoa2F0KTsKICAgICAgICAgICAgICAgICAgICAgICAgICAg +IGZvciBhd2FpdCAoY29uc3QgW25hbWUsIGhhbmRsZV0gb2Yga2F0RGlyKSB7CiAgICAgICAgICAg +ICAgICAgICAgICAgICAgICAgICAgaWYgKG5hbWUuZW5kc1dpdGgoJy5qc29uJykpIHsKICAgICAg +ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG90YWxGaWxlcysrOwogICAgICAgICAgICAg +ICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBmaWxlID0gYXdhaXQgaGFuZGxlLmdldEZpbGUo +KTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZG9jSWQgPSBuYW1l +LnNwbGl0KCdfJylbMF07CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0 +IG1ldGEgPSB0aGlzLmZpbGVUaW1lc3RhbXBzW2RvY0lkXTsKICAgICAgICAgICAgICAgICAgICAg +ICAgICAgICAgICAgICAgaWYgKCFtZXRhIHx8IGZpbGUubGFzdE1vZGlmaWVkID4gbWV0YS5tb2Rp +ZmllZCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhbmdlZCA9 +IHRydWU7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg +ICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAg +ICAgICAgICAgICAgICAgICAgIH0gY2F0Y2gge30KICAgICAgICAgICAgICAgICAgICB9CiAgICAg +ICAgICAgICAgICAgICAgaWYgKHRvdGFsRmlsZXMgIT09IHRoaXMuZG9jdW1lbnRzLmxlbmd0aCkg +Y2hhbmdlZCA9IHRydWU7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgLy8gTG9j +a3MgaW1tZXIgYWt0dWFsaXNpZXJlbiAodW5hYmhhZW5naWcgdm9uIERva3VtZW50ZW5hZW5kZXJ1 +bmdlbikKICAgICAgICAgICAgICAgIGF3YWl0IERyaXZlUG9ydGFsLmxvYWRMb2NrcygpOwoKICAg +ICAgICAgICAgICAgIGlmIChjaGFuZ2VkKSB7CiAgICAgICAgICAgICAgICAgICAgYXdhaXQgdGhp +cy5sb2FkQWxsRG9jdW1lbnRzKCk7CiAgICAgICAgICAgICAgICAgICAgYXdhaXQgRHJpdmVHb3Zl +cm5hbmNlLmxvYWQoKTsKICAgICAgICAgICAgICAgICAgICBEcml2ZVBvcnRhbC5yZW5kZXIoKTsK +ICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc3luY0luZm8nKS50 +ZXh0Q29udGVudCA9ICdBa3R1YWxpc2llcnQ6ICcgKyBuZXcgRGF0ZSgpLnRvTG9jYWxlVGltZVN0 +cmluZygpOwogICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAvLyBB +dWNoIG9obmUgRG9rdW1lbnRlbmFlbmRlcnVuZ2VuIGRpZSBMaXN0ZSBuZXUgcmVuZGVybiAoTG9j +ay1TdGF0dXMpCiAgICAgICAgICAgICAgICAgICAgRHJpdmVQb3J0YWwucmVuZGVyTGlzdCgpOwog +ICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIC8vIFZpc3VlbGxlIEFuemVpZ2UgaW0g +Rm9vdGVyIG51ciBhbGxlIDIwIE1pbnV0ZW4KICAgICAgICAgICAgICAgIGNvbnN0IG5vdyA9IERh +dGUubm93KCk7CiAgICAgICAgICAgICAgICBpZiAobm93IC0gdGhpcy5fbGFzdFZpc3VhbFN5bmMg +Pj0gMTIwMDAwMCkgewogICAgICAgICAgICAgICAgICAgIHRoaXMuX2xhc3RWaXN1YWxTeW5jID0g +bm93OwogICAgICAgICAgICAgICAgICAgIGNvbnN0IGVsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5 +SWQoJ2Zvb3RlclN5bmNTdGF0dXMnKTsKICAgICAgICAgICAgICAgICAgICBpZiAoZWwpIHsKICAg +ICAgICAgICAgICAgICAgICAgICAgZWwudGV4dENvbnRlbnQgPSAnRC5SLkkuVi5FLiBha3R1YWxp +c2llcnQnOwogICAgICAgICAgICAgICAgICAgICAgICBlbC5jbGFzc0xpc3QuYWRkKCd2aXNpYmxl +Jyk7CiAgICAgICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4gZWwuY2xhc3NMaXN0 +LnJlbW92ZSgndmlzaWJsZScpLCA0MDAwKTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAg +ICAgICAgICB9CiAgICAgICAgICAgIH0gY2F0Y2ggKGVycikgewogICAgICAgICAgICAgICAgY29u +c29sZS53YXJuKCdTeW5jLUZlaGxlcjonLCBlcnIpOwogICAgICAgICAgICB9CiAgICAgICAgfSwg +MzAwMDAwKTsKICAgIH0KfTsKCi8vID09PT09PT09PT09PT09PT09PT09PSBQT1JUQUwgVUkgPT09 +PT09PT09PT09PT09PT09PT09CgovLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 +PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQovLyBNb2R1bDogRHJp +dmVQb3J0YWwgLSBEb2t1bWVudGVubGlzdGUsIEZpbHRlciwgRGV0YWlsYW5zaWNodAovLyBadXN0 +YWVuZGlnIGZ1ZXI6IFJlbmRlcm4gZGVyIERva3VtZW50ZW5saXN0ZSwgU3VjaGVyZ2Vibmlzc2Us +IERldGFpbC1WaWV3LCBUYWJlbGxlbmFuc2ljaHQKLy8gU2ljaGVyaGVpdDogQWxsZSBCZW51dHpl +cmRhdGVuIHdlcmRlbiB2b3IgZGVyIERhcnN0ZWxsdW5nIHVlYmVyIGVzY2FwZUhUTUwoKSAvIGVz +Y2FwZUF0dHIoKQovLyAgICAgICAgICAgICBiZXJlaW5pZ3QgKFhTUy1TY2h1dHopLiBTaWNodGJh +cmtlaXRzZmlsdGVyIChjYW5TZWVEb2N1bWVudCkgaXN0IHJlaW4gY2xpZW50c2VpdGlnCi8vICAg +ICAgICAgICAgIHVuZCBkaWVudCBkZXIgQmVudXR6ZXJmdWVocnVuZyAtIGRpZSBzZXJ2ZXJzZWl0 +aWdlIEF1dG9yaXNpZXJ1bmcgYmxlaWJ0IG1hc3NnZWJsaWNoLgovLyA9PT09PT09PT09PT09PT09 +PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 +PT09PQpjb25zdCBEcml2ZVBvcnRhbCA9IHsKICAgIGZpbHRlcmVkRG9jdW1lbnRzOiBbXSwKICAg +IHNlbGVjdGVkRG9jSWQ6IG51bGwsCiAgICBjdXJyZW50Q2F0ZWdvcnlGaWx0ZXI6ICdhbGwnLAog +ICAgY3VycmVudFN0YXR1c0ZpbHRlcjogJ2FsbCcsCiAgICB0YWJsZVZpZXdBY3RpdmU6IGZhbHNl +LAogICAgX3RhYmxlU29ydENvbDogJ2Vyc3RlbGx0JywKICAgIF90YWJsZVNvcnREaXI6ICdkZXNj +JywKCiAgICBhc3luYyBpbml0KCkgewogICAgICAgIC8vIFN0YXJ0c2VpdGVuLUhUTUw6IHdpcmQg +aW5pdGlhbCBhdXMgZGVtIERPTSBnZWxlc2VuLCBzcGFldGVyIHZvbgogICAgICAgIC8vIGxvYWRT +dGFydHNlaXRlKCkvc2F2ZVN0YXJ0c2VpdGUoKSBtaXQgZGVtIGdlc3BlaWNoZXJ0ZW4gSW5oYWx0 +IHVlYmVyc2NocmllYmVuLgogICAgICAgIHRoaXMuX3dlbGNvbWVIVE1MID0gZG9jdW1lbnQuZ2V0 +RWxlbWVudEJ5SWQoJ2RvY3VtZW50RGV0YWlsJykuaW5uZXJIVE1MOwogICAgICAgIHRoaXMuc2V0 +dXBGaWx0ZXJzKCk7CiAgICAgICAgdGhpcy5zZXR1cEV2ZW50TGlzdGVuZXJzKCk7CiAgICAgICAg +YXdhaXQgdGhpcy5sb2FkTG9ja3MoKTsKICAgICAgICB0aGlzLnJlbmRlcigpOwogICAgfSwKCiAg +ICBzZXR1cEZpbHRlcnMoKSB7CiAgICAgICAgY29uc3QgY2F0Q29udGFpbmVyID0gZG9jdW1lbnQu +Z2V0RWxlbWVudEJ5SWQoJ2NhdGVnb3J5RmlsdGVycycpOwogICAgICAgIGNhdENvbnRhaW5lci5p +bm5lckhUTUwgPSAnJzsKCiAgICAgICAgLy8gIkFsbGUiIEJ1dHRvbgogICAgICAgIGNvbnN0IGFs +bEJ0biA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2J1dHRvbicpOwogICAgICAgIGFsbEJ0bi5j +bGFzc05hbWUgPSAnZmlsdGVyLWJ0biBhY3RpdmUnOwogICAgICAgIGFsbEJ0bi5zZXRBdHRyaWJ1 +dGUoJ2RhdGEtZmlsdGVyJywgJ2FsbCcpOwogICAgICAgIGFsbEJ0bi50ZXh0Q29udGVudCA9ICdB +bGxlJzsKICAgICAgICBhbGxCdG4uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCAoKSA9PiB0aGlz +LnNldENhdGVnb3J5KCdhbGwnKSk7CiAgICAgICAgY2F0Q29udGFpbmVyLmFwcGVuZENoaWxkKGFs +bEJ0bik7CgogICAgICAgIC8vIEthdGVnb3JpZS1CdXR0b25zIChhbHBoYWJldGlzY2ggc29ydGll +cnQsIGF1c2dlYmxlbmRldGUgdWViZXJzcHJpbmdlbikKICAgICAgICB2YXIgaGlkZGVuS2F0cyA9 +IERyaXZlRlMuY29uZmlnLmhpZGRlbkthdGVnb3JpZW4gfHwgW107CiAgICAgICAgKERyaXZlRlMu +Y29uZmlnLmthdGVnb3JpZW4gfHwgW10pLnNsaWNlKCkuc29ydChmdW5jdGlvbihhLGIpeyByZXR1 +cm4gYS5sb2NhbGVDb21wYXJlKGIsICdkZScpOyB9KS5mb3JFYWNoKGthdCA9PiB7CiAgICAgICAg +ICAgIGlmIChoaWRkZW5LYXRzLmluY2x1ZGVzKGthdCkpIHJldHVybjsKICAgICAgICAgICAgY29u +c3QgYnRuID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYnV0dG9uJyk7CiAgICAgICAgICAgIGJ0 +bi5jbGFzc05hbWUgPSAnZmlsdGVyLWJ0bic7CiAgICAgICAgICAgIGJ0bi5zZXRBdHRyaWJ1dGUo +J2RhdGEtZmlsdGVyJywga2F0KTsKICAgICAgICAgICAgYnRuLnRleHRDb250ZW50ID0ga2F0Owog +ICAgICAgICAgICBidG4uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCAoKSA9PiB0aGlzLnNldENh +dGVnb3J5KGthdCkpOwogICAgICAgICAgICBjYXRDb250YWluZXIuYXBwZW5kQ2hpbGQoYnRuKTsK +ICAgICAgICB9KTsKCiAgICAgICAgLy8gU3RhdHVzLUZpbHRlciAoaW0gTGVzZW1vZHVzIGF1c2Js +ZW5kZW4g4oCTIGVzIGdpYnQgbnVyIGZyZWlnZWdlYmVuZSBEb2t1bWVudGUpCiAgICAgICAgY29u +c3Qgc3RhdHVzQ29udGFpbmVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3N0YXR1c0ZpbHRl +cnMnKTsKICAgICAgICBzdGF0dXNDb250YWluZXIuaW5uZXJIVE1MID0gJyc7CgogICAgICAgIGlm +IChEcml2ZUZTLm1vZGUgPT09ICdzdGF0aWMnKSB7CiAgICAgICAgICAgIC8vIExlc2Vtb2R1czog +S2VpbmUgU3RhdHVzLUZpbHRlciBub2V0aWcKICAgICAgICAgICAgc3RhdHVzQ29udGFpbmVyLnN0 +eWxlLmRpc3BsYXkgPSAnbm9uZSc7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgc3RhdHVz +Q29udGFpbmVyLnN0eWxlLmRpc3BsYXkgPSAnJzsKICAgICAgICAgICAgY29uc3QgYWxsU3RhdHVz +QnRuID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYnV0dG9uJyk7CiAgICAgICAgICAgIGFsbFN0 +YXR1c0J0bi5jbGFzc05hbWUgPSAnc3RhdHVzLWZpbHRlci1idG4gYWN0aXZlJzsKICAgICAgICAg +ICAgYWxsU3RhdHVzQnRuLnNldEF0dHJpYnV0ZSgnZGF0YS1zdGF0dXMnLCAnYWxsJyk7CiAgICAg +ICAgICAgIGFsbFN0YXR1c0J0bi50ZXh0Q29udGVudCA9ICdBbGxlIFN0YXR1cyc7CiAgICAgICAg +ICAgIGFsbFN0YXR1c0J0bi5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsICgpID0+IHRoaXMuc2V0 +U3RhdHVzKCdhbGwnKSk7CiAgICAgICAgICAgIHN0YXR1c0NvbnRhaW5lci5hcHBlbmRDaGlsZChh +bGxTdGF0dXNCdG4pOwoKICAgICAgICAgICAgY29uc3QgaXNTVSA9IERyaXZlR292ZXJuYW5jZS5p +c1N1cGVyVXNlcigpOwogICAgICAgICAgICBjb25zdCBpc0ZBID0gRHJpdmVHb3Zlcm5hbmNlLmlz +RmFjaGF1ZnNpY2h0KCk7CiAgICAgICAgICAgIGNvbnN0IHN0YXR1c0NvbmZpZyA9IERyaXZlRlMu +Y29uZmlnLnN0YXR1cyB8fCB7fTsKICAgICAgICAgICAgT2JqZWN0LmtleXMoc3RhdHVzQ29uZmln +KS5mb3JFYWNoKHN0YXR1cyA9PiB7CiAgICAgICAgICAgICAgICAvLyAiQWJnZWxlaG50IiBudXIg +ZnVlciBTdXBlclVzZXIgdW5kIEZhY2hhdWZzaWNodAogICAgICAgICAgICAgICAgaWYgKHN0YXR1 +cyA9PT0gJ0FiZ2VsZWhudCcgJiYgIWlzU1UgJiYgIWlzRkEpIHJldHVybjsKICAgICAgICAgICAg +ICAgIGNvbnN0IGNmZyA9IHN0YXR1c0NvbmZpZ1tzdGF0dXNdOwogICAgICAgICAgICAgICAgY29u +c3QgYnRuID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYnV0dG9uJyk7CiAgICAgICAgICAgICAg +ICBidG4uY2xhc3NOYW1lID0gJ3N0YXR1cy1maWx0ZXItYnRuJzsKICAgICAgICAgICAgICAgIGJ0 +bi5zZXRBdHRyaWJ1dGUoJ2RhdGEtc3RhdHVzJywgc3RhdHVzKTsKICAgICAgICAgICAgICAgIGJ0 +bi5pbm5lckhUTUwgPSBjZmcubGFiZWw7CiAgICAgICAgICAgICAgICBidG4uc3R5bGUuYm9yZGVy +Q29sb3IgPSBjZmcuY29sb3I7CiAgICAgICAgICAgICAgICBidG4uYWRkRXZlbnRMaXN0ZW5lcign +Y2xpY2snLCAoKSA9PiB0aGlzLnNldFN0YXR1cyhzdGF0dXMpKTsKICAgICAgICAgICAgICAgIHN0 +YXR1c0NvbnRhaW5lci5hcHBlbmRDaGlsZChidG4pOwogICAgICAgICAgICB9KTsKICAgICAgICB9 +CiAgICB9LAoKICAgIHNldHVwRXZlbnRMaXN0ZW5lcnMoKSB7CiAgICAgICAgZG9jdW1lbnQuZ2V0 +RWxlbWVudEJ5SWQoJ3NlYXJjaElucHV0JykuYWRkRXZlbnRMaXN0ZW5lcigna2V5dXAnLCAoKSA9 +PiB0aGlzLnJlbmRlcigpKTsKICAgIH0sCgogICAgc2V0Q2F0ZWdvcnkoY2F0KSB7CiAgICAgICAg +dGhpcy5jdXJyZW50Q2F0ZWdvcnlGaWx0ZXIgPSBjYXQ7CiAgICAgICAgZG9jdW1lbnQucXVlcnlT +ZWxlY3RvckFsbCgnI2NhdGVnb3J5RmlsdGVycyAuZmlsdGVyLWJ0bicpLmZvckVhY2goYnRuID0+ +IHsKICAgICAgICAgICAgYnRuLmNsYXNzTGlzdC50b2dnbGUoJ2FjdGl2ZScsIGJ0bi5nZXRBdHRy +aWJ1dGUoJ2RhdGEtZmlsdGVyJykgPT09IGNhdCk7CiAgICAgICAgfSk7CiAgICAgICAgdGhpcy5y +ZW5kZXIoKTsKICAgIH0sCgogICAgc2V0U3RhdHVzKHN0YXR1cykgewogICAgICAgIHRoaXMuY3Vy +cmVudFN0YXR1c0ZpbHRlciA9IHN0YXR1czsKICAgICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9y +QWxsKCcjc3RhdHVzRmlsdGVycyAuc3RhdHVzLWZpbHRlci1idG4nKS5mb3JFYWNoKGJ0biA9PiB7 +CiAgICAgICAgICAgIGJ0bi5jbGFzc0xpc3QudG9nZ2xlKCdhY3RpdmUnLCBidG4uZ2V0QXR0cmli +dXRlKCdkYXRhLXN0YXR1cycpID09PSBzdGF0dXMpOwogICAgICAgIH0pOwogICAgICAgIHRoaXMu +cmVuZGVyKCk7CiAgICB9LAoKICAgIHJlbmRlcigpIHsKICAgICAgICBjb25zdCBzZWFyY2ggPSAo +ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3NlYXJjaElucHV0JykudmFsdWUgfHwgJycpLnRvTG93 +ZXJDYXNlKCk7CgogICAgICAgIHRoaXMuZmlsdGVyZWREb2N1bWVudHMgPSBEcml2ZUZTLmRvY3Vt +ZW50cy5maWx0ZXIoZG9jID0+IHsKICAgICAgICAgICAgLy8gR292ZXJuYW5jZTogU2ljaHRiYXJr +ZWl0c3BydWVmdW5nCiAgICAgICAgICAgIGlmICghRHJpdmVHb3Zlcm5hbmNlLmNhblNlZURvY3Vt +ZW50KGRvYykpIHJldHVybiBmYWxzZTsKICAgICAgICAgICAgaWYgKHRoaXMuY3VycmVudENhdGVn +b3J5RmlsdGVyICE9PSAnYWxsJyAmJiBkb2Mua2F0ZWdvcmllICE9PSB0aGlzLmN1cnJlbnRDYXRl +Z29yeUZpbHRlcikgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICBpZiAodGhpcy5jdXJyZW50U3Rh +dHVzRmlsdGVyICE9PSAnYWxsJyAmJiBkb2Muc3RhdHVzICE9PSB0aGlzLmN1cnJlbnRTdGF0dXNG +aWx0ZXIpIHJldHVybiBmYWxzZTsKICAgICAgICAgICAgaWYgKHNlYXJjaCkgewogICAgICAgICAg +ICAgICAgY29uc3QgbWF0Y2ggPSAoZG9jLnRpdGVsIHx8ICcnKS50b0xvd2VyQ2FzZSgpLmluY2x1 +ZGVzKHNlYXJjaCkgfHwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRvYy5pbmhhbHQg +fHwgJycpLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoc2VhcmNoKSB8fAogICAgICAgICAgICAgICAg +ICAgICAgICAgICAgICAoZG9jLmthdGVnb3JpZSB8fCAnJykudG9Mb3dlckNhc2UoKS5pbmNsdWRl +cyhzZWFyY2gpIHx8CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkb2Muc2NobGFnd29l +cnRlciB8fCBbXSkuc29tZShrID0+IGsudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhzZWFyY2gpKTsK +ICAgICAgICAgICAgICAgIGlmICghbWF0Y2gpIHJldHVybiBmYWxzZTsKICAgICAgICAgICAgfQog +ICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICB9KTsKCiAgICAgICAgdGhpcy5yZW5kZXJM +aXN0KCk7CiAgICAgICAgaWYgKHRoaXMudGFibGVWaWV3QWN0aXZlKSB0aGlzLnJlbmRlclRhYmxl +VmlldygpOwogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkb2NDb3VudCcpLnRleHRD +b250ZW50ID0gdGhpcy5maWx0ZXJlZERvY3VtZW50cy5sZW5ndGggKyAnIC8gJyArIERyaXZlRlMu +ZG9jdW1lbnRzLmxlbmd0aDsKCiAgICAgICAgLy8gVXBkYXRlIGNvbm5lY3Rpb24gdGV4dAogICAg +ICAgIERyaXZlRlMudXBkYXRlQ29ubmVjdGlvblVJKHRydWUpOwogICAgfSwKCiAgICBhY3RpdmVM +b2Nrczoge30sICAvLyBkb2NJZCAtPiB7IHVzZXJuYW1lLCBtaW51dGVzIH0KCiAgICBhc3luYyBs +b2FkTG9ja3MoKSB7CiAgICAgICAgaWYgKERyaXZlRlMubW9kZSAhPT0gJ3NlcnZlcicpIHJldHVy +bjsKICAgICAgICB0cnkgewogICAgICAgICAgICBjb25zdCByZXMgPSBhd2FpdCBmZXRjaCgnL2Fw +aS9sb2NrcycpOwogICAgICAgICAgICBpZiAocmVzLm9rKSB7CiAgICAgICAgICAgICAgICBjb25z +dCBkYXRhID0gYXdhaXQgcmVzLmpzb24oKTsKICAgICAgICAgICAgICAgIHRoaXMuYWN0aXZlTG9j +a3MgPSB7fTsKICAgICAgICAgICAgICAgIChkYXRhLmxvY2tzIHx8IFtdKS5mb3JFYWNoKGwgPT4g +ewogICAgICAgICAgICAgICAgICAgIHRoaXMuYWN0aXZlTG9ja3NbbC5kb2NJZF0gPSB7IHVzZXJu +YW1lOiBsLnVzZXJuYW1lLCBtaW51dGVzOiBsLm1pbnV0ZXMgfTsKICAgICAgICAgICAgICAgIH0p +OwogICAgICAgICAgICB9CiAgICAgICAgfSBjYXRjaCB7fQogICAgfSwKCiAgICBfc29ydFdpdGhD +aGlsZHJlbihkb2NzKSB7CiAgICAgICAgLy8gU29ydGllcmU6IEVsdGVybmFydGlrZWwgenVlcnN0 +LCBLaW5kZXIgZGlyZWt0IGRhaGludGVyCiAgICAgICAgY29uc3QgdG9wTGV2ZWwgPSBkb2NzLmZp +bHRlcihmdW5jdGlvbihkKXsgcmV0dXJuICFkLnBhcmVudElkOyB9KTsKICAgICAgICBjb25zdCBj +aGlsZE1hcCA9IHt9OwogICAgICAgIGRvY3MuZmlsdGVyKGZ1bmN0aW9uKGQpeyByZXR1cm4gZC5w +YXJlbnRJZDsgfSkuZm9yRWFjaChmdW5jdGlvbihkKXsKICAgICAgICAgICAgaWYgKCFjaGlsZE1h +cFtkLnBhcmVudElkXSkgY2hpbGRNYXBbZC5wYXJlbnRJZF0gPSBbXTsKICAgICAgICAgICAgY2hp +bGRNYXBbZC5wYXJlbnRJZF0ucHVzaChkKTsKICAgICAgICB9KTsKICAgICAgICB2YXIgcmVzdWx0 +ID0gW107CiAgICAgICAgdG9wTGV2ZWwuZm9yRWFjaChmdW5jdGlvbihwKXsKICAgICAgICAgICAg +cmVzdWx0LnB1c2gocCk7CiAgICAgICAgICAgIGlmIChjaGlsZE1hcFtwLmlkXSkgY2hpbGRNYXBb +cC5pZF0uZm9yRWFjaChmdW5jdGlvbihjKXsgcmVzdWx0LnB1c2goYyk7IH0pOwogICAgICAgIH0p +OwogICAgICAgIC8vIFdhaXNlbi1LaW5kZXIgKEVsdGVybiBuaWNodCBpbiBkZXIgZ2VmaWx0ZXJ0 +ZW4gTGlzdGUpCiAgICAgICAgZG9jcy5maWx0ZXIoZnVuY3Rpb24oZCl7IHJldHVybiBkLnBhcmVu +dElkICYmICF0b3BMZXZlbC5maW5kKGZ1bmN0aW9uKHQpe3JldHVybiB0LmlkPT09ZC5wYXJlbnRJ +ZDt9KTsgfSkuZm9yRWFjaChmdW5jdGlvbihkKXsKICAgICAgICAgICAgaWYgKHJlc3VsdC5pbmRl +eE9mKGQpID09PSAtMSkgcmVzdWx0LnB1c2goZCk7CiAgICAgICAgfSk7CiAgICAgICAgcmV0dXJu +IHJlc3VsdDsKICAgIH0sCgogICAgcmVuZGVyTGlzdCgpIHsKICAgICAgICBjb25zdCBsaXN0Q29u +dGFpbmVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2RvY3VtZW50TGlzdCcpOwogICAgICAg +IGNvbnN0IHN0YXR1c0NvbmZpZyA9IERyaXZlRlMuY29uZmlnLnN0YXR1cyB8fCB7fTsKCiAgICAg +ICAgaWYgKHRoaXMuZmlsdGVyZWREb2N1bWVudHMubGVuZ3RoID09PSAwKSB7CiAgICAgICAgICAg +IGxpc3RDb250YWluZXIuaW5uZXJIVE1MID0gJzxkaXYgY2xhc3M9ImVtcHR5LXN0YXRlIj48cD5L +ZWluZSBEb2t1bWVudGUgZ2VmdW5kZW4uPC9wPjwvZGl2Pic7CiAgICAgICAgICAgIHJldHVybjsK +ICAgICAgICB9CgogICAgICAgIGNvbnN0IHNvcnRlZCA9IHRoaXMuX3NvcnRXaXRoQ2hpbGRyZW4o +dGhpcy5maWx0ZXJlZERvY3VtZW50cyk7CiAgICAgICAgbGlzdENvbnRhaW5lci5pbm5lckhUTUwg +PSBzb3J0ZWQubWFwKGRvYyA9PiB7CiAgICAgICAgICAgIGNvbnN0IGNmZyA9IHN0YXR1c0NvbmZp +Z1tkb2Muc3RhdHVzXSB8fCB7IGNvbG9yOiAnI2VlZScsIHRleHRDb2xvcjogJyMzMzMnLCBpY29u +OiAnJyB9OwogICAgICAgICAgICBjb25zdCBpc0FjdGl2ZSA9IHRoaXMuc2VsZWN0ZWREb2NJZCA9 +PT0gZG9jLmlkOwogICAgICAgICAgICBjb25zdCBpc0RyYWZ0ID0gZG9jLnN0YXR1cyA9PT0gJ0Vu +dHd1cmYnOwogICAgICAgICAgICBjb25zdCBoYXNNZWRpYSA9IGRvYy5tZWRpYXMgJiYgZG9jLm1l +ZGlhcy5sZW5ndGggPiAwOwogICAgICAgICAgICBjb25zdCBsb2NrID0gdGhpcy5hY3RpdmVMb2Nr +c1tkb2MuaWRdOwogICAgICAgICAgICBjb25zdCBpc0xvY2tlZCA9IGxvY2sgJiYgbG9jay51c2Vy +bmFtZSAhPT0gKERyaXZlRlMuZW52aXJvbiA/IERyaXZlRlMuZW52aXJvbi51c2VybmFtZSA6ICcn +KTsKCiAgICAgICAgICAgIC8vIFN0YXR1cy1CYWRnZTogIkZyZWlnZWdlYmVuIiBuaWNodCBhbnpl +aWdlbiAoaXN0IGRlciBOb3JtYWx6dXN0YW5kKQogICAgICAgICAgICB2YXIgc2hvd1N0YXR1cyA9 +IGRvYy5zdGF0dXMgIT09ICdGcmVpZ2VnZWJlbic7CgogICAgICAgICAgICByZXR1cm4gJzxkaXYg +Y2xhc3M9ImRvY3VtZW50LWl0ZW0nICsgKGlzQWN0aXZlID8gJyBhY3RpdmUnIDogJycpICsgKGlz +RHJhZnQgPyAnIGRyYWZ0JyA6ICcnKSArIChkb2MucGFyZW50SWQgPyAnIGNoaWxkLWFydGljbGUn +IDogJycpICsgJyIgb25jbGljaz0iRHJpdmVQb3J0YWwuc2VsZWN0RG9jdW1lbnQoXCcnICsgRHJp +dmVQb3J0YWwuZXNjYXBlQXR0cihkb2MuaWQpICsgJ1wnKSI+JyArCiAgICAgICAgICAgICAgICAn +PGRpdiBzdHlsZT0iZGlzcGxheTpmbGV4O2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuO2Fs +aWduLWl0ZW1zOmZsZXgtc3RhcnQ7Ij4nICsKICAgICAgICAgICAgICAgICAgICAnPGRpdiBzdHls +ZT0iZmxleDoxO21pbi13aWR0aDowOyI+JyArCiAgICAgICAgICAgICAgICAgICAgICAgICc8ZGl2 +IGNsYXNzPSJkb2MtaXRlbS10aXRsZSI+JyArIHRoaXMuZXNjYXBlSFRNTChkb2MudGl0ZWwpICsK +ICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpc0xvY2tlZCA/ICcgPHNwYW4gc3R5bGU9ImZv +bnQtc2l6ZToxMXB4OyBjb2xvcjojZGMzNTQ1OyBmb250LXdlaWdodDo0MDA7IiB0aXRsZT0iV2ly +ZCBiZWFyYmVpdGV0IHZvbiAnICsgdGhpcy5lc2NhcGVBdHRyKGxvY2sudXNlcm5hbWUpICsgJyI+ +W2dlc3BlcnJ0OiAnICsgdGhpcy5lc2NhcGVIVE1MKGxvY2sudXNlcm5hbWUpICsgJ108L3NwYW4+ +JyA6ICcnKSArCiAgICAgICAgICAgICAgICAgICAgICAgICc8L2Rpdj4nICsKICAgICAgICAgICAg +ICAgICAgICAgICAgJzxkaXYgY2xhc3M9ImRvYy1pdGVtLW1ldGEiPicgKwogICAgICAgICAgICAg +ICAgICAgICAgICAgICAgJzxkaXYgY2xhc3M9ImRvYy1pdGVtLWNhdGVnb3J5Ij4nICsgdGhpcy5l +c2NhcGVIVE1MKGRvYy5rYXRlZ29yaWUpICsgJzwvZGl2PicgKwogICAgICAgICAgICAgICAgICAg +ICAgICAgICAgKGhhc01lZGlhID8gJzxzcGFuIHN0eWxlPSJmb250LXNpemU6MTFweDsgY29sb3I6 +dmFyKC0tdGV4dC1tdXRlZCk7Ij4rTWVkaWVuPC9zcGFuPicgOiAnJykgKwogICAgICAgICAgICAg +ICAgICAgICAgICAnPC9kaXY+JyArCiAgICAgICAgICAgICAgICAgICAgICAgICc8ZGl2IGNsYXNz +PSJkb2MtaXRlbS1kYXRlIj4nICsgZm9ybWF0RGF0ZShkb2MuZXJzdGVsbHQpICsKICAgICAgICAg +ICAgICAgICAgICAgICAgICAgIChkb2MuYmVhcmJlaXRldFZvbiA/ICcgfCAnICsgdGhpcy5lc2Nh +cGVIVE1MKGRvYy5iZWFyYmVpdGV0Vm9uKSA6ICcnKSArCiAgICAgICAgICAgICAgICAgICAgICAg +ICc8L2Rpdj4nICsKICAgICAgICAgICAgICAgICAgICAgICAgKGRvYy5wYXJlbnRJZCA/ICc8ZGl2 +IGNsYXNzPSJkb2MtcGFyZW50LXJlZiI+4oazIFVudGVyYXJ0aWtlbDwvZGl2PicgOiAnJykgKwog +ICAgICAgICAgICAgICAgICAgICc8L2Rpdj4nICsKICAgICAgICAgICAgICAgICAgICAoc2hvd1N0 +YXR1cyA/ICc8ZGl2IGNsYXNzPSJzdGF0dXMtYmFkZ2Utc21hbGwiIHN0eWxlPSJiYWNrZ3JvdW5k +LWNvbG9yOicgKyBjZmcuY29sb3IgKyAnOyBjb2xvcjonICsgY2ZnLnRleHRDb2xvciArICc7Zmxl +eC1zaHJpbms6MDttYXJnaW4tbGVmdDo4cHg7bWFyZ2luLXRvcDoycHg7Ij4nICsgZG9jLnN0YXR1 +cyArICc8L2Rpdj4nIDogJycpICsKICAgICAgICAgICAgICAgICc8L2Rpdj4nICsKICAgICAgICAg +ICAgJzwvZGl2Pic7CiAgICAgICAgfSkuam9pbignJyk7CiAgICB9LAoKICAgIHRvZ2dsZVRhYmxl +VmlldygpIHsKICAgICAgICB0aGlzLnRhYmxlVmlld0FjdGl2ZSA9ICF0aGlzLnRhYmxlVmlld0Fj +dGl2ZTsKICAgICAgICBjb25zdCBjb250YWluZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgn +Y29udGFpbmVyJyk7CiAgICAgICAgY29uc3QgdGFibGVDb250YWluZXIgPSBkb2N1bWVudC5nZXRF +bGVtZW50QnlJZCgndGFibGVWaWV3Q29udGFpbmVyJyk7CiAgICAgICAgY29uc3QgYnRuID0gZG9j +dW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2J0blRhYmxlVmlldycpOwogICAgICAgIGlmICh0aGlzLnRh +YmxlVmlld0FjdGl2ZSkgewogICAgICAgICAgICBjb250YWluZXIuc3R5bGUuZGlzcGxheSA9ICdu +b25lJzsKICAgICAgICAgICAgdGFibGVDb250YWluZXIuY2xhc3NMaXN0LmFkZCgnYWN0aXZlJyk7 +CiAgICAgICAgICAgIGJ0bi5zdHlsZS5iYWNrZ3JvdW5kQ29sb3IgPSAndmFyKC0tdGV4dC1oZWFk +aW5nKSc7IGJ0bi5zdHlsZS5jb2xvciA9ICd3aGl0ZSc7CiAgICAgICAgICAgIHRoaXMucmVuZGVy +VGFibGVWaWV3KCk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgY29udGFpbmVyLnN0eWxl +LmRpc3BsYXkgPSAnJzsKICAgICAgICAgICAgdGFibGVDb250YWluZXIuY2xhc3NMaXN0LnJlbW92 +ZSgnYWN0aXZlJyk7CiAgICAgICAgICAgIGJ0bi5zdHlsZS5iYWNrZ3JvdW5kQ29sb3IgPSAnJzsg +YnRuLnN0eWxlLmNvbG9yID0gJyc7CiAgICAgICAgfQogICAgfSwKCiAgICBzb3J0VGFibGUoY29s +KSB7CiAgICAgICAgaWYgKHRoaXMuX3RhYmxlU29ydENvbCA9PT0gY29sKSB7CiAgICAgICAgICAg +IHRoaXMuX3RhYmxlU29ydERpciA9IHRoaXMuX3RhYmxlU29ydERpciA9PT0gJ2FzYycgPyAnZGVz +YycgOiAnYXNjJzsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICB0aGlzLl90YWJsZVNvcnRD +b2wgPSBjb2w7CiAgICAgICAgICAgIHRoaXMuX3RhYmxlU29ydERpciA9ICdhc2MnOwogICAgICAg +IH0KICAgICAgICB0aGlzLnJlbmRlclRhYmxlVmlldygpOwogICAgfSwKCiAgICBfdGFibGVTZWxl +Y3RlZDogW10sCgogICAgcmVuZGVyVGFibGVWaWV3KCkgewogICAgICAgIGNvbnN0IGRvY3MgPSB0 +aGlzLmZpbHRlcmVkRG9jdW1lbnRzOwogICAgICAgIGNvbnN0IGNvbCA9IHRoaXMuX3RhYmxlU29y +dENvbDsKICAgICAgICBjb25zdCBkaXIgPSB0aGlzLl90YWJsZVNvcnREaXIgPT09ICdhc2MnID8g +MSA6IC0xOwogICAgICAgIGNvbnN0IHNvcnRlZCA9IFsuLi5kb2NzXS5zb3J0KGZ1bmN0aW9uKGEs +IGIpIHsKICAgICAgICAgICAgdmFyIHZhLCB2YjsKICAgICAgICAgICAgaWYgKGNvbCA9PT0gJ3Nj +aGxhZ3dvZXJ0ZXInKSB7CiAgICAgICAgICAgICAgICB2YSA9IChhLnNjaGxhZ3dvZXJ0ZXIgfHwg +W10pLmpvaW4oJywnKTsgdmIgPSAoYi5zY2hsYWd3b2VydGVyIHx8IFtdKS5qb2luKCcsJyk7CiAg +ICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICB2YSA9IChhW2NvbF0gfHwgJycpOyB2 +YiA9IChiW2NvbF0gfHwgJycpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmICh0eXBlb2Yg +dmEgPT09ICdzdHJpbmcnKSByZXR1cm4gdmEubG9jYWxlQ29tcGFyZSh2YiwgJ2RlJykgKiBkaXI7 +CiAgICAgICAgICAgIHJldHVybiAodmEgLSB2YikgKiBkaXI7CiAgICAgICAgfSk7CgogICAgICAg +IGNvbnN0IHNjID0gdGhpcy5fdGFibGVTb3J0Q29sOwogICAgICAgIGNvbnN0IHNkID0gdGhpcy5f +dGFibGVTb3J0RGlyOwogICAgICAgIHZhciBjbHMgPSBmdW5jdGlvbihjKSB7IHJldHVybiBjID09 +PSBzYyA/ICcgY2xhc3M9InNvcnRlZC0nICsgc2QgKyAnIicgOiAnJzsgfTsKICAgICAgICBjb25z +dCBzdGF0dXNDb25maWcgPSBEcml2ZUZTLmNvbmZpZy5zdGF0dXMgfHwge307CiAgICAgICAgLy8g +QWRtaW4tRnVua3Rpb25lbiAoQ2hlY2tib3hlbiwgU3RpZnQpIG51ciB3ZW5uOgogICAgICAgIC8v +IDEuIFNlcnZlci1Nb2R1cyBha3RpdiAoc2VydmVyc2VpdGlnZXIgU2NodXR6IHZvcmhhbmRlbikK +ICAgICAgICAvLyAyLiBHb3Zlcm5hbmNlLURhdGVuIGdlbGFkZW4gVU5EIFVzZXIgaXN0IFNVL0ZB +CiAgICAgICAgdmFyIGhhc0dvdmVybmFuY2UgPSBEcml2ZUdvdmVybmFuY2UuZGF0YSAmJiBEcml2 +ZUdvdmVybmFuY2UuZGF0YS5zdXBlclVzZXJzOwogICAgICAgIHZhciBpc0FkbWluID0gRHJpdmVG +Uy5tb2RlID09PSAnc2VydmVyJyAmJiBoYXNHb3Zlcm5hbmNlICYmIChEcml2ZUdvdmVybmFuY2Uu +aXNTdXBlclVzZXIoKSB8fCBEcml2ZUdvdmVybmFuY2UuaXNGYWNoYXVmc2ljaHQoKSk7CiAgICAg +ICAgdGhpcy5fdGFibGVTZWxlY3RlZCA9IFtdOwoKICAgICAgICAvLyBCdWxrLUFrdGlvbnNsZWlz +dGUgKG51ciBTVS9GQSkKICAgICAgICB2YXIgaHRtbCA9ICcnOwogICAgICAgIGlmIChpc0FkbWlu +KSB7CiAgICAgICAgICAgIGh0bWwgKz0gJzxkaXYgaWQ9InRhYmxlQnVsa0JhciIgc3R5bGU9ImRp +c3BsYXk6bm9uZTtwYWRkaW5nOjhweCAxNHB4O2JhY2tncm91bmQ6dmFyKC0tdGV4dC1oZWFkaW5n +KTtjb2xvcjp3aGl0ZTtib3JkZXItcmFkaXVzOjZweDttYXJnaW4tYm90dG9tOjhweDtkaXNwbGF5 +Om5vbmU7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDoxMHB4O2ZvbnQtc2l6ZToxM3B4OyI+JyArCiAg +ICAgICAgICAgICAgICAnPHNwYW4gaWQ9InRhYmxlQnVsa0NvdW50Ij4wIGF1c2dld8OkaGx0PC9z +cGFuPicgKwogICAgICAgICAgICAgICAgJzxidXR0b24gb25jbGljaz0iRHJpdmVQb3J0YWwuYnVs +a1F1aWNrRWRpdCgpIiBzdHlsZT0icGFkZGluZzo0cHggMTJweDtib3JkZXI6MXB4IHNvbGlkIHdo +aXRlO2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7Y29sb3I6d2hpdGU7Ym9yZGVyLXJhZGl1czo0cHg7 +Y3Vyc29yOnBvaW50ZXI7Zm9udC1zaXplOjEycHg7Ij5TY2huZWxsYmVhcmJlaXR1bmc8L2J1dHRv +bj4nICsKICAgICAgICAgICAgICAgICc8YnV0dG9uIG9uY2xpY2s9IkRyaXZlUG9ydGFsLmJ1bGtE +ZWxldGUoKSIgc3R5bGU9InBhZGRpbmc6NHB4IDEycHg7Ym9yZGVyOjFweCBzb2xpZCAjZjg4O2Jh +Y2tncm91bmQ6dHJhbnNwYXJlbnQ7Y29sb3I6I2ZhYTtib3JkZXItcmFkaXVzOjRweDtjdXJzb3I6 +cG9pbnRlcjtmb250LXNpemU6MTJweDsiPkzDtnNjaGVuPC9idXR0b24+JyArCiAgICAgICAgICAg +ICc8L2Rpdj4nOwogICAgICAgIH0KCiAgICAgICAgaHRtbCArPSAnPHRhYmxlIGNsYXNzPSJkcml2 +ZS10YWJsZSI+PHRoZWFkPjx0cj4nICsKICAgICAgICAgICAgKGlzQWRtaW4gPyAnPHRoIHN0eWxl +PSJ3aWR0aDozMHB4OyI+PGlucHV0IHR5cGU9ImNoZWNrYm94IiBpZD0idGFibGVTZWxlY3RBbGwi +IG9uY2hhbmdlPSJEcml2ZVBvcnRhbC50YWJsZVRvZ2dsZUFsbCh0aGlzLmNoZWNrZWQpIiB0aXRs +ZT0iQWxsZSBhdXN3w6RobGVuIj48L3RoPicgOiAnJykgKwogICAgICAgICAgICAnPHRoJyArIGNs +cygndGl0ZWwnKSArICcgb25jbGljaz0iRHJpdmVQb3J0YWwuc29ydFRhYmxlKFwndGl0ZWxcJyki +PlRpdGVsPC90aD4nICsKICAgICAgICAgICAgJzx0aCcgKyBjbHMoJ2thdGVnb3JpZScpICsgJyBv +bmNsaWNrPSJEcml2ZVBvcnRhbC5zb3J0VGFibGUoXCdrYXRlZ29yaWVcJykiPkthdGVnb3JpZTwv +dGg+JyArCiAgICAgICAgICAgICc8dGgnICsgY2xzKCdzdGF0dXMnKSArICcgb25jbGljaz0iRHJp +dmVQb3J0YWwuc29ydFRhYmxlKFwnc3RhdHVzXCcpIj5TdGF0dXM8L3RoPicgKwogICAgICAgICAg +ICAnPHRoJyArIGNscygnZXJzdGVsbHRWb24nKSArICcgb25jbGljaz0iRHJpdmVQb3J0YWwuc29y +dFRhYmxlKFwnZXJzdGVsbHRWb25cJykiPkVyc3RlbGxlcjwvdGg+JyArCiAgICAgICAgICAgICc8 +dGgnICsgY2xzKCdlcnN0ZWxsdCcpICsgJyBvbmNsaWNrPSJEcml2ZVBvcnRhbC5zb3J0VGFibGUo +XCdlcnN0ZWxsdFwnKSI+RXJzdGVsbHQ8L3RoPicgKwogICAgICAgICAgICAnPHRoJyArIGNscygn +Z2VhZW5kZXJ0JykgKyAnIG9uY2xpY2s9IkRyaXZlUG9ydGFsLnNvcnRUYWJsZShcJ2dlYWVuZGVy +dFwnKSI+R2XDpG5kZXJ0PC90aD4nICsKICAgICAgICAgICAgJzx0aCcgKyBjbHMoJ3ZlcnNpb24n +KSArICcgb25jbGljaz0iRHJpdmVQb3J0YWwuc29ydFRhYmxlKFwndmVyc2lvblwnKSI+VmVyc2lv +bjwvdGg+JyArCiAgICAgICAgICAgIChpc0FkbWluID8gJzx0aCBzdHlsZT0id2lkdGg6NDBweDsi +PjwvdGg+JyA6ICcnKSArCiAgICAgICAgJzwvdHI+PC90aGVhZD48dGJvZHk+JzsKCiAgICAgICAg +c29ydGVkLmZvckVhY2goZnVuY3Rpb24oZG9jKSB7CiAgICAgICAgICAgIHZhciBjZmcgPSBzdGF0 +dXNDb25maWdbZG9jLnN0YXR1c10gfHwgeyBjb2xvcjogJyNlZWUnLCB0ZXh0Q29sb3I6ICcjMzMz +JywgaWNvbjogJycgfTsKICAgICAgICAgICAgaHRtbCArPSAnPHRyPicgKwogICAgICAgICAgICAg +ICAgKGlzQWRtaW4gPyAnPHRkIG9uY2xpY2s9ImV2ZW50LnN0b3BQcm9wYWdhdGlvbigpIj48aW5w +dXQgdHlwZT0iY2hlY2tib3giIGNsYXNzPSJ0YWJsZS1yb3ctY2IiIHZhbHVlPSInICsgRHJpdmVQ +b3J0YWwuZXNjYXBlQXR0cihkb2MuaWQpICsgJyIgb25jaGFuZ2U9IkRyaXZlUG9ydGFsLnRhYmxl +U2VsZWN0aW9uQ2hhbmdlZCgpIj48L3RkPicgOiAnJykgKwogICAgICAgICAgICAgICAgJzx0ZCBv +bmNsaWNrPSJEcml2ZVBvcnRhbC5fdGFibGVPcGVuRG9jKFwnJyArIERyaXZlUG9ydGFsLmVzY2Fw +ZUF0dHIoZG9jLmlkKSArICdcJyk7IiBzdHlsZT0iY3Vyc29yOnBvaW50ZXI7Ij48c3Ryb25nPicg +KyBEcml2ZVBvcnRhbC5lc2NhcGVIVE1MKGRvYy50aXRlbCkgKyAnPC9zdHJvbmc+PC90ZD4nICsK +ICAgICAgICAgICAgICAgICc8dGQ+JyArIERyaXZlUG9ydGFsLmVzY2FwZUhUTUwoZG9jLmthdGVn +b3JpZSkgKyAnPC90ZD4nICsKICAgICAgICAgICAgICAgICc8dGQ+PHNwYW4gY2xhc3M9InN0YXR1 +cy1iYWRnZS1zbWFsbCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6JyArIGNmZy5jb2xvciArICc7 +Y29sb3I6JyArIGNmZy50ZXh0Q29sb3IgKyAnOyI+JyArIGRvYy5zdGF0dXMgKyAnPC9zcGFuPjwv +dGQ+JyArCiAgICAgICAgICAgICAgICAnPHRkPicgKyBEcml2ZVBvcnRhbC5lc2NhcGVIVE1MKGRv +Yy5lcnN0ZWxsdFZvbiB8fCAnLScpICsgJzwvdGQ+JyArCiAgICAgICAgICAgICAgICAnPHRkPicg +KyBmb3JtYXREYXRlKGRvYy5lcnN0ZWxsdCkgKyAnPC90ZD4nICsKICAgICAgICAgICAgICAgICc8 +dGQ+JyArIGZvcm1hdERhdGUoZG9jLmdlYWVuZGVydCkgKyAnPC90ZD4nICsKICAgICAgICAgICAg +ICAgICc8dGQ+JyArIERyaXZlUG9ydGFsLmVzY2FwZUhUTUwoZG9jLnZlcnNpb24gfHwgJy0nKSAr +ICc8L3RkPicgKwogICAgICAgICAgICAgICAgKGlzQWRtaW4gPyAnPHRkIG9uY2xpY2s9ImV2ZW50 +LnN0b3BQcm9wYWdhdGlvbigpIj48YnV0dG9uIG9uY2xpY2s9IkRyaXZlUG9ydGFsLnF1aWNrRWRp +dFNpbmdsZShcJycgKyBEcml2ZVBvcnRhbC5lc2NhcGVBdHRyKGRvYy5pZCkgKyAnXCcpIiBzdHls +ZT0icGFkZGluZzoycHggOHB4O2JvcmRlcjoxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG9yKTti +YWNrZ3JvdW5kOnZhcigtLWJnLWNhcmQtYWx0KTtib3JkZXItcmFkaXVzOjNweDtjdXJzb3I6cG9p +bnRlcjtmb250LXNpemU6MTFweDtjb2xvcjp2YXIoLS10ZXh0LXNlY29uZGFyeSk7IiB0aXRsZT0i +U2NobmVsbGJlYXJiZWl0dW5nIj7inI48L2J1dHRvbj48L3RkPicgOiAnJykgKwogICAgICAgICAg +ICAnPC90cj4nOwogICAgICAgIH0pOwogICAgICAgIGh0bWwgKz0gJzwvdGJvZHk+PC90YWJsZT4n +OwogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0YWJsZVZpZXdDb250YWluZXInKS5p +bm5lckhUTUwgPSBodG1sOwogICAgfSwKCiAgICBfdGFibGVPcGVuRG9jKGRvY0lkKSB7CiAgICAg +ICAgdGhpcy50YWJsZVZpZXdBY3RpdmUgPSBmYWxzZTsKICAgICAgICBkb2N1bWVudC5nZXRFbGVt +ZW50QnlJZCgnY29udGFpbmVyJykuc3R5bGUuZGlzcGxheSA9ICcnOwogICAgICAgIGRvY3VtZW50 +LmdldEVsZW1lbnRCeUlkKCd0YWJsZVZpZXdDb250YWluZXInKS5jbGFzc0xpc3QucmVtb3ZlKCdh +Y3RpdmUnKTsKICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYnRuVGFibGVWaWV3Jyku +c3R5bGUuYmFja2dyb3VuZENvbG9yID0gJyc7CiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5 +SWQoJ2J0blRhYmxlVmlldycpLnN0eWxlLmNvbG9yID0gJyc7CiAgICAgICAgdGhpcy5zZWxlY3RE +b2N1bWVudChkb2NJZCk7CiAgICB9LAoKICAgIHRhYmxlVG9nZ2xlQWxsKGNoZWNrZWQpIHsKICAg +ICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcudGFibGUtcm93LWNiJykuZm9yRWFjaChm +dW5jdGlvbihjYikgeyBjYi5jaGVja2VkID0gY2hlY2tlZDsgfSk7CiAgICAgICAgdGhpcy50YWJs +ZVNlbGVjdGlvbkNoYW5nZWQoKTsKICAgIH0sCgogICAgdGFibGVTZWxlY3Rpb25DaGFuZ2VkKCkg +ewogICAgICAgIHZhciBzZWxlY3RlZCA9IFtdOwogICAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0 +b3JBbGwoJy50YWJsZS1yb3ctY2I6Y2hlY2tlZCcpLmZvckVhY2goZnVuY3Rpb24oY2IpIHsgc2Vs +ZWN0ZWQucHVzaChjYi52YWx1ZSk7IH0pOwogICAgICAgIHRoaXMuX3RhYmxlU2VsZWN0ZWQgPSBz +ZWxlY3RlZDsKICAgICAgICB2YXIgYmFyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RhYmxl +QnVsa0JhcicpOwogICAgICAgIGlmIChiYXIpIHsKICAgICAgICAgICAgYmFyLnN0eWxlLmRpc3Bs +YXkgPSBzZWxlY3RlZC5sZW5ndGggPiAwID8gJ2ZsZXgnIDogJ25vbmUnOwogICAgICAgICAgICBk +b2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGFibGVCdWxrQ291bnQnKS50ZXh0Q29udGVudCA9IHNl +bGVjdGVkLmxlbmd0aCArICcgYXVzZ2V3w6RobHQnOwogICAgICAgIH0KICAgIH0sCgogICAgYnVs +a1F1aWNrRWRpdCgpIHsKICAgICAgICBpZiAodGhpcy5fdGFibGVTZWxlY3RlZC5sZW5ndGggPT09 +IDApIHJldHVybjsKICAgICAgICB2YXIgZG9jcyA9IHRoaXMuX3RhYmxlU2VsZWN0ZWQubWFwKGZ1 +bmN0aW9uKGlkKSB7IHJldHVybiBEcml2ZUZTLmRvY3VtZW50cy5maW5kKGZ1bmN0aW9uKGQpIHsg +cmV0dXJuIGQuaWQgPT09IGlkOyB9KTsgfSkuZmlsdGVyKEJvb2xlYW4pOwogICAgICAgIHZhciBr +YXRlZ29yaWVuID0gRHJpdmVGUy5jb25maWcua2F0ZWdvcmllbiB8fCBbXTsKICAgICAgICB2YXIg +c3RhdHVzTGlzdCA9IE9iamVjdC5rZXlzKERyaXZlRlMuY29uZmlnLnN0YXR1cyB8fCB7fSk7Cgog +ICAgICAgIHZhciBtb2RhbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwogICAgICAg +IG1vZGFsLnN0eWxlLmNzc1RleHQgPSAncG9zaXRpb246Zml4ZWQ7dG9wOjA7bGVmdDowO3dpZHRo +OjEwMCU7aGVpZ2h0OjEwMCU7YmFja2dyb3VuZDpyZ2JhKDAsMCwwLDAuNSk7ei1pbmRleDoxMDUw +MDtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7 +JzsKICAgICAgICBtb2RhbC5vbmNsaWNrID0gZnVuY3Rpb24oZSkgeyBpZiAoZS50YXJnZXQgPT09 +IG1vZGFsKSBtb2RhbC5yZW1vdmUoKTsgfTsKCiAgICAgICAgdmFyIGlucHV0U3R5bGUgPSAnd2lk +dGg6MTAwJTtwYWRkaW5nOjZweCAxMHB4O2JvcmRlcjoxcHggc29saWQgdmFyKC0tYm9yZGVyLWNv +bG9yKTtib3JkZXItcmFkaXVzOjRweDtmb250LXNpemU6MTNweDtiYWNrZ3JvdW5kOnZhcigtLWJn +LWlucHV0KTtjb2xvcjp2YXIoLS10ZXh0LXByaW1hcnkpOyc7CgogICAgICAgIHZhciBodG1sID0g +JzxkaXYgc3R5bGU9ImJhY2tncm91bmQ6dmFyKC0tYmctY2FyZCk7Ym9yZGVyLXJhZGl1czoxMHB4 +O3BhZGRpbmc6MjBweCAyNHB4O21heC13aWR0aDo1MDBweDt3aWR0aDo5MCU7Ym94LXNoYWRvdzow +IDhweCAzMnB4IHJnYmEoMCwwLDAsMC4zKTttYXgtaGVpZ2h0Ojg1dmg7b3ZlcmZsb3cteTphdXRv +OyI+JyArCiAgICAgICAgICAgICc8aDMgc3R5bGU9ImNvbG9yOnZhcigtLXRleHQtaGVhZGluZyk7 +bWFyZ2luLWJvdHRvbTo2cHg7Ij5TY2huZWxsYmVhcmJlaXR1bmc8L2gzPicgKwogICAgICAgICAg +ICAnPHAgc3R5bGU9ImZvbnQtc2l6ZToxMnB4O2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpO21hcmdp +bi1ib3R0b206MTRweDsiPicgKyBkb2NzLmxlbmd0aCArICcgQXJ0aWtlbCBhdXNnZXfDpGhsdC4g +TnVyIGF1c2dlZsO8bGx0ZSBGZWxkZXIgd2VyZGVuIGdlw6RuZGVydC48L3A+JyArCgogICAgICAg +ICAgICAnPGRpdiBzdHlsZT0ibWFyZ2luLWJvdHRvbToxMHB4OyI+PGxhYmVsIHN0eWxlPSJmb250 +LXNpemU6MTJweDtmb250LXdlaWdodDo2MDA7Y29sb3I6dmFyKC0tdGV4dC1zZWNvbmRhcnkpO2Rp +c3BsYXk6YmxvY2s7bWFyZ2luLWJvdHRvbTozcHg7Ij5LYXRlZ29yaWUgw6RuZGVybjwvbGFiZWw+ +JyArCiAgICAgICAgICAgICc8c2VsZWN0IGlkPSJidWxrS2F0ZWdvcmllIiBzdHlsZT0iJyArIGlu +cHV0U3R5bGUgKyAnIj48b3B0aW9uIHZhbHVlPSIiPuKAlCBOaWNodCDDpG5kZXJuIOKAlDwvb3B0 +aW9uPic7CiAgICAgICAga2F0ZWdvcmllbi5mb3JFYWNoKGZ1bmN0aW9uKGspIHsgaHRtbCArPSAn +PG9wdGlvbiB2YWx1ZT0iJyArIERyaXZlUG9ydGFsLmVzY2FwZUF0dHIoaykgKyAnIj4nICsgRHJp +dmVQb3J0YWwuZXNjYXBlSFRNTChrKSArICc8L29wdGlvbj4nOyB9KTsKICAgICAgICBodG1sICs9 +ICc8L3NlbGVjdD48L2Rpdj4nICsKCiAgICAgICAgICAgICc8ZGl2IHN0eWxlPSJtYXJnaW4tYm90 +dG9tOjEwcHg7Ij48bGFiZWwgc3R5bGU9ImZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjYwMDtj +b2xvcjp2YXIoLS10ZXh0LXNlY29uZGFyeSk7ZGlzcGxheTpibG9jazttYXJnaW4tYm90dG9tOjNw +eDsiPlN0YXR1cyDDpG5kZXJuPC9sYWJlbD4nICsKICAgICAgICAgICAgJzxzZWxlY3QgaWQ9ImJ1 +bGtTdGF0dXMiIHN0eWxlPSInICsgaW5wdXRTdHlsZSArICciPjxvcHRpb24gdmFsdWU9IiI+4oCU +IE5pY2h0IMOkbmRlcm4g4oCUPC9vcHRpb24+JzsKICAgICAgICBzdGF0dXNMaXN0LmZvckVhY2go +ZnVuY3Rpb24ocykgeyBodG1sICs9ICc8b3B0aW9uIHZhbHVlPSInICsgRHJpdmVQb3J0YWwuZXNj +YXBlQXR0cihzKSArICciPicgKyBEcml2ZVBvcnRhbC5lc2NhcGVIVE1MKHMpICsgJzwvb3B0aW9u +Pic7IH0pOwogICAgICAgIGh0bWwgKz0gJzwvc2VsZWN0PjwvZGl2PicgKwoKICAgICAgICAgICAg +JzxkaXYgc3R5bGU9Im1hcmdpbi1ib3R0b206MTBweDsiPjxsYWJlbCBzdHlsZT0iZm9udC1zaXpl +OjEycHg7Zm9udC13ZWlnaHQ6NjAwO2NvbG9yOnZhcigtLXRleHQtc2Vjb25kYXJ5KTtkaXNwbGF5 +OmJsb2NrO21hcmdpbi1ib3R0b206M3B4OyI+U2NobGFnd29ydCBoaW56dWbDvGdlbjwvbGFiZWw+ +JyArCiAgICAgICAgICAgICc8aW5wdXQgdHlwZT0idGV4dCIgaWQ9ImJ1bGtBZGRUYWciIHBsYWNl +aG9sZGVyPSJOZXVlcyBTY2hsYWd3b3J0Li4uIiBzdHlsZT0iJyArIGlucHV0U3R5bGUgKyAnIj48 +L2Rpdj4nICsKCiAgICAgICAgICAgICc8ZGl2IHN0eWxlPSJtYXJnaW4tYm90dG9tOjEwcHg7Ij48 +bGFiZWwgc3R5bGU9ImZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjYwMDtjb2xvcjp2YXIoLS10 +ZXh0LXNlY29uZGFyeSk7ZGlzcGxheTpibG9jazttYXJnaW4tYm90dG9tOjNweDsiPlNjaGxhZ3dv +cnQgZW50ZmVybmVuPC9sYWJlbD4nICsKICAgICAgICAgICAgJzxpbnB1dCB0eXBlPSJ0ZXh0IiBp +ZD0iYnVsa1JlbW92ZVRhZyIgcGxhY2Vob2xkZXI9Ilp1IGVudGZlcm5lbmRlcyBTY2hsYWd3b3J0 +Li4uIiBzdHlsZT0iJyArIGlucHV0U3R5bGUgKyAnIj48L2Rpdj4nICsKCiAgICAgICAgICAgICc8 +ZGl2IHN0eWxlPSJkaXNwbGF5OmZsZXg7Z2FwOjhweDtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1lbmQ7 +bWFyZ2luLXRvcDoxNHB4OyI+JyArCiAgICAgICAgICAgICAgICAnPGJ1dHRvbiBvbmNsaWNrPSJ0 +aGlzLmNsb3Nlc3QoXCdkaXZbc3R5bGVdXCcpLnBhcmVudEVsZW1lbnQucmVtb3ZlKCkiIHN0eWxl +PSJwYWRkaW5nOjhweCAxNnB4O2JvcmRlci1yYWRpdXM6NHB4O2JvcmRlcjoxcHggc29saWQgdmFy +KC0tYm9yZGVyLWNvbG9yKTtiYWNrZ3JvdW5kOnZhcigtLWJnLWNhcmQpO2NvbG9yOnZhcigtLXRl +eHQtcHJpbWFyeSk7Y3Vyc29yOnBvaW50ZXI7Ij5BYmJyZWNoZW48L2J1dHRvbj4nICsKICAgICAg +ICAgICAgICAgICc8YnV0dG9uIG9uY2xpY2s9IkRyaXZlUG9ydGFsLl9jb25maXJtQnVsa0VkaXQo +KSIgc3R5bGU9InBhZGRpbmc6OHB4IDE2cHg7Ym9yZGVyLXJhZGl1czo0cHg7Ym9yZGVyOm5vbmU7 +YmFja2dyb3VuZDp2YXIoLS10ZXh0LWhlYWRpbmcpO2NvbG9yOndoaXRlO2N1cnNvcjpwb2ludGVy +O2ZvbnQtd2VpZ2h0OjYwMDsiPsOEbmRlcnVuZ2VuIGFud2VuZGVuPC9idXR0b24+JyArCiAgICAg +ICAgICAgICc8L2Rpdj48L2Rpdj4nOwoKICAgICAgICBtb2RhbC5pbm5lckhUTUwgPSBodG1sOwog +ICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQobW9kYWwpOwogICAgfSwKCiAgICBhc3lu +YyBfY29uZmlybUJ1bGtFZGl0KCkgewogICAgICAgIHZhciBuZXdLYXQgPSBkb2N1bWVudC5nZXRF +bGVtZW50QnlJZCgnYnVsa0thdGVnb3JpZScpLnZhbHVlOwogICAgICAgIHZhciBuZXdTdGF0dXMg +PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYnVsa1N0YXR1cycpLnZhbHVlOwogICAgICAgIHZh +ciBhZGRUYWcgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYnVsa0FkZFRhZycpLnZhbHVlLnRy +aW0oKTsKICAgICAgICB2YXIgcmVtb3ZlVGFnID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2J1 +bGtSZW1vdmVUYWcnKS52YWx1ZS50cmltKCk7CgogICAgICAgIGlmICghbmV3S2F0ICYmICFuZXdT +dGF0dXMgJiYgIWFkZFRhZyAmJiAhcmVtb3ZlVGFnKSB7CiAgICAgICAgICAgIHNob3dUb2FzdCgn +Qml0dGUgbWluZGVzdGVucyBlaW4gRmVsZCBhdXNmw7xsbGVuJywgJ3dhcm5pbmcnKTsKICAgICAg +ICAgICAgcmV0dXJuOwogICAgICAgIH0KCiAgICAgICAgLy8gTW9kYWwgc2NobGllc3NlbgogICAg +ICAgIHZhciBlbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdidWxrS2F0ZWdvcmllJyk7CiAg +ICAgICAgaWYgKGVsKSB7IHZhciBtID0gZWw7IHdoaWxlIChtLnBhcmVudEVsZW1lbnQgIT09IGRv +Y3VtZW50LmJvZHkpIG0gPSBtLnBhcmVudEVsZW1lbnQ7IG0ucmVtb3ZlKCk7IH0KCiAgICAgICAg +dmFyIGNvdW50ID0gMDsKICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuX3RhYmxlU2Vs +ZWN0ZWQubGVuZ3RoOyBpKyspIHsKICAgICAgICAgICAgdmFyIGRvYyA9IERyaXZlRlMuZG9jdW1l +bnRzLmZpbmQoZnVuY3Rpb24oZCkgeyByZXR1cm4gZC5pZCA9PT0gRHJpdmVQb3J0YWwuX3RhYmxl +U2VsZWN0ZWRbaV07IH0pOwogICAgICAgICAgICBpZiAoIWRvYykgY29udGludWU7CiAgICAgICAg +ICAgIGlmIChuZXdLYXQpIGRvYy5rYXRlZ29yaWUgPSBuZXdLYXQ7CiAgICAgICAgICAgIGlmIChu +ZXdTdGF0dXMpIHsKICAgICAgICAgICAgICAgIGRvYy52ZXJzaW9uID0gY2FsY3VsYXRlVmVyc2lv +bihkb2MsIGRvYy5pbmhhbHQsIGRvYy5pbmhhbHQsIG5ld1N0YXR1cyk7CiAgICAgICAgICAgICAg +ICBkb2Muc3RhdHVzID0gbmV3U3RhdHVzOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmIChh +ZGRUYWcpIHsKICAgICAgICAgICAgICAgIGlmICghZG9jLnNjaGxhZ3dvZXJ0ZXIpIGRvYy5zY2hs +YWd3b2VydGVyID0gW107CiAgICAgICAgICAgICAgICBpZiAoIWRvYy5zY2hsYWd3b2VydGVyLmlu +Y2x1ZGVzKGFkZFRhZykpIGRvYy5zY2hsYWd3b2VydGVyLnB1c2goYWRkVGFnKTsKICAgICAgICAg +ICAgfQogICAgICAgICAgICBpZiAocmVtb3ZlVGFnICYmIGRvYy5zY2hsYWd3b2VydGVyKSB7CiAg +ICAgICAgICAgICAgICBkb2Muc2NobGFnd29lcnRlciA9IGRvYy5zY2hsYWd3b2VydGVyLmZpbHRl +cihmdW5jdGlvbihrKSB7IHJldHVybiBrICE9PSByZW1vdmVUYWc7IH0pOwogICAgICAgICAgICB9 +CiAgICAgICAgICAgIGF3YWl0IERyaXZlRlMuc2F2ZURvY3VtZW50KGRvYyk7CiAgICAgICAgICAg +IGNvdW50Kys7CiAgICAgICAgfQogICAgICAgIHNob3dUb2FzdChjb3VudCArICcgQXJ0aWtlbCBh +a3R1YWxpc2llcnQnLCAnc3VjY2VzcycpOwogICAgICAgIHRoaXMucmVuZGVyKCk7CiAgICAgICAg +dGhpcy5yZW5kZXJUYWJsZVZpZXcoKTsKICAgIH0sCgogICAgYnVsa0RlbGV0ZSgpIHsKICAgICAg +ICB2YXIgY291bnQgPSB0aGlzLl90YWJsZVNlbGVjdGVkLmxlbmd0aDsKICAgICAgICBpZiAoY291 +bnQgPT09IDApIHJldHVybjsKCiAgICAgICAgdmFyIG1vZGFsID0gZG9jdW1lbnQuY3JlYXRlRWxl +bWVudCgnZGl2Jyk7CiAgICAgICAgbW9kYWwuc3R5bGUuY3NzVGV4dCA9ICdwb3NpdGlvbjpmaXhl +ZDt0b3A6MDtsZWZ0OjA7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTtiYWNrZ3JvdW5kOnJnYmEoMCww +LDAsMC41KTt6LWluZGV4OjEwNTAwO2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVz +dGlmeS1jb250ZW50OmNlbnRlcjsnOwogICAgICAgIG1vZGFsLm9uY2xpY2sgPSBmdW5jdGlvbihl +KSB7IGlmIChlLnRhcmdldCA9PT0gbW9kYWwpIG1vZGFsLnJlbW92ZSgpOyB9OwogICAgICAgIG1v +ZGFsLmlubmVySFRNTCA9CiAgICAgICAgICAgICc8ZGl2IHN0eWxlPSJiYWNrZ3JvdW5kOnZhcigt +LWJnLWNhcmQpO2JvcmRlci1yYWRpdXM6MTBweDtwYWRkaW5nOjI0cHggMjhweDttYXgtd2lkdGg6 +NDIwcHg7d2lkdGg6OTAlO2JveC1zaGFkb3c6MCA4cHggMzJweCByZ2JhKDAsMCwwLDAuMyk7Ij4n +ICsKICAgICAgICAgICAgICAgICc8aDMgc3R5bGU9ImNvbG9yOiNkYzM1NDU7bWFyZ2luLWJvdHRv +bToxMHB4OyI+JyArIGNvdW50ICsgJyBBcnRpa2VsIGzDtnNjaGVuPzwvaDM+JyArCiAgICAgICAg +ICAgICAgICAnPHAgc3R5bGU9ImNvbG9yOnZhcigtLXRleHQtcHJpbWFyeSk7Zm9udC1zaXplOjE0 +cHg7bGluZS1oZWlnaHQ6MS43O21hcmdpbi1ib3R0b206MTRweDsiPicgKwogICAgICAgICAgICAg +ICAgICAgICdEaWUgYXVzZ2V3w6RobHRlbiBBcnRpa2VsIHdlcmRlbiBpbiBkZW4gUGFwaWVya29y +YiB2ZXJzY2hvYmVuIHVuZCBrw7ZubmVuIDI4IFRhZ2UgbGFuZyB3aWVkZXJoZXJnZXN0ZWxsdCB3 +ZXJkZW4uJyArCiAgICAgICAgICAgICAgICAnPC9wPicgKwogICAgICAgICAgICAgICAgJzxsYWJl +bCBzdHlsZT0iZm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6NjAwO2NvbG9yOnZhcigtLXRleHQt +c2Vjb25kYXJ5KTtkaXNwbGF5OmJsb2NrO21hcmdpbi1ib3R0b206NHB4OyI+TlctS2VubnVuZyB6 +dXIgQmVzdMOkdGlndW5nPC9sYWJlbD4nICsKICAgICAgICAgICAgICAgICc8aW5wdXQgdHlwZT0i +dGV4dCIgaWQ9ImJ1bGtEZWxldGVOVyIgcGxhY2Vob2xkZXI9Ik5XLUtlbm51bmcgZWluZ2ViZW4u +Li4iIHN0eWxlPSJ3aWR0aDoxMDAlO3BhZGRpbmc6OHB4IDEwcHg7Ym9yZGVyOjFweCBzb2xpZCB2 +YXIoLS1ib3JkZXItY29sb3IpO2JvcmRlci1yYWRpdXM6NHB4O2ZvbnQtc2l6ZToxNHB4O2JhY2tn +cm91bmQ6dmFyKC0tYmctaW5wdXQpO2NvbG9yOnZhcigtLXRleHQtcHJpbWFyeSk7bWFyZ2luLWJv +dHRvbToxNHB4OyI+JyArCiAgICAgICAgICAgICAgICAnPGRpdiBzdHlsZT0iZGlzcGxheTpmbGV4 +O2dhcDo4cHg7anVzdGlmeS1jb250ZW50OmZsZXgtZW5kOyI+JyArCiAgICAgICAgICAgICAgICAg +ICAgJzxidXR0b24gb25jbGljaz0idGhpcy5jbG9zZXN0KFwnZGl2W3N0eWxlXVwnKS5wYXJlbnRF +bGVtZW50LnJlbW92ZSgpIiBzdHlsZT0icGFkZGluZzo4cHggMTZweDtib3JkZXItcmFkaXVzOjRw +eDtib3JkZXI6MXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvcik7YmFja2dyb3VuZDp2YXIoLS1i +Zy1jYXJkKTtjb2xvcjp2YXIoLS10ZXh0LXByaW1hcnkpO2N1cnNvcjpwb2ludGVyOyI+QWJicmVj +aGVuPC9idXR0b24+JyArCiAgICAgICAgICAgICAgICAgICAgJzxidXR0b24gb25jbGljaz0iRHJp +dmVQb3J0YWwuX2NvbmZpcm1CdWxrRGVsZXRlKCkiIHN0eWxlPSJwYWRkaW5nOjhweCAxNnB4O2Jv +cmRlci1yYWRpdXM6NHB4O2JvcmRlcjpub25lO2JhY2tncm91bmQ6I2RjMzU0NTtjb2xvcjp3aGl0 +ZTtjdXJzb3I6cG9pbnRlcjtmb250LXdlaWdodDo2MDA7Ij5Mw7ZzY2hlbjwvYnV0dG9uPicgKwog +ICAgICAgICAgICAgICAgJzwvZGl2PicgKwogICAgICAgICAgICAnPC9kaXY+JzsKICAgICAgICBk +b2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKG1vZGFsKTsKICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0 +aW9uKCkgeyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYnVsa0RlbGV0ZU5XJykuZm9jdXMoKTsg +fSwgNTApOwogICAgfSwKCiAgICBxdWlja0VkaXRTaW5nbGUoZG9jSWQpIHsKICAgICAgICB2YXIg +ZG9jID0gRHJpdmVGUy5kb2N1bWVudHMuZmluZChmdW5jdGlvbihkKSB7IHJldHVybiBkLmlkID09 +PSBkb2NJZDsgfSk7CiAgICAgICAgaWYgKCFkb2MpIHJldHVybjsKICAgICAgICB2YXIga2F0ZWdv +cmllbiA9IERyaXZlRlMuY29uZmlnLmthdGVnb3JpZW4gfHwgW107CiAgICAgICAgdmFyIHN0YXR1 +c0xpc3QgPSBPYmplY3Qua2V5cyhEcml2ZUZTLmNvbmZpZy5zdGF0dXMgfHwge30pOwogICAgICAg +IHZhciBpbnB1dFN0eWxlID0gJ3dpZHRoOjEwMCU7cGFkZGluZzo2cHggMTBweDtib3JkZXI6MXB4 +IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvcik7Ym9yZGVyLXJhZGl1czo0cHg7Zm9udC1zaXplOjEz +cHg7YmFja2dyb3VuZDp2YXIoLS1iZy1pbnB1dCk7Y29sb3I6dmFyKC0tdGV4dC1wcmltYXJ5KTsn +OwoKICAgICAgICB2YXIgbW9kYWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKICAg +ICAgICBtb2RhbC5zdHlsZS5jc3NUZXh0ID0gJ3Bvc2l0aW9uOmZpeGVkO3RvcDowO2xlZnQ6MDt3 +aWR0aDoxMDAlO2hlaWdodDoxMDAlO2JhY2tncm91bmQ6cmdiYSgwLDAsMCwwLjUpO3otaW5kZXg6 +MTA1MDA7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2Vu +dGVyOyc7CiAgICAgICAgbW9kYWwub25jbGljayA9IGZ1bmN0aW9uKGUpIHsgaWYgKGUudGFyZ2V0 +ID09PSBtb2RhbCkgbW9kYWwucmVtb3ZlKCk7IH07CgogICAgICAgIHZhciBodG1sID0gJzxkaXYg +c3R5bGU9ImJhY2tncm91bmQ6dmFyKC0tYmctY2FyZCk7Ym9yZGVyLXJhZGl1czoxMHB4O3BhZGRp +bmc6MjBweCAyNHB4O21heC13aWR0aDo0ODBweDt3aWR0aDo5MCU7Ym94LXNoYWRvdzowIDhweCAz +MnB4IHJnYmEoMCwwLDAsMC4zKTsiPicgKwogICAgICAgICAgICAnPGgzIHN0eWxlPSJjb2xvcjp2 +YXIoLS10ZXh0LWhlYWRpbmcpO21hcmdpbi1ib3R0b206MTRweDsiPlNjaG5lbGxiZWFyYmVpdHVu +ZzwvaDM+JyArCgogICAgICAgICAgICAnPGRpdiBzdHlsZT0ibWFyZ2luLWJvdHRvbTo4cHg7Ij48 +bGFiZWwgc3R5bGU9ImZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjYwMDtjb2xvcjp2YXIoLS10 +ZXh0LXNlY29uZGFyeSk7ZGlzcGxheTpibG9jazttYXJnaW4tYm90dG9tOjNweDsiPlRpdGVsPC9s +YWJlbD4nICsKICAgICAgICAgICAgJzxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0ic3FlVGl0ZWwiIHZh +bHVlPSInICsgRHJpdmVQb3J0YWwuZXNjYXBlQXR0cihkb2MudGl0ZWwpICsgJyIgc3R5bGU9Iicg +KyBpbnB1dFN0eWxlICsgJyI+PC9kaXY+JyArCgogICAgICAgICAgICAnPGRpdiBzdHlsZT0iZGlz +cGxheTpncmlkO2dyaWQtdGVtcGxhdGUtY29sdW1uczoxZnIgMWZyO2dhcDo4cHg7bWFyZ2luLWJv +dHRvbTo4cHg7Ij4nICsKICAgICAgICAgICAgICAgICc8ZGl2PjxsYWJlbCBzdHlsZT0iZm9udC1z +aXplOjEycHg7Zm9udC13ZWlnaHQ6NjAwO2NvbG9yOnZhcigtLXRleHQtc2Vjb25kYXJ5KTtkaXNw +bGF5OmJsb2NrO21hcmdpbi1ib3R0b206M3B4OyI+S2F0ZWdvcmllPC9sYWJlbD4nICsKICAgICAg +ICAgICAgICAgICc8c2VsZWN0IGlkPSJzcWVLYXRlZ29yaWUiIHN0eWxlPSInICsgaW5wdXRTdHls +ZSArICciPic7CiAgICAgICAga2F0ZWdvcmllbi5mb3JFYWNoKGZ1bmN0aW9uKGspIHsgaHRtbCAr +PSAnPG9wdGlvbiB2YWx1ZT0iJyArIERyaXZlUG9ydGFsLmVzY2FwZUF0dHIoaykgKyAnIicgKyAo +ayA9PT0gZG9jLmthdGVnb3JpZSA/ICcgc2VsZWN0ZWQnIDogJycpICsgJz4nICsgRHJpdmVQb3J0 +YWwuZXNjYXBlSFRNTChrKSArICc8L29wdGlvbj4nOyB9KTsKICAgICAgICBodG1sICs9ICc8L3Nl +bGVjdD48L2Rpdj4nICsKICAgICAgICAgICAgICAgICc8ZGl2PjxsYWJlbCBzdHlsZT0iZm9udC1z +aXplOjEycHg7Zm9udC13ZWlnaHQ6NjAwO2NvbG9yOnZhcigtLXRleHQtc2Vjb25kYXJ5KTtkaXNw +bGF5OmJsb2NrO21hcmdpbi1ib3R0b206M3B4OyI+U3RhdHVzPC9sYWJlbD4nICsKICAgICAgICAg +ICAgICAgICc8c2VsZWN0IGlkPSJzcWVTdGF0dXMiIHN0eWxlPSInICsgaW5wdXRTdHlsZSArICci +Pic7CiAgICAgICAgc3RhdHVzTGlzdC5mb3JFYWNoKGZ1bmN0aW9uKHMpIHsgaHRtbCArPSAnPG9w +dGlvbiB2YWx1ZT0iJyArIERyaXZlUG9ydGFsLmVzY2FwZUF0dHIocykgKyAnIicgKyAocyA9PT0g +ZG9jLnN0YXR1cyA/ICcgc2VsZWN0ZWQnIDogJycpICsgJz4nICsgRHJpdmVQb3J0YWwuZXNjYXBl +SFRNTChzKSArICc8L29wdGlvbj4nOyB9KTsKICAgICAgICBodG1sICs9ICc8L3NlbGVjdD48L2Rp +dj48L2Rpdj4nICsKCiAgICAgICAgICAgICc8ZGl2IHN0eWxlPSJkaXNwbGF5OmdyaWQ7Z3JpZC10 +ZW1wbGF0ZS1jb2x1bW5zOjFmciAxZnI7Z2FwOjhweDttYXJnaW4tYm90dG9tOjhweDsiPicgKwog +ICAgICAgICAgICAgICAgJzxkaXY+PGxhYmVsIHN0eWxlPSJmb250LXNpemU6MTJweDtmb250LXdl +aWdodDo2MDA7Y29sb3I6dmFyKC0tdGV4dC1zZWNvbmRhcnkpO2Rpc3BsYXk6YmxvY2s7bWFyZ2lu +LWJvdHRvbTozcHg7Ij5FcnN0ZWxsdCB2b248L2xhYmVsPicgKwogICAgICAgICAgICAgICAgJzxp +bnB1dCB0eXBlPSJ0ZXh0IiBpZD0ic3FlRXJzdGVsbGVyIiB2YWx1ZT0iJyArIERyaXZlUG9ydGFs +LmVzY2FwZUF0dHIoZG9jLmVyc3RlbGx0Vm9uIHx8ICcnKSArICciIHN0eWxlPSInICsgaW5wdXRT +dHlsZSArICciPjwvZGl2PicgKwogICAgICAgICAgICAgICAgJzxkaXY+PGxhYmVsIHN0eWxlPSJm +b250LXNpemU6MTJweDtmb250LXdlaWdodDo2MDA7Y29sb3I6dmFyKC0tdGV4dC1zZWNvbmRhcnkp +O2Rpc3BsYXk6YmxvY2s7bWFyZ2luLWJvdHRvbTozcHg7Ij5WZXJzaW9uPC9sYWJlbD4nICsKICAg +ICAgICAgICAgICAgICc8aW5wdXQgdHlwZT0idGV4dCIgaWQ9InNxZVZlcnNpb24iIHZhbHVlPSIn +ICsgRHJpdmVQb3J0YWwuZXNjYXBlQXR0cihkb2MudmVyc2lvbiB8fCAnJykgKyAnIiBzdHlsZT0i +JyArIGlucHV0U3R5bGUgKyAnIj48L2Rpdj4nICsKICAgICAgICAgICAgJzwvZGl2PicgKwoKICAg +ICAgICAgICAgJzxkaXYgc3R5bGU9ImRpc3BsYXk6ZmxleDtnYXA6OHB4O2p1c3RpZnktY29udGVu +dDpmbGV4LWVuZDttYXJnaW4tdG9wOjE0cHg7Ij4nICsKICAgICAgICAgICAgICAgICc8YnV0dG9u +IG9uY2xpY2s9InRoaXMuY2xvc2VzdChcJ2RpdltzdHlsZV1cJykucGFyZW50RWxlbWVudC5yZW1v +dmUoKSIgc3R5bGU9InBhZGRpbmc6OHB4IDE2cHg7Ym9yZGVyLXJhZGl1czo0cHg7Ym9yZGVyOjFw +eCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3IpO2JhY2tncm91bmQ6dmFyKC0tYmctY2FyZCk7Y29s +b3I6dmFyKC0tdGV4dC1wcmltYXJ5KTtjdXJzb3I6cG9pbnRlcjsiPkFiYnJlY2hlbjwvYnV0dG9u +PicgKwogICAgICAgICAgICAgICAgJzxidXR0b24gb25jbGljaz0iRHJpdmVQb3J0YWwuX2NvbmZp +cm1TaW5nbGVFZGl0KFwnJyArIERyaXZlUG9ydGFsLmVzY2FwZUF0dHIoZG9jSWQpICsgJ1wnKSIg +c3R5bGU9InBhZGRpbmc6OHB4IDE2cHg7Ym9yZGVyLXJhZGl1czo0cHg7Ym9yZGVyOm5vbmU7YmFj +a2dyb3VuZDp2YXIoLS10ZXh0LWhlYWRpbmcpO2NvbG9yOndoaXRlO2N1cnNvcjpwb2ludGVyO2Zv +bnQtd2VpZ2h0OjYwMDsiPlNwZWljaGVybjwvYnV0dG9uPicgKwogICAgICAgICAgICAnPC9kaXY+ +PC9kaXY+JzsKCiAgICAgICAgbW9kYWwuaW5uZXJIVE1MID0gaHRtbDsKICAgICAgICBkb2N1bWVu +dC5ib2R5LmFwcGVuZENoaWxkKG1vZGFsKTsKICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkg +eyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc3FlVGl0ZWwnKS5mb2N1cygpOyB9LCA1MCk7CiAg +ICB9LAoKICAgIGFzeW5jIF9jb25maXJtU2luZ2xlRWRpdChkb2NJZCkgewogICAgICAgIHZhciBk +b2MgPSBEcml2ZUZTLmRvY3VtZW50cy5maW5kKGZ1bmN0aW9uKGQpIHsgcmV0dXJuIGQuaWQgPT09 +IGRvY0lkOyB9KTsKICAgICAgICBpZiAoIWRvYykgcmV0dXJuOwoKICAgICAgICBkb2MudGl0ZWwg +PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc3FlVGl0ZWwnKS52YWx1ZS50cmltKCkgfHwgZG9j +LnRpdGVsOwogICAgICAgIGRvYy5rYXRlZ29yaWUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgn +c3FlS2F0ZWdvcmllJykudmFsdWU7CiAgICAgICAgdmFyIG5ld1N0YXR1cyA9IGRvY3VtZW50Lmdl +dEVsZW1lbnRCeUlkKCdzcWVTdGF0dXMnKS52YWx1ZTsKICAgICAgICBpZiAobmV3U3RhdHVzICE9 +PSBkb2Muc3RhdHVzKSB7CiAgICAgICAgICAgIGRvYy52ZXJzaW9uID0gY2FsY3VsYXRlVmVyc2lv +bihkb2MsIGRvYy5pbmhhbHQsIGRvYy5pbmhhbHQsIG5ld1N0YXR1cyk7CiAgICAgICAgICAgIGRv +Yy5zdGF0dXMgPSBuZXdTdGF0dXM7CiAgICAgICAgfQogICAgICAgIGRvYy5lcnN0ZWxsdFZvbiA9 +IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzcWVFcnN0ZWxsZXInKS52YWx1ZS50cmltKCkgfHwg +ZG9jLmVyc3RlbGx0Vm9uOwogICAgICAgIGRvYy52ZXJzaW9uID0gZG9jdW1lbnQuZ2V0RWxlbWVu +dEJ5SWQoJ3NxZVZlcnNpb24nKS52YWx1ZS50cmltKCkgfHwgZG9jLnZlcnNpb247CgogICAgICAg +IC8vIE1vZGFsIHNjaGxpZXNzZW4KICAgICAgICB2YXIgZWwgPSBkb2N1bWVudC5nZXRFbGVtZW50 +QnlJZCgnc3FlVGl0ZWwnKTsKICAgICAgICBpZiAoZWwpIHsgdmFyIG0gPSBlbDsgd2hpbGUgKG0u +cGFyZW50RWxlbWVudCAhPT0gZG9jdW1lbnQuYm9keSkgbSA9IG0ucGFyZW50RWxlbWVudDsgbS5y +ZW1vdmUoKTsgfQoKICAgICAgICBhd2FpdCBEcml2ZUZTLnNhdmVEb2N1bWVudChkb2MpOwogICAg +ICAgIHNob3dUb2FzdCgnQXJ0aWtlbCBha3R1YWxpc2llcnQ6ICcgKyBkb2MudGl0ZWwsICdzdWNj +ZXNzJyk7CiAgICAgICAgdGhpcy5yZW5kZXIoKTsKICAgICAgICB0aGlzLnJlbmRlclRhYmxlVmll +dygpOwogICAgfSwKCiAgICBhc3luYyBfY29uZmlybUJ1bGtEZWxldGUoKSB7CiAgICAgICAgdmFy +IG53SW5wdXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYnVsa0RlbGV0ZU5XJyk7CiAgICAg +ICAgdmFyIG53S2VubnVuZyA9IG53SW5wdXQgPyBud0lucHV0LnZhbHVlLnRyaW0oKSA6ICcnOwog +ICAgICAgIGlmICghbndLZW5udW5nKSB7IHNob3dUb2FzdCgnQml0dGUgTlctS2VubnVuZyBlaW5n +ZWJlbicsICd3YXJuaW5nJyk7IG53SW5wdXQuZm9jdXMoKTsgcmV0dXJuOyB9CgogICAgICAgIC8v +IE1vZGFsIHNjaGxpZXNzZW4KICAgICAgICB2YXIgbSA9IG53SW5wdXQ7IHdoaWxlIChtLnBhcmVu +dEVsZW1lbnQgIT09IGRvY3VtZW50LmJvZHkpIG0gPSBtLnBhcmVudEVsZW1lbnQ7IG0ucmVtb3Zl +KCk7CgogICAgICAgIHZhciBkZWxldGVkID0gMDsKICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8 +IHRoaXMuX3RhYmxlU2VsZWN0ZWQubGVuZ3RoOyBpKyspIHsKICAgICAgICAgICAgdmFyIGRvY0lk +ID0gdGhpcy5fdGFibGVTZWxlY3RlZFtpXTsKICAgICAgICAgICAgdmFyIGRvYyA9IERyaXZlRlMu +ZG9jdW1lbnRzLmZpbmQoZnVuY3Rpb24oZCkgeyByZXR1cm4gZC5pZCA9PT0gZG9jSWQ7IH0pOwog +ICAgICAgICAgICBpZiAoIWRvYykgY29udGludWU7CgogICAgICAgICAgICAvLyBJbiBQYXBpZXJr +b3JiIHZlcnNjaGllYmVuCiAgICAgICAgICAgIHZhciB0cmFzaCA9IGF3YWl0IHRoaXMuX2xvYWRU +cmFzaCgpOwogICAgICAgICAgICB0cmFzaC5wdXNoKHsKICAgICAgICAgICAgICAgIGRvYzogZG9j +LAogICAgICAgICAgICAgICAgZGVsZXRlZEJ5OiBud0tlbm51bmcudHJpbSgpLAogICAgICAgICAg +ICAgICAgZGVsZXRlZEF0OiBuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCksCiAgICAgICAgICAgICAg +ICBleHBpcmVzQXQ6IG5ldyBEYXRlKERhdGUubm93KCkgKyAyOCAqIDI0ICogNjAgKiA2MCAqIDEw +MDApLnRvSVNPU3RyaW5nKCkKICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIGF3YWl0IHRoaXMu +X3NhdmVUcmFzaCh0cmFzaCk7CgogICAgICAgICAgICAvLyBBdWRpdC1Mb2cKICAgICAgICAgICAg +YXdhaXQgdGhpcy5fYXBwZW5kRGVsZXRlTG9nKHsKICAgICAgICAgICAgICAgIGRvY0lkOiBkb2Mu +aWQsCiAgICAgICAgICAgICAgICB0aXRlbDogZG9jLnRpdGVsLAogICAgICAgICAgICAgICAga2F0 +ZWdvcmllOiBkb2Mua2F0ZWdvcmllLAogICAgICAgICAgICAgICAgZGVsZXRlZEJ5OiBud0tlbm51 +bmcudHJpbSgpLAogICAgICAgICAgICAgICAgZGVsZXRlZEF0OiBuZXcgRGF0ZSgpLnRvSVNPU3Ry +aW5nKCkKICAgICAgICAgICAgfSk7CgogICAgICAgICAgICAvLyBEYXRlaSBsb2VzY2hlbiArIE1l +ZGllbi1PcmRuZXIKICAgICAgICAgICAgdmFyIHBhdGggPSBEcml2ZUZTLmZpbGVUaW1lc3RhbXBz +W2RvY0lkXSA/IERyaXZlRlMuZmlsZVRpbWVzdGFtcHNbZG9jSWRdLnBhdGggOiBudWxsOwogICAg +ICAgICAgICBpZiAocGF0aCkgYXdhaXQgRHJpdmVGUy5kZWxldGVGaWxlKHBhdGgpOwoKICAgICAg +ICAgICAgLy8gTWVkaWVuLU9yZG5lciB2ZXJzY2hpZWJlbiAoU2VydmVyLU1vZHVzKQogICAgICAg +ICAgICBpZiAoRHJpdmVGUy5tb2RlID09PSAnc2VydmVyJykgewogICAgICAgICAgICAgICAgdHJ5 +IHsKICAgICAgICAgICAgICAgICAgICAvLyBNZWRpZW4gYmxlaWJlbiBpbSBtZWRpYS8tT3JkbmVy +IGVyaGFsdGVuIChQYXBpZXJrb3JiLVdpZWRlcmhlcnN0ZWxsdW5nKQogICAgICAgICAgICAgICAg +fSBjYXRjaChlKSB7fQogICAgICAgICAgICB9CgogICAgICAgICAgICBEcml2ZUZTLmRvY3VtZW50 +cyA9IERyaXZlRlMuZG9jdW1lbnRzLmZpbHRlcihmdW5jdGlvbihkKSB7IHJldHVybiBkLmlkICE9 +PSBkb2NJZDsgfSk7CiAgICAgICAgICAgIGRlbGV0ZWQrKzsKICAgICAgICB9CgogICAgICAgIGF3 +YWl0IERyaXZlRlMudXBkYXRlSW5kZXgoKTsKICAgICAgICBzaG93VG9hc3QoZGVsZXRlZCArICcg +QXJ0aWtlbCBpbiBkZW4gUGFwaWVya29yYiB2ZXJzY2hvYmVuJywgJ3N1Y2Nlc3MnKTsKICAgICAg +ICB0aGlzLl90YWJsZVNlbGVjdGVkID0gW107CiAgICAgICAgdGhpcy5yZW5kZXIoKTsKICAgICAg +ICB0aGlzLnJlbmRlclRhYmxlVmlldygpOwogICAgfSwKCiAgICBzaG93SG9tZSgpIHsKICAgICAg +ICB0aGlzLnNlbGVjdGVkRG9jSWQgPSBudWxsOwogICAgICAgIC8vIFN0YXJ0c2VpdGUgd2llZGVy +aGVyc3RlbGxlbgogICAgICAgIGlmICh0aGlzLl93ZWxjb21lSFRNTCkgewogICAgICAgICAgICBk +b2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZG9jdW1lbnREZXRhaWwnKS5pbm5lckhUTUwgPSB0aGlz +Ll93ZWxjb21lSFRNTDsKICAgICAgICB9CiAgICAgICAgLy8gQWt0aXZlcyBFbGVtZW50IGluIGRl +ciBMaXN0ZSBhYndhZWhsZW4KICAgICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcuZG9j +dW1lbnQtaXRlbS5hY3RpdmUnKS5mb3JFYWNoKGZ1bmN0aW9uKGVsKSB7IGVsLmNsYXNzTGlzdC5y +ZW1vdmUoJ2FjdGl2ZScpOyB9KTsKICAgIH0sCgogICAgX2RpZmZWaXNpYmxlOiBmYWxzZSwKCiAg +ICB0b2dnbGVEaWZmKGRvY0lkKSB7CiAgICAgICAgdmFyIGRvYyA9IERyaXZlRlMuZG9jdW1lbnRz +LmZpbmQoZnVuY3Rpb24oZCl7IHJldHVybiBkLmlkID09PSBkb2NJZDsgfSk7CiAgICAgICAgaWYg +KCFkb2MpIHJldHVybjsKICAgICAgICAvLyBWZXJnbGVpY2hzYmFzaXM6IGxldHp0ZSBSZXZpc2lv +biAocGVyc2lzdGllcnQpIG9kZXIgX3ByZXZpb3VzSW5oYWx0IChMZWdhY3kpCiAgICAgICAgdmFy +IHByZXZJbmhhbHQgPSBkb2MuX3ByZXZpb3VzSW5oYWx0OwogICAgICAgIGlmICghcHJldkluaGFs +dCAmJiBkb2MucmV2aXNpb25zICYmIGRvYy5yZXZpc2lvbnMubGVuZ3RoID4gMCkgewogICAgICAg +ICAgICBwcmV2SW5oYWx0ID0gZG9jLnJldmlzaW9uc1tkb2MucmV2aXNpb25zLmxlbmd0aCAtIDFd +LmluaGFsdDsKICAgICAgICB9CiAgICAgICAgaWYgKCFwcmV2SW5oYWx0KSByZXR1cm47CgogICAg +ICAgIHZhciBjb250ZW50RWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZGV0YWlsQ29udGVu +dCcpOwogICAgICAgIHZhciBidG4gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYnRuRGlmZicp +OwogICAgICAgIGlmICghY29udGVudEVsKSByZXR1cm47CgogICAgICAgIGlmICh0aGlzLl9kaWZm +VmlzaWJsZSkgewogICAgICAgICAgICAvLyBadXJ1ZWNrIHp1ciBub3JtYWxlbiBBbnNpY2h0CiAg +ICAgICAgICAgIGNvbnRlbnRFbC5pbm5lckhUTUwgPSBEcml2ZVBvcnRhbC5zYW5pdGl6ZUhUTUwo +ZG9jLmluaGFsdCk7CiAgICAgICAgICAgIGlmIChidG4pIGJ0bi50ZXh0Q29udGVudCA9ICfDhG5k +ZXJ1bmdlbiBhbnplaWdlbic7CiAgICAgICAgICAgIHRoaXMuX2RpZmZWaXNpYmxlID0gZmFsc2U7 +CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgLy8gRGlmZiBiZXJlY2huZW4gdW5kIGFuemVp +Z2VuCiAgICAgICAgICAgIHZhciBkaWZmSHRtbCA9IHRoaXMuX2NvbXB1dGVEaWZmKHByZXZJbmhh +bHQsIGRvYy5pbmhhbHQgfHwgJycpOwogICAgICAgICAgICBjb250ZW50RWwuaW5uZXJIVE1MID0K +ICAgICAgICAgICAgICAgICc8ZGl2IGNsYXNzPSJkaWZmLWxlZ2VuZCI+JyArCiAgICAgICAgICAg +ICAgICAgICAgJzxzcGFuPjxzcGFuIGNsYXNzPSJkaWZmLWFkZGVkIj5CZWlzcGllbDwvc3Bhbj4g +SGluenVnZWbDvGd0PC9zcGFuPicgKwogICAgICAgICAgICAgICAgICAgICc8c3Bhbj48c3BhbiBj +bGFzcz0iZGlmZi1yZW1vdmVkIj5CZWlzcGllbDwvc3Bhbj4gRW50ZmVybnQ8L3NwYW4+JyArCiAg +ICAgICAgICAgICAgICAnPC9kaXY+JyArCiAgICAgICAgICAgICAgICBkaWZmSHRtbDsKICAgICAg +ICAgICAgaWYgKGJ0bikgYnRuLnRleHRDb250ZW50ID0gJ09yaWdpbmFsYW5zaWNodCc7CiAgICAg +ICAgICAgIHRoaXMuX2RpZmZWaXNpYmxlID0gdHJ1ZTsKICAgICAgICB9CiAgICB9LAoKICAgIF9j +b21wdXRlRGlmZihvbGRIdG1sLCBuZXdIdG1sKSB7CiAgICAgICAgLy8gSFRNTCBpbiBXb2VydGVy +IHplcmxlZ2VuIChUYWdzIGFscyBFaW5oZWl0IGJlaGFsdGVuKQogICAgICAgIGZ1bmN0aW9uIHRv +a2VuaXplKGh0bWwpIHsKICAgICAgICAgICAgdmFyIHRva2VucyA9IFtdOwogICAgICAgICAgICB2 +YXIgcmUgPSAvPFtePl0rPnxbXlxzPF0rfFxzKy9nOwogICAgICAgICAgICB2YXIgbTsKICAgICAg +ICAgICAgd2hpbGUgKChtID0gcmUuZXhlYyhodG1sKSkgIT09IG51bGwpIHsKICAgICAgICAgICAg +ICAgIHRva2Vucy5wdXNoKG1bMF0pOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHJldHVybiB0 +b2tlbnM7CiAgICAgICAgfQoKICAgICAgICB2YXIgb2xkVG9rZW5zID0gdG9rZW5pemUob2xkSHRt +bCk7CiAgICAgICAgdmFyIG5ld1Rva2VucyA9IHRva2VuaXplKG5ld0h0bWwpOwoKICAgICAgICAv +LyBMQ1MgKExvbmdlc3QgQ29tbW9uIFN1YnNlcXVlbmNlKSBiZXJlY2huZW4KICAgICAgICB2YXIg +biA9IG9sZFRva2Vucy5sZW5ndGgsIG0gPSBuZXdUb2tlbnMubGVuZ3RoOwoKICAgICAgICAvLyBG +dWVyIHNlaHIgZ3Jvc3NlIERva3VtZW50ZTogdmVyZWluZmFjaHRlciBBbnNhdHogbWl0IGJlZ3Jl +bnp0ZXIgTWF0cml4CiAgICAgICAgaWYgKG4gKiBtID4gMjAwMDAwMCkgewogICAgICAgICAgICAv +LyBGYWxsYmFjazogWmVpbGVud2Vpc2VyIFZlcmdsZWljaAogICAgICAgICAgICByZXR1cm4gdGhp +cy5fY29tcHV0ZUxpbmVEaWZmKG9sZEh0bWwsIG5ld0h0bWwpOwogICAgICAgIH0KCiAgICAgICAg +dmFyIGRwID0gW107CiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPD0gbjsgaSsrKSB7CiAgICAg +ICAgICAgIGRwW2ldID0gbmV3IFVpbnQxNkFycmF5KG0gKyAxKTsKICAgICAgICB9CgogICAgICAg +IGZvciAodmFyIGkgPSAxOyBpIDw9IG47IGkrKykgewogICAgICAgICAgICBmb3IgKHZhciBqID0g +MTsgaiA8PSBtOyBqKyspIHsKICAgICAgICAgICAgICAgIGlmIChvbGRUb2tlbnNbaS0xXSA9PT0g +bmV3VG9rZW5zW2otMV0pIHsKICAgICAgICAgICAgICAgICAgICBkcFtpXVtqXSA9IGRwW2ktMV1b +ai0xXSArIDE7CiAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgIGRw +W2ldW2pdID0gTWF0aC5tYXgoZHBbaS0xXVtqXSwgZHBbaV1bai0xXSk7CiAgICAgICAgICAgICAg +ICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIC8vIEJhY2t0cmFjazogRGlmZi1T +ZXF1ZW56IGVyc3RlbGxlbgogICAgICAgIHZhciByZXN1bHQgPSBbXTsKICAgICAgICB2YXIgaSA9 +IG4sIGogPSBtOwogICAgICAgIHdoaWxlIChpID4gMCB8fCBqID4gMCkgewogICAgICAgICAgICBp +ZiAoaSA+IDAgJiYgaiA+IDAgJiYgb2xkVG9rZW5zW2ktMV0gPT09IG5ld1Rva2Vuc1tqLTFdKSB7 +CiAgICAgICAgICAgICAgICByZXN1bHQudW5zaGlmdCh7IHR5cGU6ICdzYW1lJywgdGV4dDogb2xk +VG9rZW5zW2ktMV0gfSk7CiAgICAgICAgICAgICAgICBpLS07IGotLTsKICAgICAgICAgICAgfSBl +bHNlIGlmIChqID4gMCAmJiAoaSA9PT0gMCB8fCBkcFtpXVtqLTFdID49IGRwW2ktMV1bal0pKSB7 +CiAgICAgICAgICAgICAgICByZXN1bHQudW5zaGlmdCh7IHR5cGU6ICdhZGQnLCB0ZXh0OiBuZXdU +b2tlbnNbai0xXSB9KTsKICAgICAgICAgICAgICAgIGotLTsKICAgICAgICAgICAgfSBlbHNlIHsK +ICAgICAgICAgICAgICAgIHJlc3VsdC51bnNoaWZ0KHsgdHlwZTogJ2RlbCcsIHRleHQ6IG9sZFRv +a2Vuc1tpLTFdIH0pOwogICAgICAgICAgICAgICAgaS0tOwogICAgICAgICAgICB9CiAgICAgICAg +fQoKICAgICAgICAvLyBFcmdlYm5pcyBhbHMgSFRNTCByZW5kZXJuCiAgICAgICAgdmFyIGh0bWwg +PSAnJzsKICAgICAgICB2YXIgaW5BZGQgPSBmYWxzZSwgaW5EZWwgPSBmYWxzZTsKCiAgICAgICAg +Zm9yICh2YXIgayA9IDA7IGsgPCByZXN1bHQubGVuZ3RoOyBrKyspIHsKICAgICAgICAgICAgdmFy +IHIgPSByZXN1bHRba107CiAgICAgICAgICAgIHZhciBpc1RhZyA9IHIudGV4dC5jaGFyQXQoMCkg +PT09ICc8JzsKCiAgICAgICAgICAgIGlmIChyLnR5cGUgPT09ICdzYW1lJykgewogICAgICAgICAg +ICAgICAgaWYgKGluQWRkKSB7IGh0bWwgKz0gJzwvc3Bhbj4nOyBpbkFkZCA9IGZhbHNlOyB9CiAg +ICAgICAgICAgICAgICBpZiAoaW5EZWwpIHsgaHRtbCArPSAnPC9zcGFuPic7IGluRGVsID0gZmFs +c2U7IH0KICAgICAgICAgICAgICAgIGh0bWwgKz0gci50ZXh0OwogICAgICAgICAgICB9IGVsc2Ug +aWYgKHIudHlwZSA9PT0gJ2FkZCcpIHsKICAgICAgICAgICAgICAgIGlmIChpbkRlbCkgeyBodG1s +ICs9ICc8L3NwYW4+JzsgaW5EZWwgPSBmYWxzZTsgfQogICAgICAgICAgICAgICAgaWYgKGlzVGFn +KSB7IGh0bWwgKz0gci50ZXh0OyBjb250aW51ZTsgfQogICAgICAgICAgICAgICAgaWYgKCFpbkFk +ZCkgeyBodG1sICs9ICc8c3BhbiBjbGFzcz0iZGlmZi1hZGRlZCI+JzsgaW5BZGQgPSB0cnVlOyB9 +CiAgICAgICAgICAgICAgICBodG1sICs9IHIudGV4dDsKICAgICAgICAgICAgfSBlbHNlIGlmIChy +LnR5cGUgPT09ICdkZWwnKSB7CiAgICAgICAgICAgICAgICBpZiAoaW5BZGQpIHsgaHRtbCArPSAn +PC9zcGFuPic7IGluQWRkID0gZmFsc2U7IH0KICAgICAgICAgICAgICAgIGlmIChpc1RhZykgY29u +dGludWU7IC8vIEVudGZlcm50ZSBUYWdzIG5pY2h0IGFuemVpZ2VuCiAgICAgICAgICAgICAgICBp +ZiAoIWluRGVsKSB7IGh0bWwgKz0gJzxzcGFuIGNsYXNzPSJkaWZmLXJlbW92ZWQiPic7IGluRGVs +ID0gdHJ1ZTsgfQogICAgICAgICAgICAgICAgaHRtbCArPSByLnRleHQ7CiAgICAgICAgICAgIH0K +ICAgICAgICB9CiAgICAgICAgaWYgKGluQWRkKSBodG1sICs9ICc8L3NwYW4+JzsKICAgICAgICBp +ZiAoaW5EZWwpIGh0bWwgKz0gJzwvc3Bhbj4nOwoKICAgICAgICByZXR1cm4gaHRtbDsKICAgIH0s +CgogICAgX2NvbXB1dGVMaW5lRGlmZihvbGRIdG1sLCBuZXdIdG1sKSB7CiAgICAgICAgLy8gRWlu +ZmFjaGVyIEZhbGxiYWNrIGZ1ZXIgc2VociBncm9zc2UgRG9rdW1lbnRlOiBBYnNhdHp3ZWlzZXIg +VmVyZ2xlaWNoCiAgICAgICAgZnVuY3Rpb24gZ2V0UGFyYXMoaHRtbCkgewogICAgICAgICAgICB2 +YXIgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CiAgICAgICAgICAgIGRpdi5p +bm5lckhUTUwgPSBodG1sOwogICAgICAgICAgICB2YXIgYmxvY2tzID0gW107CiAgICAgICAgICAg +IGRpdi5jaGlsZE5vZGVzLmZvckVhY2goZnVuY3Rpb24obikgewogICAgICAgICAgICAgICAgYmxv +Y2tzLnB1c2gobi5vdXRlckhUTUwgfHwgbi50ZXh0Q29udGVudCk7CiAgICAgICAgICAgIH0pOwog +ICAgICAgICAgICByZXR1cm4gYmxvY2tzOwogICAgICAgIH0KCiAgICAgICAgdmFyIG9sZFBhcmFz +ID0gZ2V0UGFyYXMob2xkSHRtbCk7CiAgICAgICAgdmFyIG5ld1BhcmFzID0gZ2V0UGFyYXMobmV3 +SHRtbCk7CiAgICAgICAgdmFyIG9sZFNldCA9IG5ldyBTZXQob2xkUGFyYXMpOwogICAgICAgIHZh +ciBuZXdTZXQgPSBuZXcgU2V0KG5ld1BhcmFzKTsKCiAgICAgICAgdmFyIGh0bWwgPSAnJzsKICAg +ICAgICBuZXdQYXJhcy5mb3JFYWNoKGZ1bmN0aW9uKHApIHsKICAgICAgICAgICAgaWYgKG9sZFNl +dC5oYXMocCkpIHsKICAgICAgICAgICAgICAgIGh0bWwgKz0gcDsKICAgICAgICAgICAgfSBlbHNl +IHsKICAgICAgICAgICAgICAgIGh0bWwgKz0gJzxkaXYgY2xhc3M9ImRpZmYtYWRkZWQiIHN0eWxl +PSJkaXNwbGF5OmJsb2NrO3BhZGRpbmc6NHB4IDhweDttYXJnaW46NHB4IDA7Ym9yZGVyLXJhZGl1 +czo0cHg7Ij4nICsgcCArICc8L2Rpdj4nOwogICAgICAgICAgICB9CiAgICAgICAgfSk7CiAgICAg +ICAgb2xkUGFyYXMuZm9yRWFjaChmdW5jdGlvbihwKSB7CiAgICAgICAgICAgIGlmICghbmV3U2V0 +LmhhcyhwKSkgewogICAgICAgICAgICAgICAgaHRtbCArPSAnPGRpdiBjbGFzcz0iZGlmZi1yZW1v +dmVkIiBzdHlsZT0iZGlzcGxheTpibG9jaztwYWRkaW5nOjRweCA4cHg7bWFyZ2luOjRweCAwO2Jv +cmRlci1yYWRpdXM6NHB4OyI+JyArIHAgKyAnPC9kaXY+JzsKICAgICAgICAgICAgfQogICAgICAg +IH0pOwoKICAgICAgICByZXR1cm4gaHRtbDsKICAgIH0sCgogICAgLy8gPT09PSBSZXZpc2lvbnNo +aXN0b3JpZSA9PT09CiAgICBfcmV2RG9jSWQ6IG51bGwsCiAgICBfcmV2U2VsZWN0ZWRJZHg6IC0x +LAogICAgX3Jldk1vZGU6ICdjb250ZW50JywgLy8gJ2NvbnRlbnQnIG9kZXIgJ2RpZmYnCgogICAg +b3BlblJldmlzaW9ucyhkb2NJZCkgewogICAgICAgIHZhciBkb2MgPSBEcml2ZUZTLmRvY3VtZW50 +cy5maW5kKGZ1bmN0aW9uKGQpIHsgcmV0dXJuIGQuaWQgPT09IGRvY0lkOyB9KTsKICAgICAgICBp +ZiAoIWRvYykgcmV0dXJuOwogICAgICAgIHRoaXMuX3JldkRvY0lkID0gZG9jSWQ7CiAgICAgICAg +dGhpcy5fcmV2U2VsZWN0ZWRJZHggPSAtMTsKICAgICAgICB0aGlzLl9yZXZNb2RlID0gJ2NvbnRl +bnQnOwoKICAgICAgICB2YXIgcmV2aXNpb25zID0gZG9jLnJldmlzaW9ucyB8fCBbXTsKICAgICAg +ICB2YXIgbGlzdEVsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3JldmlzaW9uTGlzdCcpOwoK +ICAgICAgICBpZiAocmV2aXNpb25zLmxlbmd0aCA9PT0gMCkgewogICAgICAgICAgICBzaG93VG9h +c3QoJ0tlaW5lIGZydWVoZXJlbiBWZXJzaW9uZW4gdm9yaGFuZGVuJywgJ2luZm8nKTsKICAgICAg +ICAgICAgcmV0dXJuOwogICAgICAgIH0KCiAgICAgICAgLy8gTGlzdGUgYXVmYmF1ZW4gKG5ldWVz +dGUgenVlcnN0KQogICAgICAgIHZhciBodG1sID0gJyc7CiAgICAgICAgLy8gQWt0dWVsbGUgVmVy +c2lvbiBhbHMgZXJzdGVzIEVsZW1lbnQKICAgICAgICBodG1sICs9ICc8ZGl2IGNsYXNzPSJyZXZp +c2lvbi1pdGVtIiBvbmNsaWNrPSJEcml2ZVBvcnRhbC5zZWxlY3RSZXZpc2lvbigtMSkiPicgKwog +ICAgICAgICAgICAnPGRpdiBjbGFzcz0icmV2LWxhYmVsIj5Ba3R1ZWxsZSBWZXJzaW9uIDxzcGFu +IGNsYXNzPSJyZXYtYmFkZ2UiPkxpdmU8L3NwYW4+PC9kaXY+JyArCiAgICAgICAgICAgICc8ZGl2 +IGNsYXNzPSJyZXYtZGF0ZSI+JyArIChkb2MudGl0ZWwgfHwgJ09obmUgVGl0ZWwnKSArICc8L2Rp +dj4nICsKICAgICAgICAgICAgJzxkaXYgY2xhc3M9InJldi11c2VyIj5TdGF0dXM6ICcgKyBEcml2 +ZVBvcnRhbC5lc2NhcGVIVE1MKGRvYy5zdGF0dXMgfHwgJ0VudHd1cmYnKSArICc8L2Rpdj4nICsK +ICAgICAgICAnPC9kaXY+JzsKCiAgICAgICAgZm9yICh2YXIgaSA9IHJldmlzaW9ucy5sZW5ndGgg +LSAxOyBpID49IDA7IGktLSkgewogICAgICAgICAgICB2YXIgcmV2ID0gcmV2aXNpb25zW2ldOwog +ICAgICAgICAgICB2YXIgZCA9IG5ldyBEYXRlKHJldi5zYXZlZEF0KTsKICAgICAgICAgICAgdmFy +IGRhdGVTdHIgPSBkLnRvTG9jYWxlRGF0ZVN0cmluZygnZGUtREUnLCB7IGRheTogJzItZGlnaXQn +LCBtb250aDogJzItZGlnaXQnLCB5ZWFyOiAnbnVtZXJpYycgfSk7CiAgICAgICAgICAgIHZhciB0 +aW1lU3RyID0gZC50b0xvY2FsZVRpbWVTdHJpbmcoJ2RlLURFJywgeyBob3VyOiAnMi1kaWdpdCcs +IG1pbnV0ZTogJzItZGlnaXQnIH0pOwogICAgICAgICAgICB2YXIgcmV2TnVtID0gaSArIDE7CiAg +ICAgICAgICAgIGh0bWwgKz0gJzxkaXYgY2xhc3M9InJldmlzaW9uLWl0ZW0iIG9uY2xpY2s9IkRy +aXZlUG9ydGFsLnNlbGVjdFJldmlzaW9uKCcgKyBpICsgJykiPicgKwogICAgICAgICAgICAgICAg +JzxkaXYgY2xhc3M9InJldi1sYWJlbCI+VmVyc2lvbiAnICsgcmV2TnVtICsgJyA8c3BhbiBjbGFz +cz0icmV2LWJhZGdlIj52JyArIHJldk51bSArICc8L3NwYW4+PC9kaXY+JyArCiAgICAgICAgICAg +ICAgICAnPGRpdiBjbGFzcz0icmV2LWRhdGUiPicgKyBkYXRlU3RyICsgJyB1bSAnICsgdGltZVN0 +ciArICc8L2Rpdj4nICsKICAgICAgICAgICAgICAgICc8ZGl2IGNsYXNzPSJyZXYtdXNlciI+dm9u +ICcgKyBEcml2ZVBvcnRhbC5lc2NhcGVIVE1MKHJldi5zYXZlZEJ5IHx8ICdVbmJla2FubnQnKSAr +CiAgICAgICAgICAgICAgICAgICAgKHJldi5zdGF0dXMgPyAnICZtaWRkb3Q7ICcgKyBEcml2ZVBv +cnRhbC5lc2NhcGVIVE1MKHJldi5zdGF0dXMpIDogJycpICsgJzwvZGl2PicgKwogICAgICAgICAg +ICAnPC9kaXY+JzsKICAgICAgICB9CiAgICAgICAgbGlzdEVsLmlubmVySFRNTCA9IGh0bWw7Cgog +ICAgICAgIC8vIFRvb2xiYXIgdW5kIENvbnRlbnQgenVydWVja3NldHplbgogICAgICAgIGRvY3Vt +ZW50LmdldEVsZW1lbnRCeUlkKCdyZXZpc2lvblRvb2xiYXInKS5pbm5lckhUTUwgPSAnJzsKICAg +ICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmV2aXNpb25Db250ZW50JykuaW5uZXJIVE1M +ID0KICAgICAgICAgICAgJzxkaXYgc3R5bGU9InRleHQtYWxpZ246Y2VudGVyO2NvbG9yOnZhcigt +LXRleHQtbXV0ZWQpO21hcmdpbi10b3A6NjBweDsiPlZlcnNpb24gYXVzIGRlciBMaXN0ZSBhdXN3 +YWVobGVuPC9kaXY+JzsKCiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3JldmlzaW9u +TW9kYWwnKS5jbGFzc0xpc3QuYWRkKCdvcGVuJyk7CiAgICB9LAoKICAgIGNsb3NlUmV2aXNpb25z +KCkgewogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZXZpc2lvbk1vZGFsJykuY2xh +c3NMaXN0LnJlbW92ZSgnb3BlbicpOwogICAgICAgIHRoaXMuX3JldkRvY0lkID0gbnVsbDsKICAg +IH0sCgogICAgc2VsZWN0UmV2aXNpb24oaWR4KSB7CiAgICAgICAgdmFyIGRvYyA9IERyaXZlRlMu +ZG9jdW1lbnRzLmZpbmQoZnVuY3Rpb24oZCkgeyByZXR1cm4gZC5pZCA9PT0gRHJpdmVQb3J0YWwu +X3JldkRvY0lkOyB9KTsKICAgICAgICBpZiAoIWRvYykgcmV0dXJuOwogICAgICAgIHRoaXMuX3Jl +dlNlbGVjdGVkSWR4ID0gaWR4OwogICAgICAgIHRoaXMuX3Jldk1vZGUgPSAnY29udGVudCc7Cgog +ICAgICAgIC8vIEFrdGl2ZSBNYXJraWVydW5nIHNldHplbgogICAgICAgIHZhciBpdGVtcyA9IGRv +Y3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJyNyZXZpc2lvbkxpc3QgLnJldmlzaW9uLWl0ZW0nKTsK +ICAgICAgICB2YXIgcmV2aXNpb25zID0gZG9jLnJldmlzaW9ucyB8fCBbXTsKICAgICAgICAvLyBp +ZHg9LTEgaXN0ICJBa3R1ZWxsZSBWZXJzaW9uIiAoZXJzdGVyIEVpbnRyYWcpLCBzb25zdCB1bWdl +a2VocnQgd2VpbCBMaXN0ZSBpbnZlcnRpZXJ0CiAgICAgICAgdmFyIGFjdGl2ZVBvcyA9IChpZHgg +PT09IC0xKSA/IDAgOiAocmV2aXNpb25zLmxlbmd0aCAtIGlkeCk7CiAgICAgICAgaXRlbXMuZm9y +RWFjaChmdW5jdGlvbihlbCwgaSkgewogICAgICAgICAgICBlbC5jbGFzc0xpc3QudG9nZ2xlKCdh +Y3RpdmUnLCBpID09PSBhY3RpdmVQb3MpOwogICAgICAgIH0pOwoKICAgICAgICAvLyBUb29sYmFy +CiAgICAgICAgdmFyIHJldiA9IChpZHggPT09IC0xKSA/IG51bGwgOiByZXZpc2lvbnNbaWR4XTsK +ICAgICAgICB2YXIgdG9vbGJhciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZXZpc2lvblRv +b2xiYXInKTsKICAgICAgICB2YXIgbGFiZWwgPSAnJzsKICAgICAgICBpZiAoaWR4ID09PSAtMSkg +ewogICAgICAgICAgICBsYWJlbCA9ICdBa3R1ZWxsZSBWZXJzaW9uJzsKICAgICAgICB9IGVsc2Ug +ewogICAgICAgICAgICB2YXIgZCA9IG5ldyBEYXRlKHJldi5zYXZlZEF0KTsKICAgICAgICAgICAg +bGFiZWwgPSAnVmVyc2lvbiAnICsgKGlkeCArIDEpICsgJyAmbWlkZG90OyAnICsKICAgICAgICAg +ICAgICAgIGQudG9Mb2NhbGVEYXRlU3RyaW5nKCdkZS1ERScsIHsgZGF5OiAnMi1kaWdpdCcsIG1v +bnRoOiAnMi1kaWdpdCcsIHllYXI6ICdudW1lcmljJyB9KSArICcgJyArCiAgICAgICAgICAgICAg +ICBkLnRvTG9jYWxlVGltZVN0cmluZygnZGUtREUnLCB7IGhvdXI6ICcyLWRpZ2l0JywgbWludXRl +OiAnMi1kaWdpdCcsIHNlY29uZDogJzItZGlnaXQnIH0pICsKICAgICAgICAgICAgICAgICcgJm1p +ZGRvdDsgJyArIERyaXZlUG9ydGFsLmVzY2FwZUhUTUwocmV2LnNhdmVkQnkgfHwgJ1VuYmVrYW5u +dCcpOwogICAgICAgIH0KCiAgICAgICAgdG9vbGJhci5pbm5lckhUTUwgPQogICAgICAgICAgICAn +PGJ1dHRvbiBjbGFzcz0iYWN0aXZlIiBpZD0icmV2QnRuQ29udGVudCIgb25jbGljaz0iRHJpdmVQ +b3J0YWwuc2hvd1JldkNvbnRlbnQoKSI+SW5oYWx0PC9idXR0b24+JyArCiAgICAgICAgICAgICc8 +YnV0dG9uIGlkPSJyZXZCdG5EaWZmIiBvbmNsaWNrPSJEcml2ZVBvcnRhbC5zaG93UmV2RGlmZigp +Ij5EaWZmIHp1ciBha3R1ZWxsZW4gVmVyc2lvbjwvYnV0dG9uPicgKwogICAgICAgICAgICAoaWR4 +ID49IDAgPyAnPGJ1dHRvbiBpZD0icmV2QnRuUmVzdG9yZSIgb25jbGljaz0iRHJpdmVQb3J0YWwu +cmVzdG9yZVJldmlzaW9uKCkiPkRpZXNlIFZlcnNpb24gd2llZGVyaGVyc3RlbGxlbjwvYnV0dG9u +PicgOiAnJykgKwogICAgICAgICAgICAnPHNwYW4gY2xhc3M9InJldi1pbmZvIj4nICsgbGFiZWwg +KyAnPC9zcGFuPic7CgogICAgICAgIHRoaXMuc2hvd1JldkNvbnRlbnQoKTsKICAgIH0sCgogICAg +c2hvd1JldkNvbnRlbnQoKSB7CiAgICAgICAgdmFyIGRvYyA9IERyaXZlRlMuZG9jdW1lbnRzLmZp +bmQoZnVuY3Rpb24oZCkgeyByZXR1cm4gZC5pZCA9PT0gRHJpdmVQb3J0YWwuX3JldkRvY0lkOyB9 +KTsKICAgICAgICBpZiAoIWRvYykgcmV0dXJuOwogICAgICAgIHRoaXMuX3Jldk1vZGUgPSAnY29u +dGVudCc7CgogICAgICAgIHZhciBjb250ZW50RWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgn +cmV2aXNpb25Db250ZW50Jyk7CiAgICAgICAgdmFyIHJldiA9ICh0aGlzLl9yZXZTZWxlY3RlZElk +eCA9PT0gLTEpID8gbnVsbCA6IChkb2MucmV2aXNpb25zIHx8IFtdKVt0aGlzLl9yZXZTZWxlY3Rl +ZElkeF07CiAgICAgICAgdmFyIGluaGFsdCA9IHJldiA/IHJldi5pbmhhbHQgOiBkb2MuaW5oYWx0 +OwogICAgICAgIHZhciB0aXRlbCA9IHJldiA/IHJldi50aXRlbCA6IGRvYy50aXRlbDsKCiAgICAg +ICAgY29udGVudEVsLmlubmVySFRNTCA9CiAgICAgICAgICAgICc8ZGl2IHN0eWxlPSJmb250LXNp +emU6MThweDtmb250LXdlaWdodDo3MDA7Y29sb3I6dmFyKC0tdGV4dC1oZWFkaW5nKTttYXJnaW4t +Ym90dG9tOjE2cHg7cGFkZGluZy1ib3R0b206OHB4O2JvcmRlci1ib3R0b206MXB4IHNvbGlkIHZh +cigtLWJvcmRlci1saWdodCk7Ij4nICsKICAgICAgICAgICAgICAgIERyaXZlUG9ydGFsLmVzY2Fw +ZUhUTUwodGl0ZWwgfHwgJ09obmUgVGl0ZWwnKSArCiAgICAgICAgICAgICc8L2Rpdj4nICsKICAg +ICAgICAgICAgKGluaGFsdCB8fCAnPHNwYW4gc3R5bGU9ImNvbG9yOnZhcigtLXRleHQtbXV0ZWQp +OyI+S2VpbiBJbmhhbHQ8L3NwYW4+Jyk7CgogICAgICAgIC8vIEJ1dHRvbi1TdGF0dXMKICAgICAg +ICB2YXIgYnRuQyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZXZCdG5Db250ZW50Jyk7CiAg +ICAgICAgdmFyIGJ0bkQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmV2QnRuRGlmZicpOwog +ICAgICAgIGlmIChidG5DKSBidG5DLmNsYXNzTGlzdC5hZGQoJ2FjdGl2ZScpOwogICAgICAgIGlm +IChidG5EKSBidG5ELmNsYXNzTGlzdC5yZW1vdmUoJ2FjdGl2ZScpOwogICAgfSwKCiAgICBzaG93 +UmV2RGlmZigpIHsKICAgICAgICB2YXIgZG9jID0gRHJpdmVGUy5kb2N1bWVudHMuZmluZChmdW5j +dGlvbihkKSB7IHJldHVybiBkLmlkID09PSBEcml2ZVBvcnRhbC5fcmV2RG9jSWQ7IH0pOwogICAg +ICAgIGlmICghZG9jKSByZXR1cm47CiAgICAgICAgdGhpcy5fcmV2TW9kZSA9ICdkaWZmJzsKCiAg +ICAgICAgdmFyIGNvbnRlbnRFbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZXZpc2lvbkNv +bnRlbnQnKTsKICAgICAgICB2YXIgcmV2ID0gKHRoaXMuX3JldlNlbGVjdGVkSWR4ID09PSAtMSkg +PyBudWxsIDogKGRvYy5yZXZpc2lvbnMgfHwgW10pW3RoaXMuX3JldlNlbGVjdGVkSWR4XTsKCiAg +ICAgICAgaWYgKCFyZXYgfHwgdGhpcy5fcmV2U2VsZWN0ZWRJZHggPT09IC0xKSB7CiAgICAgICAg +ICAgIGNvbnRlbnRFbC5pbm5lckhUTUwgPSAnPGRpdiBzdHlsZT0idGV4dC1hbGlnbjpjZW50ZXI7 +Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCk7bWFyZ2luLXRvcDo2MHB4OyI+RGlmZiBudXIgZsO8ciBm +csO8aGVyZSBWZXJzaW9uZW4gdmVyZnVlZ2JhcjwvZGl2Pic7CiAgICAgICAgICAgIHJldHVybjsK +ICAgICAgICB9CgogICAgICAgIHZhciBvbGRJbmhhbHQgPSByZXYuaW5oYWx0IHx8ICcnOwogICAg +ICAgIHZhciBuZXdJbmhhbHQgPSBkb2MuaW5oYWx0IHx8ICcnOwogICAgICAgIHZhciBkaWZmSHRt +bCA9IHRoaXMuX2NvbXB1dGVEaWZmKG9sZEluaGFsdCwgbmV3SW5oYWx0KTsKCiAgICAgICAgdmFy +IHRpdGVsQ2hhbmdlZCA9IHJldi50aXRlbCAhPT0gZG9jLnRpdGVsOwoKICAgICAgICBjb250ZW50 +RWwuaW5uZXJIVE1MID0KICAgICAgICAgICAgJzxkaXYgY2xhc3M9ImRpZmYtbGVnZW5kIj4nICsK +ICAgICAgICAgICAgICAgICc8c3Bhbj48c3BhbiBjbGFzcz0iZGlmZi1hZGRlZCI+QmVpc3BpZWw8 +L3NwYW4+IEhpbnp1Z2VmdWVndDwvc3Bhbj4nICsKICAgICAgICAgICAgICAgICc8c3Bhbj48c3Bh +biBjbGFzcz0iZGlmZi1yZW1vdmVkIj5CZWlzcGllbDwvc3Bhbj4gRW50ZmVybnQ8L3NwYW4+JyAr +CiAgICAgICAgICAgICc8L2Rpdj4nICsKICAgICAgICAgICAgKHRpdGVsQ2hhbmdlZCA/CiAgICAg +ICAgICAgICAgICAnPGRpdiBzdHlsZT0ibWFyZ2luLWJvdHRvbToxMnB4O3BhZGRpbmc6OHB4IDEy +cHg7Ym9yZGVyLXJhZGl1czo2cHg7YmFja2dyb3VuZDp2YXIoLS1iZy1jYXJkLWFsdCk7Zm9udC1z +aXplOjEzcHg7Ij4nICsKICAgICAgICAgICAgICAgICAgICAnVGl0ZWw6IDxzcGFuIGNsYXNzPSJk +aWZmLXJlbW92ZWQiPicgKyBEcml2ZVBvcnRhbC5lc2NhcGVIVE1MKHJldi50aXRlbCB8fCAnJykg +KyAnPC9zcGFuPiAmcmFycjsgJyArCiAgICAgICAgICAgICAgICAgICAgJzxzcGFuIGNsYXNzPSJk +aWZmLWFkZGVkIj4nICsgRHJpdmVQb3J0YWwuZXNjYXBlSFRNTChkb2MudGl0ZWwgfHwgJycpICsg +Jzwvc3Bhbj4nICsKICAgICAgICAgICAgICAgICc8L2Rpdj4nIDogJycpICsKICAgICAgICAgICAg +ZGlmZkh0bWw7CgogICAgICAgIC8vIEJ1dHRvbi1TdGF0dXMKICAgICAgICB2YXIgYnRuQyA9IGRv +Y3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZXZCdG5Db250ZW50Jyk7CiAgICAgICAgdmFyIGJ0bkQg +PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmV2QnRuRGlmZicpOwogICAgICAgIGlmIChidG5D +KSBidG5DLmNsYXNzTGlzdC5yZW1vdmUoJ2FjdGl2ZScpOwogICAgICAgIGlmIChidG5EKSBidG5E +LmNsYXNzTGlzdC5hZGQoJ2FjdGl2ZScpOwogICAgfSwKCiAgICBhc3luYyByZXN0b3JlUmV2aXNp +b24oKSB7CiAgICAgICAgdmFyIGRvYyA9IERyaXZlRlMuZG9jdW1lbnRzLmZpbmQoZnVuY3Rpb24o +ZCkgeyByZXR1cm4gZC5pZCA9PT0gRHJpdmVQb3J0YWwuX3JldkRvY0lkOyB9KTsKICAgICAgICBp +ZiAoIWRvYyB8fCB0aGlzLl9yZXZTZWxlY3RlZElkeCA8IDApIHJldHVybjsKICAgICAgICB2YXIg +cmV2ID0gKGRvYy5yZXZpc2lvbnMgfHwgW10pW3RoaXMuX3JldlNlbGVjdGVkSWR4XTsKICAgICAg +ICBpZiAoIXJldikgcmV0dXJuOwoKICAgICAgICBpZiAoIWNvbmZpcm0oJ1ZlcnNpb24gJyArICh0 +aGlzLl9yZXZTZWxlY3RlZElkeCArIDEpICsgJyB3aWVkZXJoZXJzdGVsbGVuP1xuXG5EZXIgYWt0 +dWVsbGUgSW5oYWx0IHdpcmQgYWxzIG5ldWUgUmV2aXNpb24gZ2VzaWNoZXJ0LicpKSByZXR1cm47 +CgogICAgICAgIHZhciB1c2VybmFtZSA9IChEcml2ZUZTLmVudmlyb24gJiYgRHJpdmVGUy5lbnZp +cm9uLnVzZXJuYW1lKSA/IERyaXZlRlMuZW52aXJvbi51c2VybmFtZSA6ICdVbmJla2FubnQnOwoK +ICAgICAgICAvLyBBa3R1ZWxsZW4gU3RhbmQgYWxzIFJldmlzaW9uIHNpY2hlcm4KICAgICAgICBp +ZiAoIWRvYy5yZXZpc2lvbnMpIGRvYy5yZXZpc2lvbnMgPSBbXTsKICAgICAgICBkb2MucmV2aXNp +b25zLnB1c2goewogICAgICAgICAgICBpbmhhbHQ6IGRvYy5pbmhhbHQsCiAgICAgICAgICAgIHRp +dGVsOiBkb2MudGl0ZWwsCiAgICAgICAgICAgIHN0YXR1czogZG9jLnN0YXR1cywKICAgICAgICAg +ICAgc2F2ZWRBdDogbmV3IERhdGUoKS50b0lTT1N0cmluZygpLAogICAgICAgICAgICBzYXZlZEJ5 +OiB1c2VybmFtZQogICAgICAgIH0pOwogICAgICAgIHdoaWxlIChkb2MucmV2aXNpb25zLmxlbmd0 +aCA+IDYpIHsKICAgICAgICAgICAgZG9jLnJldmlzaW9ucy5zaGlmdCgpOwogICAgICAgIH0KCiAg +ICAgICAgLy8gUmV2aXNpb24gd2llZGVyaGVyc3RlbGxlbgogICAgICAgIGRvYy5pbmhhbHQgPSBy +ZXYuaW5oYWx0OwogICAgICAgIGRvYy50aXRlbCA9IHJldi50aXRlbDsKCiAgICAgICAgdHJ5IHsK +ICAgICAgICAgICAgdmFyIHJlc3VsdCA9IGF3YWl0IERyaXZlRlMuc2F2ZURvY3VtZW50KGRvYyk7 +CiAgICAgICAgICAgIGlmIChyZXN1bHQgPT09IHRydWUpIHsKICAgICAgICAgICAgICAgIHNob3dU +b2FzdCgnVmVyc2lvbiAnICsgKHRoaXMuX3JldlNlbGVjdGVkSWR4ICsgMSkgKyAnIHdpZWRlcmhl +cmdlc3RlbGx0JywgJ3N1Y2Nlc3MnKTsKICAgICAgICAgICAgICAgIHRoaXMuY2xvc2VSZXZpc2lv +bnMoKTsKICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyKCk7CiAgICAgICAgICAgICAgICBhd2Fp +dCB0aGlzLnNlbGVjdERvY3VtZW50KGRvYy5pZCk7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAg +ICAgICAgICAgICBzaG93VG9hc3QoJ0ZlaGxlcjogJyArIHJlc3VsdCwgJ2Vycm9yJyk7CiAgICAg +ICAgICAgIH0KICAgICAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgICAgIHNob3dUb2FzdCgnRmVo +bGVyOiAnICsgZS5tZXNzYWdlLCAnZXJyb3InKTsKICAgICAgICB9CiAgICB9LAoKICAgIGFzeW5j +IHNlbGVjdERvY3VtZW50KGRvY0lkKSB7CiAgICAgICAgdGhpcy5zZWxlY3RlZERvY0lkID0gZG9j +SWQ7CiAgICAgICAgdGhpcy5fZGlmZlZpc2libGUgPSBmYWxzZTsKCiAgICAgICAgLy8gTGFkZSBh +a3R1ZWxsc3RlIFZlcnNpb24gdm9uIERpc2sKICAgICAgICBjb25zdCBkb2MgPSBhd2FpdCBEcml2 +ZUZTLmxvYWREb2N1bWVudChkb2NJZCk7CiAgICAgICAgaWYgKCFkb2MpIHsKICAgICAgICAgICAg +c2hvd1RvYXN0KCdEb2t1bWVudCBrb25udGUgbmljaHQgZ2VsYWRlbiB3ZXJkZW4nLCAnZXJyb3In +KTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KCiAgICAgICAgLy8gSW4tTWVtb3J5IGFr +dHVhbGlzaWVyZW4KICAgICAgICBjb25zdCBpZHggPSBEcml2ZUZTLmRvY3VtZW50cy5maW5kSW5k +ZXgoZCA9PiBkLmlkID09PSBkb2NJZCk7CiAgICAgICAgaWYgKGlkeCA+PSAwKSBEcml2ZUZTLmRv +Y3VtZW50c1tpZHhdID0gZG9jOwoKICAgICAgICB0aGlzLnJlbmRlckxpc3QoKTsKICAgICAgICB0 +aGlzLnJlbmRlckRldGFpbChkb2MpOwogICAgfSwKCiAgICByZW5kZXJEZXRhaWwoZG9jKSB7CiAg +ICAgICAgY29uc3QgZGV0YWlsQ29udGFpbmVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2Rv +Y3VtZW50RGV0YWlsJyk7CiAgICAgICAgY29uc3Qgc3RhdHVzQ29uZmlnID0gRHJpdmVGUy5jb25m +aWcuc3RhdHVzIHx8IHt9OwogICAgICAgIGNvbnN0IGNmZyA9IHN0YXR1c0NvbmZpZ1tkb2Muc3Rh +dHVzXSB8fCB7IGNvbG9yOiAnI2VlZScsIHRleHRDb2xvcjogJyMzMzMnLCBpY29uOiAnJywgbGFi +ZWw6IGRvYy5zdGF0dXMgfTsKCiAgICAgICAgbGV0IG1lZGlhSFRNTCA9ICcnOwogICAgICAgIGlm +IChkb2MubWVkaWFzICYmIGRvYy5tZWRpYXMubGVuZ3RoID4gMCkgewogICAgICAgICAgICAvLyBP +bmx5IHNob3cgYXR0YWNobWVudHMgc2VjdGlvbiAoaW5saW5lIG1lZGlhIGlzIHJlbmRlcmVkIGlu +IGRvYy5pbmhhbHQpCiAgICAgICAgICAgIGNvbnN0IGF0dGFjaG1lbnRzID0gZG9jLm1lZGlhcy5m +aWx0ZXIobSA9PiAhbS5kaXNwbGF5TW9kZSB8fCBtLmRpc3BsYXlNb2RlID09PSAnYXR0YWNobWVu +dCcpOwogICAgICAgICAgICBjb25zdCBpbmxpbmVNZWRpYSA9IGRvYy5tZWRpYXMuZmlsdGVyKG0g +PT4gbS5kaXNwbGF5TW9kZSAmJiBtLmRpc3BsYXlNb2RlICE9PSAnYXR0YWNobWVudCcpOwoKICAg +ICAgICAgICAgbGV0IHNlY3Rpb25zID0gJyc7CgogICAgICAgICAgICBpZiAoYXR0YWNobWVudHMu +bGVuZ3RoID4gMCkgewogICAgICAgICAgICAgICAgc2VjdGlvbnMgKz0gJzxoMyBzdHlsZT0iZm9u +dC1zaXplOjE2cHg7IGZvbnQtd2VpZ2h0OjYwMDsgY29sb3I6dmFyKC0tdGV4dC1oZWFkaW5nKTsg +bWFyZ2luLWJvdHRvbToxMnB4OyI+QW5ow6RuZ2UgKCcgKyBhdHRhY2htZW50cy5sZW5ndGggKyAn +KTwvaDM+JzsKICAgICAgICAgICAgICAgIHNlY3Rpb25zICs9ICc8ZGl2IHN0eWxlPSJkaXNwbGF5 +OmZsZXg7IGZsZXgtZGlyZWN0aW9uOmNvbHVtbjsgZ2FwOjhweDsgbWFyZ2luLWJvdHRvbToyMHB4 +OyI+JzsKICAgICAgICAgICAgICAgIGF0dGFjaG1lbnRzLmZvckVhY2gobWVkaWEgPT4gewogICAg +ICAgICAgICAgICAgICAgIGNvbnN0IHR5cGUgPSBtZWRpYS50eXBlIHx8ICdmaWxlJzsKICAgICAg +ICAgICAgICAgICAgICBjb25zdCB0eXBlTGFiZWwgPSB0eXBlLnRvVXBwZXJDYXNlKCk7CiAgICAg +ICAgICAgICAgICAgICAgY29uc3Qgc2FmZVVybCA9IHRoaXMuZXNjYXBlQXR0cihtZWRpYS51cmwp +OwogICAgICAgICAgICAgICAgICAgIGNvbnN0IHNhZmVUaXRsZSA9IHRoaXMuZXNjYXBlQXR0ciht +ZWRpYS50aXRsZSB8fCAnJyk7CgogICAgICAgICAgICAgICAgICAgIHNlY3Rpb25zICs9ICc8ZGl2 +IGNsYXNzPSJhdHRhY2htZW50LWl0ZW0iIG9uY2xpY2s9Im9wZW5NZWRpYU1vZGFsKFwnJyArIHNh +ZmVVcmwgKyAnXCcsXCcnICsgdHlwZSArICdcJyxcJycgKyBzYWZlVGl0bGUgKyAnXCcpIj4nICsK +ICAgICAgICAgICAgICAgICAgICAgICAgJzxzcGFuIGNsYXNzPSJkcml2ZS1maWxlLWljb24gJyAr +IHR5cGUgKyAnIj4nICsgdHlwZUxhYmVsICsgJzwvc3Bhbj4nICsKICAgICAgICAgICAgICAgICAg +ICAgICAgJzxkaXYgY2xhc3M9ImF0dGFjaG1lbnQtaW5mbyI+JyArCiAgICAgICAgICAgICAgICAg +ICAgICAgICAgICAnPGRpdiBjbGFzcz0iYXR0YWNobWVudC10aXRsZSI+JyArIHRoaXMuZXNjYXBl +SFRNTChtZWRpYS50aXRsZSB8fCBtZWRpYS51cmwuc3BsaXQoJy8nKS5wb3AoKSkgKyAnPC9kaXY+ +JyArCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnPGRpdiBjbGFzcz0iYXR0YWNobWVudC1t +ZXRhIj4nICsgdGhpcy5lc2NhcGVIVE1MKG1lZGlhLmRlc2NyaXB0aW9uIHx8ICcnKSArICc8L2Rp +dj4nICsKICAgICAgICAgICAgICAgICAgICAgICAgJzwvZGl2PicgKwogICAgICAgICAgICAgICAg +ICAgICAgICAnPGRpdiBjbGFzcz0iYXR0YWNobWVudC1hY3Rpb25zIiBvbmNsaWNrPSJldmVudC5z +dG9wUHJvcGFnYXRpb24oKSI+JzsKCiAgICAgICAgICAgICAgICAgICAgaWYgKHR5cGUgPT09ICdw +ZGYnKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHNlY3Rpb25zICs9ICc8YnV0dG9uIG9uY2xp +Y2s9IndpbmRvdy5vcGVuKFwnJyArIHNhZmVVcmwgKyAnXCcsXCdfYmxhbmtcJykiPk5ldWVyIFRh +YjwvYnV0dG9uPic7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIHNl +Y3Rpb25zICs9ICc8YnV0dG9uIG9uY2xpY2s9Im9wZW5NZWRpYU1vZGFsKFwnJyArIHNhZmVVcmwg +KyAnXCcsXCcnICsgdHlwZSArICdcJyxcJycgKyBzYWZlVGl0bGUgKyAnXCcpIj5BbnplaWdlbjwv +YnV0dG9uPic7CiAgICAgICAgICAgICAgICAgICAgc2VjdGlvbnMgKz0gJzwvZGl2PjwvZGl2Pic7 +CiAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgIHNlY3Rpb25zICs9ICc8L2Rpdj4n +OwogICAgICAgICAgICB9CgogICAgICAgICAgICBpZiAoaW5saW5lTWVkaWEubGVuZ3RoID4gMCkg +ewogICAgICAgICAgICAgICAgc2VjdGlvbnMgKz0gJzxoMyBzdHlsZT0iZm9udC1zaXplOjE2cHg7 +IGZvbnQtd2VpZ2h0OjYwMDsgY29sb3I6dmFyKC0tdGV4dC1oZWFkaW5nKTsgbWFyZ2luLWJvdHRv +bToxMnB4OyI+RWluZ2ViZXR0ZXRlIE1lZGllbiAoJyArIGlubGluZU1lZGlhLmxlbmd0aCArICcp +PC9oMz4nOwogICAgICAgICAgICAgICAgc2VjdGlvbnMgKz0gJzxkaXYgc3R5bGU9ImRpc3BsYXk6 +ZmxleDsgZmxleC1kaXJlY3Rpb246Y29sdW1uOyBnYXA6OHB4OyI+JzsKICAgICAgICAgICAgICAg +IGlubGluZU1lZGlhLmZvckVhY2gobWVkaWEgPT4gewogICAgICAgICAgICAgICAgICAgIGNvbnN0 +IHR5cGUgPSBtZWRpYS50eXBlIHx8ICdmaWxlJzsKICAgICAgICAgICAgICAgICAgICBjb25zdCB0 +eXBlTGFiZWwgPSB0eXBlLnRvVXBwZXJDYXNlKCk7CiAgICAgICAgICAgICAgICAgICAgY29uc3Qg +c2FmZVVybCA9IHRoaXMuZXNjYXBlQXR0cihtZWRpYS51cmwpOwogICAgICAgICAgICAgICAgICAg +IGNvbnN0IHNhZmVUaXRsZSA9IHRoaXMuZXNjYXBlQXR0cihtZWRpYS50aXRsZSB8fCAnJyk7CiAg +ICAgICAgICAgICAgICAgICAgY29uc3QgbW9kZUxhYmVsID0gbWVkaWEuZGlzcGxheU1vZGUgPT09 +ICdpbmxpbmUnID8gJ0JpbGQnIDoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg +ICBtZWRpYS5kaXNwbGF5TW9kZSA9PT0gJ3BkZi1saW5rJyA/ICdQREYtTGluaycgOgogICAgICAg +ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lZGlhLmRpc3BsYXlNb2RlID09PSAncGRm +LWlmcmFtZScgPyAnUERGIGVpbmdlYmV0dGV0JyA6IG1lZGlhLmRpc3BsYXlNb2RlOwoKICAgICAg +ICAgICAgICAgICAgICBzZWN0aW9ucyArPSAnPGRpdiBjbGFzcz0iYXR0YWNobWVudC1pdGVtIiBv +bmNsaWNrPSJvcGVuTWVkaWFNb2RhbChcJycgKyBzYWZlVXJsICsgJ1wnLFwnJyArIHR5cGUgKyAn +XCcsXCcnICsgc2FmZVRpdGxlICsgJ1wnKSI+JyArCiAgICAgICAgICAgICAgICAgICAgICAgICc8 +c3BhbiBjbGFzcz0iZHJpdmUtZmlsZS1pY29uICcgKyB0eXBlICsgJyI+JyArIHR5cGVMYWJlbCAr +ICc8L3NwYW4+JyArCiAgICAgICAgICAgICAgICAgICAgICAgICc8ZGl2IGNsYXNzPSJhdHRhY2ht +ZW50LWluZm8iPicgKwogICAgICAgICAgICAgICAgICAgICAgICAgICAgJzxkaXYgY2xhc3M9ImF0 +dGFjaG1lbnQtdGl0bGUiPicgKyB0aGlzLmVzY2FwZUhUTUwobWVkaWEudGl0bGUgfHwgJycpICsg +JzwvZGl2PicgKwogICAgICAgICAgICAgICAgICAgICAgICAgICAgJzxkaXYgY2xhc3M9ImF0dGFj +aG1lbnQtbWV0YSI+JyArIHRoaXMuZXNjYXBlSFRNTChtb2RlTGFiZWwpICsgKG1lZGlhLmFsaWdu +bWVudCA/ICcgfCAnICsgbWVkaWEuYWxpZ25tZW50IDogJycpICsgJzwvZGl2PicgKwogICAgICAg +ICAgICAgICAgICAgICAgICAnPC9kaXY+PC9kaXY+JzsKICAgICAgICAgICAgICAgIH0pOwogICAg +ICAgICAgICAgICAgc2VjdGlvbnMgKz0gJzwvZGl2Pic7CiAgICAgICAgICAgIH0KCiAgICAgICAg +ICAgIGlmIChzZWN0aW9ucykgewogICAgICAgICAgICAgICAgbWVkaWFIVE1MID0gJzxkaXYgY2xh +c3M9Im1lZGlhLXNlY3Rpb24iPicgKyBzZWN0aW9ucyArICc8L2Rpdj4nOwogICAgICAgICAgICB9 +CiAgICAgICAgfQoKICAgICAgICBkZXRhaWxDb250YWluZXIuaW5uZXJIVE1MID0KICAgICAgICAg +ICAgJzxkaXYgc3R5bGU9ImRpc3BsYXk6ZmxleDsganVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdl +ZW47IGFsaWduLWl0ZW1zOmZsZXgtc3RhcnQ7IG1hcmdpbi1ib3R0b206MjBweDsiPicgKwogICAg +ICAgICAgICAgICAgJzxkaXYgY2xhc3M9ImRldGFpbC1oZWFkZXIiIHN0eWxlPSJmbGV4OjE7Ij4n +ICsKICAgICAgICAgICAgICAgICAgICAnPGgxIGNsYXNzPSJkZXRhaWwtdGl0bGUiPicgKyB0aGlz +LmVzY2FwZUhUTUwoZG9jLnRpdGVsKSArICc8L2gxPicgKwogICAgICAgICAgICAgICAgICAgICc8 +ZGl2IGNsYXNzPSJkZXRhaWwtbWV0YSI+JyArCiAgICAgICAgICAgICAgICAgICAgICAgICc8ZGl2 +IGNsYXNzPSJtZXRhLWl0ZW0iPjxkaXYgY2xhc3M9Im1ldGEtbGFiZWwiPkthdGVnb3JpZTwvZGl2 +PjxkaXY+JyArIHRoaXMuZXNjYXBlSFRNTChkb2Mua2F0ZWdvcmllKSArICc8L2Rpdj48L2Rpdj4n +ICsKICAgICAgICAgICAgICAgICAgICAgICAgJzxkaXYgY2xhc3M9Im1ldGEtaXRlbSI+PGRpdiBj +bGFzcz0ibWV0YS1sYWJlbCI+U3RhdHVzPC9kaXY+PGRpdj4nICsKICAgICAgICAgICAgICAgICAg +ICAgICAgICAgICc8c3BhbiBjbGFzcz0ic3RhdHVzLWJhZGdlIiBzdHlsZT0iYmFja2dyb3VuZC1j +b2xvcjonICsgY2ZnLmNvbG9yICsgJzsgY29sb3I6JyArIGNmZy50ZXh0Q29sb3IgKyAnOyI+JyAr +IGNmZy5sYWJlbCArICc8L3NwYW4+JyArCiAgICAgICAgICAgICAgICAgICAgICAgICc8L2Rpdj48 +L2Rpdj4nICsKICAgICAgICAgICAgICAgICAgICAgICAgJzxkaXYgY2xhc3M9Im1ldGEtaXRlbSI+ +PGRpdiBjbGFzcz0ibWV0YS1sYWJlbCI+VmVyc2lvbjwvZGl2PjxkaXY+PHNwYW4gc3R5bGU9ImN1 +cnNvcjpwb2ludGVyO2JvcmRlci1ib3R0b206MXB4IGRhc2hlZCB2YXIoLS10ZXh0LW11dGVkKTsi +IG9uY2xpY2s9InNob3dWZXJzaW9uTG9naWMoKSIgdGl0bGU9IktsaWNrZSBmw7xyIGVpbmUgRXJr +bMOkcnVuZyBkZXIgVmVyc2lvbmllcnVuZyI+JyArIHRoaXMuZXNjYXBlSFRNTChkb2MudmVyc2lv +biB8fCAnLScpICsgJzwvc3Bhbj48L2Rpdj48L2Rpdj4nICsKICAgICAgICAgICAgICAgICAgICAg +ICAgJzxkaXYgY2xhc3M9Im1ldGEtaXRlbSI+PGRpdiBjbGFzcz0ibWV0YS1sYWJlbCI+RXJzdGVs +bHQ8L2Rpdj48ZGl2PicgKyBmb3JtYXREYXRlKGRvYy5lcnN0ZWxsdCkgKyAnPC9kaXY+PC9kaXY+ +JyArCiAgICAgICAgICAgICAgICAgICAgICAgICc8ZGl2IGNsYXNzPSJtZXRhLWl0ZW0iPjxkaXYg +Y2xhc3M9Im1ldGEtbGFiZWwiPkdlw6RuZGVydDwvZGl2PjxkaXY+JyArIGZvcm1hdERhdGUoZG9j +LmdlYWVuZGVydCkgKyAnPC9kaXY+PC9kaXY+JyArCiAgICAgICAgICAgICAgICAgICAgICAgIChk +b2MuZXJzdGVsbHRWb24gPyAnPGRpdiBjbGFzcz0ibWV0YS1pdGVtIj48ZGl2IGNsYXNzPSJtZXRh +LWxhYmVsIj5FcnN0ZWxsdCB2b248L2Rpdj48ZGl2PicgKyB0aGlzLmVzY2FwZUhUTUwoZG9jLmVy +c3RlbGx0Vm9uKSArICc8L2Rpdj48L2Rpdj4nIDogJycpICsKICAgICAgICAgICAgICAgICAgICAg +ICAgKGRvYy5iZWFyYmVpdGV0Vm9uID8gJzxkaXYgY2xhc3M9Im1ldGEtaXRlbSI+PGRpdiBjbGFz +cz0ibWV0YS1sYWJlbCI+QmVhcmJlaXRldCB2b248L2Rpdj48ZGl2PicgKyB0aGlzLmVzY2FwZUhU +TUwoZG9jLmJlYXJiZWl0ZXRWb24pICsgJzwvZGl2PjwvZGl2PicgOiAnJykgKwogICAgICAgICAg +ICAgICAgICAgICAgICAoZG9jLnBhcmVudElkID8gJzxkaXYgY2xhc3M9Im1ldGEtaXRlbSI+PGRp +diBjbGFzcz0ibWV0YS1sYWJlbCI+w5xiZXJhcnRpa2VsPC9kaXY+PGRpdj48YSBzdHlsZT0iY29s +b3I6dmFyKC0tdGV4dC1oZWFkaW5nKTtjdXJzb3I6cG9pbnRlcjsiIG9uY2xpY2s9IkRyaXZlUG9y +dGFsLnNlbGVjdERvY3VtZW50KFwnJyArIERyaXZlUG9ydGFsLmVzY2FwZUF0dHIoZG9jLnBhcmVu +dElkKSArICdcJykiPicgKyB0aGlzLmVzY2FwZUhUTUwoKERyaXZlRlMuZG9jdW1lbnRzLmZpbmQo +ZnVuY3Rpb24oZCl7cmV0dXJuIGQuaWQ9PT1kb2MucGFyZW50SWR9KXx8e30pLnRpdGVsIHx8IGRv +Yy5wYXJlbnRJZCkgKyAnPC9hPjwvZGl2PjwvZGl2PicgOiAnJykgKwogICAgICAgICAgICAgICAg +ICAgICAgICAoKGRvYy5zY2hsYWd3b2VydGVyICYmIGRvYy5zY2hsYWd3b2VydGVyLmxlbmd0aCkg +PyAnPGRpdiBjbGFzcz0ibWV0YS1pdGVtIiBzdHlsZT0iZmxleC1iYXNpczoxMDAlOyI+PGRpdiBj +bGFzcz0ibWV0YS1sYWJlbCI+U2NobGFnd8O2cnRlcjwvZGl2PjxkaXY+JyArIGRvYy5zY2hsYWd3 +b2VydGVyLm1hcChmdW5jdGlvbihrKXtyZXR1cm4gJzxzcGFuIGNsYXNzPSJrZXl3b3JkLXRhZyI+ +JytEcml2ZVBvcnRhbC5lc2NhcGVIVE1MKGspKyc8L3NwYW4+Jzt9KS5qb2luKCcgJykgKyAnPC9k +aXY+PC9kaXY+JyA6ICcnKSArCiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX3JlbmRlckNo +aWxkQXJ0aWNsZXMoZG9jKSArCiAgICAgICAgICAgICAgICAgICAgJzwvZGl2PicgKwogICAgICAg +ICAgICAgICAgJzwvZGl2PicgKwogICAgICAgICAgICAgICAgJzxkaXYgY2xhc3M9ImRldGFpbC1h +Y3Rpb25zIj4nICsKICAgICAgICAgICAgICAgICAgICAoRHJpdmVGUy5yZWFkT25seSA/ICcnIDog +JzxidXR0b24gb25jbGljaz0iRHJpdmVFZGl0b3IuZWRpdChcJycgKyBEcml2ZVBvcnRhbC5lc2Nh +cGVBdHRyKGRvYy5pZCkgKyAnXCcpIj5CZWFyYmVpdGVuPC9idXR0b24+JykgKwogICAgICAgICAg +ICAgICAgICAgICh0aGlzLl9jYW5TZWVSZXZpc2lvbnMoZG9jKSAmJiBkb2MucmV2aXNpb25zICYm +IGRvYy5yZXZpc2lvbnMubGVuZ3RoID4gMCA/ICc8YnV0dG9uIHN0eWxlPSJib3JkZXItY29sb3I6 +IzNiODJmNjtjb2xvcjojM2I4MmY2OyIgb25jbGljaz0iRHJpdmVQb3J0YWwub3BlblJldmlzaW9u +cyhcJycgKyBEcml2ZVBvcnRhbC5lc2NhcGVBdHRyKGRvYy5pZCkgKyAnXCcpIj5WZXJzaW9uZW4g +KCcgKyBkb2MucmV2aXNpb25zLmxlbmd0aCArICcpPC9idXR0b24+JyA6ICcnKSArCiAgICAgICAg +ICAgICAgICAgICAgKERyaXZlRlMucmVhZE9ubHkgPyAnJyA6ICc8YnV0dG9uIGNsYXNzPSJidG4t +ZGFuZ2VyIiBvbmNsaWNrPSJEcml2ZVBvcnRhbC5kZWxldGVEb2N1bWVudChcJycgKyBEcml2ZVBv +cnRhbC5lc2NhcGVBdHRyKGRvYy5pZCkgKyAnXCcpIj5Mw7ZzY2hlbjwvYnV0dG9uPicpICsKICAg +ICAgICAgICAgICAgICAgICAoZG9jLnN0YXR1cyA9PT0gJ1Byw7xmdW5nJyAmJiBEcml2ZUdvdmVy +bmFuY2UuY2FuQXBwcm92ZShkb2MpID8KICAgICAgICAgICAgICAgICAgICAgICAgKChkb2MucmV2 +aXNpb25zICYmIGRvYy5yZXZpc2lvbnMubGVuZ3RoID4gMCkgPyAnPGJ1dHRvbiBzdHlsZT0iYm9y +ZGVyLWNvbG9yOnZhcigtLXRleHQtaGVhZGluZyk7Y29sb3I6dmFyKC0tdGV4dC1oZWFkaW5nKTsi +IG9uY2xpY2s9IkRyaXZlUG9ydGFsLnRvZ2dsZURpZmYoXCcnICsgRHJpdmVQb3J0YWwuZXNjYXBl +QXR0cihkb2MuaWQpICsgJ1wnKSIgaWQ9ImJ0bkRpZmYiPsOEbmRlcnVuZ2VuIGFuemVpZ2VuPC9i +dXR0b24+JyA6ICcnKSArCiAgICAgICAgICAgICAgICAgICAgICAgICc8YnV0dG9uIHN0eWxlPSJi +b3JkZXItY29sb3I6IzI4YTc0NTtjb2xvcjojMjhhNzQ1OyIgb25jbGljaz0iRHJpdmVHb3Zlcm5h +bmNlLm9wZW5SZXZpZXdEaWFsb2coXCcnICsgRHJpdmVQb3J0YWwuZXNjYXBlQXR0cihkb2MuaWQp +ICsgJ1wnLFwnYXBwcm92ZVwnKSI+RnJlaWdlYmVuPC9idXR0b24+JyArCiAgICAgICAgICAgICAg +ICAgICAgICAgICc8YnV0dG9uIHN0eWxlPSJib3JkZXItY29sb3I6I2RjMzU0NTtjb2xvcjojZGMz +NTQ1OyIgb25jbGljaz0iRHJpdmVHb3Zlcm5hbmNlLm9wZW5SZXZpZXdEaWFsb2coXCcnICsgRHJp +dmVQb3J0YWwuZXNjYXBlQXR0cihkb2MuaWQpICsgJ1wnLFwncmVqZWN0XCcpIj5BYmxlaG5lbjwv +YnV0dG9uPicgOiAnJykgKwogICAgICAgICAgICAgICAgJzwvZGl2PicgKwogICAgICAgICAgICAn +PC9kaXY+JyArCiAgICAgICAgICAgICc8ZGl2IGNsYXNzPSJkZXRhaWwtY29udGVudCIgaWQ9ImRl +dGFpbENvbnRlbnQiPicgKyAoZG9jLmluaGFsdCB8fCAnJykgKyAnPC9kaXY+JyArCiAgICAgICAg +ICAgIHRoaXMucmVuZGVyQ29udHJpYnV0b3JzKGRvYykgKwogICAgICAgICAgICB0aGlzLnJlbmRl +clJldmlld0hpc3RvcnkoZG9jKSArCiAgICAgICAgICAgIG1lZGlhSFRNTDsKCiAgICAgICAgLy8g +UG9zdC1SZW5kZXI6IEFsbGUgTWVkaWVuIGltIEluaGFsdCBrbGlja2JhciBtYWNoZW4gKG9lZmZu +ZXQgTW9kYWwpCiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7CiAgICAgICAgICAgIGNvbnN0IGNv +bnRlbnQgPSBkZXRhaWxDb250YWluZXIucXVlcnlTZWxlY3RvcignLmRldGFpbC1jb250ZW50Jyk7 +CiAgICAgICAgICAgIGlmICghY29udGVudCkgcmV0dXJuOwoKICAgICAgICAgICAgLy8gQmlsZGVy +OiBLbGljayBvZWZmbmV0IE1vZGFsCiAgICAgICAgICAgIGNvbnRlbnQucXVlcnlTZWxlY3RvckFs +bCgnLmRyaXZlLW1lZGlhIGltZywgLmRldGFpbC1jb250ZW50ID4gaW1nJykuZm9yRWFjaChpbWcg +PT4gewogICAgICAgICAgICAgICAgaWYgKGltZy5fbW9kYWxCb3VuZCkgcmV0dXJuOwogICAgICAg +ICAgICAgICAgaW1nLnN0eWxlLmN1cnNvciA9ICdwb2ludGVyJzsKICAgICAgICAgICAgICAgIGlt +Zy5vbmNsaWNrID0gZnVuY3Rpb24oZSkgewogICAgICAgICAgICAgICAgICAgIGUuc3RvcFByb3Bh +Z2F0aW9uKCk7CiAgICAgICAgICAgICAgICAgICAgb3Blbk1lZGlhTW9kYWwoaW1nLnNyYywgJ2lt +YWdlJywgaW1nLmFsdCB8fCAnJyk7CiAgICAgICAgICAgICAgICB9OwogICAgICAgICAgICAgICAg +aW1nLl9tb2RhbEJvdW5kID0gdHJ1ZTsKICAgICAgICAgICAgfSk7CgogICAgICAgICAgICAvLyBQ +REYtTGlua3M6IDxhIHRhcmdldD0iX2JsYW5rIj4gaW4gTW9kYWwtS2xpY2sgdW13YW5kZWxuCiAg +ICAgICAgICAgIGNvbnRlbnQucXVlcnlTZWxlY3RvckFsbCgnLmRyaXZlLW1lZGlhLXBkZi1saW5r +JykuZm9yRWFjaChlbCA9PiB7CiAgICAgICAgICAgICAgICBjb25zdCBsaW5rID0gZWwucXVlcnlT +ZWxlY3RvcignYScpOwogICAgICAgICAgICAgICAgY29uc3QgdGl0bGVTcGFuID0gZWwucXVlcnlT +ZWxlY3RvcignLnBkZi10aXRsZScpOwogICAgICAgICAgICAgICAgY29uc3QgcGRmVXJsID0gbGlu +ayA/IGxpbmsuaHJlZiA6ICcnOwogICAgICAgICAgICAgICAgY29uc3QgcGRmVGl0bGUgPSAodGl0 +bGVTcGFuIHx8IGxpbmsgfHwge30pLnRleHRDb250ZW50IHx8ICdQREYnOwogICAgICAgICAgICAg +ICAgaWYgKGxpbmspIHsKICAgICAgICAgICAgICAgICAgICBjb25zdCBzcGFuID0gZG9jdW1lbnQu +Y3JlYXRlRWxlbWVudCgnc3BhbicpOwogICAgICAgICAgICAgICAgICAgIHNwYW4uY2xhc3NOYW1l +ID0gJ3BkZi10aXRsZSc7CiAgICAgICAgICAgICAgICAgICAgc3Bhbi50ZXh0Q29udGVudCA9IGxp +bmsudGV4dENvbnRlbnQ7CiAgICAgICAgICAgICAgICAgICAgbGluay5yZXBsYWNlV2l0aChzcGFu +KTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGVsLm9uY2xpY2sgPSBmdW5jdGlv +bihlKSB7IGUucHJldmVudERlZmF1bHQoKTsgZS5zdG9wUHJvcGFnYXRpb24oKTsgb3Blbk1lZGlh +TW9kYWwocGRmVXJsLCAncGRmJywgcGRmVGl0bGUpOyB9OwogICAgICAgICAgICB9KTsKCiAgICAg +ICAgICAgIC8vIFBERi1pRnJhbWVzOiBLbGljayBvZWZmbmV0IE1vZGFsCiAgICAgICAgICAgIGNv +bnRlbnQucXVlcnlTZWxlY3RvckFsbCgnLmRyaXZlLW1lZGlhLXBkZi1pZnJhbWUnKS5mb3JFYWNo +KGVsID0+IHsKICAgICAgICAgICAgICAgIGNvbnN0IGlmcmFtZSA9IGVsLnF1ZXJ5U2VsZWN0b3Io +J2lmcmFtZScpOwogICAgICAgICAgICAgICAgaWYgKGlmcmFtZSkgewogICAgICAgICAgICAgICAg +ICAgIGVsLm9uY2xpY2sgPSBmdW5jdGlvbihlKSB7IGUucHJldmVudERlZmF1bHQoKTsgZS5zdG9w +UHJvcGFnYXRpb24oKTsgb3Blbk1lZGlhTW9kYWwoaWZyYW1lLnNyYywgJ3BkZicsICdQREYnKTsg +fTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSk7CgogICAgICAgICAgICAvLyBWaWRl +bzogS2xpY2sgYXVmIENvbnRhaW5lciBvZWZmbmV0IE1vZGFsIChmYWxscyBuaWNodCBiZXJlaXRz +IGNvbnRyb2xzLWFrdGl2KQogICAgICAgICAgICBjb250ZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ3Zp +ZGVvJykuZm9yRWFjaCh2aWQgPT4gewogICAgICAgICAgICAgICAgaWYgKHZpZC5fbW9kYWxCb3Vu +ZCkgcmV0dXJuOwogICAgICAgICAgICAgICAgY29uc3Qgc3JjID0gdmlkLnF1ZXJ5U2VsZWN0b3Io +J3NvdXJjZScpID8gdmlkLnF1ZXJ5U2VsZWN0b3IoJ3NvdXJjZScpLnNyYyA6IHZpZC5zcmM7CiAg +ICAgICAgICAgICAgICBpZiAoc3JjKSB7CiAgICAgICAgICAgICAgICAgICAgdmlkLnN0eWxlLmN1 +cnNvciA9ICdwb2ludGVyJzsKICAgICAgICAgICAgICAgICAgICB2aWQub25kYmxjbGljayA9IGZ1 +bmN0aW9uKGUpIHsKICAgICAgICAgICAgICAgICAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTsK +ICAgICAgICAgICAgICAgICAgICAgICAgb3Blbk1lZGlhTW9kYWwoc3JjLCAndmlkZW8nLCAnJyk7 +CiAgICAgICAgICAgICAgICAgICAgfTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg +IHZpZC5fbW9kYWxCb3VuZCA9IHRydWU7CiAgICAgICAgICAgIH0pOwoKICAgICAgICAgICAgLy8g +QXVkaW86IERvcHBlbGtsaWNrIG9lZmZuZXQgTW9kYWwKICAgICAgICAgICAgY29udGVudC5xdWVy +eVNlbGVjdG9yQWxsKCdhdWRpbycpLmZvckVhY2goYXVkID0+IHsKICAgICAgICAgICAgICAgIGlm +IChhdWQuX21vZGFsQm91bmQpIHJldHVybjsKICAgICAgICAgICAgICAgIGNvbnN0IHNyYyA9IGF1 +ZC5zcmMgfHwgKGF1ZC5xdWVyeVNlbGVjdG9yKCdzb3VyY2UnKSA/IGF1ZC5xdWVyeVNlbGVjdG9y +KCdzb3VyY2UnKS5zcmMgOiAnJyk7CiAgICAgICAgICAgICAgICBpZiAoc3JjKSB7CiAgICAgICAg +ICAgICAgICAgICAgYXVkLm9uZGJsY2xpY2sgPSBmdW5jdGlvbihlKSB7CiAgICAgICAgICAgICAg +ICAgICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7CiAgICAgICAgICAgICAgICAgICAgICAgIG9w +ZW5NZWRpYU1vZGFsKHNyYywgJ2F1ZGlvJywgJycpOwogICAgICAgICAgICAgICAgICAgIH07CiAg +ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBhdWQuX21vZGFsQm91bmQgPSB0cnVlOwog +ICAgICAgICAgICB9KTsKCiAgICAgICAgICAgIC8vIElubGluZS1FbWJlZHMgKFZpZGVvLCBBdWRp +bywgT2ZmaWNlKTogS2xpY2sgb2VmZm5ldCBNb2RhbAogICAgICAgICAgICBjb250ZW50LnF1ZXJ5 +U2VsZWN0b3JBbGwoJy5kcml2ZS1tZWRpYS1lbWJlZCcpLmZvckVhY2goZWwgPT4gewogICAgICAg +ICAgICAgICAgaWYgKGVsLl9tb2RhbEJvdW5kKSByZXR1cm47CiAgICAgICAgICAgICAgICBjb25z +dCBtZWRpYVVybCA9IGVsLmdldEF0dHJpYnV0ZSgnZGF0YS1tZWRpYS11cmwnKTsKICAgICAgICAg +ICAgICAgIGNvbnN0IG1lZGlhVHlwZSA9IGVsLmdldEF0dHJpYnV0ZSgnZGF0YS1tZWRpYS10eXBl +Jyk7CiAgICAgICAgICAgICAgICBjb25zdCBsYWJlbCA9IGVsLnF1ZXJ5U2VsZWN0b3IoJy5kcml2 +ZS1lbWJlZC1sYWJlbCcpOwogICAgICAgICAgICAgICAgY29uc3QgbWVkaWFUaXRsZSA9IGxhYmVs +ID8gbGFiZWwudGV4dENvbnRlbnQgOiAnJzsKICAgICAgICAgICAgICAgIGlmIChtZWRpYVVybCkg +ewogICAgICAgICAgICAgICAgICAgIGVsLm9uY2xpY2sgPSBmdW5jdGlvbihlKSB7IGUucHJldmVu +dERlZmF1bHQoKTsgZS5zdG9wUHJvcGFnYXRpb24oKTsgb3Blbk1lZGlhTW9kYWwobWVkaWFVcmws +IG1lZGlhVHlwZSwgbWVkaWFUaXRsZSk7IH07CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg +ICAgICBlbC5fbW9kYWxCb3VuZCA9IHRydWU7CiAgICAgICAgICAgIH0pOwoKICAgICAgICAgICAg +Ly8gPT09IEFjY29yZGlvbnMgYWt0aXZpZXJlbiAoQXVmLS9adWtsYXBwZW4sIHN0YW5kYXJkbWFl +c3NpZyBlaW5nZWtsYXBwdCkgPT09CiAgICAgICAgICAgIGNvbnRlbnQucXVlcnlTZWxlY3RvckFs +bCgnLmRyaXZlLWFjY29yZGlvbicpLmZvckVhY2goZnVuY3Rpb24oYWNjKSB7CiAgICAgICAgICAg +ICAgICBhY2Muc2V0QXR0cmlidXRlKCdjb250ZW50ZWRpdGFibGUnLCAnZmFsc2UnKTsKICAgICAg +ICAgICAgICAgIGFjYy5jbGFzc0xpc3QucmVtb3ZlKCdvcGVuJyk7CiAgICAgICAgICAgICAgICB2 +YXIgaGVhZGVyID0gYWNjLnF1ZXJ5U2VsZWN0b3IoJy5kcml2ZS1hY2NvcmRpb24taGVhZGVyJyk7 +CiAgICAgICAgICAgICAgICBpZiAoaGVhZGVyICYmICFoZWFkZXIuX2FjY0JvdW5kKSB7CiAgICAg +ICAgICAgICAgICAgICAgaGVhZGVyLm9uY2xpY2sgPSBmdW5jdGlvbihlKSB7CiAgICAgICAgICAg +ICAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTsKICAgICAgICAgICAgICAgICAgICAgICAg +ZS5zdG9wUHJvcGFnYXRpb24oKTsKICAgICAgICAgICAgICAgICAgICAgICAgYWNjLmNsYXNzTGlz +dC50b2dnbGUoJ29wZW4nKTsKICAgICAgICAgICAgICAgICAgICB9OwogICAgICAgICAgICAgICAg +ICAgIGhlYWRlci5fYWNjQm91bmQgPSB0cnVlOwogICAgICAgICAgICAgICAgfQogICAgICAgICAg +ICB9KTsKCiAgICAgICAgICAgIC8vID09PSBGQVEtQmVyZWljaGUgYWt0aXZpZXJlbiAoQXVmLS9a +dWtsYXBwZW4sIHN0YW5kYXJkbWFlc3NpZyBlaW5nZWtsYXBwdCkgPT09CiAgICAgICAgICAgIGNv +bnRlbnQucXVlcnlTZWxlY3RvckFsbCgnLmRyaXZlLWZhcScpLmZvckVhY2goZnVuY3Rpb24oZmFx +KSB7CiAgICAgICAgICAgICAgICBmYXEuc2V0QXR0cmlidXRlKCdjb250ZW50ZWRpdGFibGUnLCAn +ZmFsc2UnKTsKICAgICAgICAgICAgICAgIGZhcS5xdWVyeVNlbGVjdG9yQWxsKCcuZHJpdmUtZmFx +LWl0ZW0nKS5mb3JFYWNoKGZ1bmN0aW9uKGl0ZW0pIHsgaXRlbS5jbGFzc0xpc3QucmVtb3ZlKCdv +cGVuJyk7IH0pOwogICAgICAgICAgICAgICAgZmFxLnF1ZXJ5U2VsZWN0b3JBbGwoJy5kcml2ZS1m +YXEtcXVlc3Rpb24nKS5mb3JFYWNoKGZ1bmN0aW9uKHEpIHsKICAgICAgICAgICAgICAgICAgICBp +ZiAocS5fZmFxQm91bmQpIHJldHVybjsKICAgICAgICAgICAgICAgICAgICBxLm9uY2xpY2sgPSBm +dW5jdGlvbihlKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTsK +ICAgICAgICAgICAgICAgICAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTsKICAgICAgICAgICAg +ICAgICAgICAgICAgcS5jbG9zZXN0KCcuZHJpdmUtZmFxLWl0ZW0nKS5jbGFzc0xpc3QudG9nZ2xl +KCdvcGVuJyk7CiAgICAgICAgICAgICAgICAgICAgfTsKICAgICAgICAgICAgICAgICAgICBxLl9m +YXFCb3VuZCA9IHRydWU7CiAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgfSk7CgogICAg +ICAgICAgICAvLyA9PT0gU29ydGllcmJhcmUgVGFiZWxsZW4gYWt0aXZpZXJlbiA9PT0KICAgICAg +ICAgICAgY29udGVudC5xdWVyeVNlbGVjdG9yQWxsKCcuZHJpdmUtdGFibGVbZGF0YS1zb3J0YWJs +ZT0idHJ1ZSJdJykuZm9yRWFjaChmdW5jdGlvbih0YWJsZSkgewogICAgICAgICAgICAgICAgdGFi +bGUucXVlcnlTZWxlY3RvckFsbCgndGguc29ydGFibGUnKS5mb3JFYWNoKGZ1bmN0aW9uKHRoKSB7 +CiAgICAgICAgICAgICAgICAgICAgaWYgKHRoLl9zb3J0Qm91bmQpIHJldHVybjsKICAgICAgICAg +ICAgICAgICAgICB0aC5zZXRBdHRyaWJ1dGUoJ2NvbnRlbnRlZGl0YWJsZScsICdmYWxzZScpOwog +ICAgICAgICAgICAgICAgICAgIHRoLm9uY2xpY2sgPSBmdW5jdGlvbihlKSB7CiAgICAgICAgICAg +ICAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTsKICAgICAgICAgICAgICAgICAgICAgICAg +ZS5zdG9wUHJvcGFnYXRpb24oKTsKICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGlkeCA9IEFy +cmF5LmZyb20odGgucGFyZW50RWxlbWVudC5jaGlsZHJlbikuaW5kZXhPZih0aCk7CiAgICAgICAg +ICAgICAgICAgICAgICAgIHZhciB0Ym9keSA9IHRhYmxlLnF1ZXJ5U2VsZWN0b3IoJ3Rib2R5Jyk7 +CiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghdGJvZHkpIHJldHVybjsKICAgICAgICAgICAg +ICAgICAgICAgICAgdmFyIGFzYyA9ICF0aC5jbGFzc0xpc3QuY29udGFpbnMoJ3NvcnQtYXNjJyk7 +CiAgICAgICAgICAgICAgICAgICAgICAgIC8vIEFsbGUgU29ydC1NYXJrZXIgZW50ZmVybmVuCiAg +ICAgICAgICAgICAgICAgICAgICAgIHRhYmxlLnF1ZXJ5U2VsZWN0b3JBbGwoJ3RoJykuZm9yRWFj +aChmdW5jdGlvbihoKSB7IGguY2xhc3NMaXN0LnJlbW92ZSgnc29ydC1hc2MnLCAnc29ydC1kZXNj +Jyk7IH0pOwogICAgICAgICAgICAgICAgICAgICAgICB0aC5jbGFzc0xpc3QuYWRkKGFzYyA/ICdz +b3J0LWFzYycgOiAnc29ydC1kZXNjJyk7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhciByb3dz +ID0gQXJyYXkuZnJvbSh0Ym9keS5xdWVyeVNlbGVjdG9yQWxsKCd0cicpKTsKICAgICAgICAgICAg +ICAgICAgICAgICAgcm93cy5zb3J0KGZ1bmN0aW9uKGEsIGIpIHsKICAgICAgICAgICAgICAgICAg +ICAgICAgICAgIHZhciBhVGV4dCA9IChhLmNlbGxzW2lkeF0gPyBhLmNlbGxzW2lkeF0udGV4dENv +bnRlbnQudHJpbSgpIDogJycpLnRvTG93ZXJDYXNlKCk7CiAgICAgICAgICAgICAgICAgICAgICAg +ICAgICB2YXIgYlRleHQgPSAoYi5jZWxsc1tpZHhdID8gYi5jZWxsc1tpZHhdLnRleHRDb250ZW50 +LnRyaW0oKSA6ICcnKS50b0xvd2VyQ2FzZSgpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAg +Ly8gTnVtZXJpc2NoZSBTb3J0aWVydW5nIHdlbm4gbW9lZ2xpY2gKICAgICAgICAgICAgICAgICAg +ICAgICAgICAgIHZhciBhTnVtID0gcGFyc2VGbG9hdChhVGV4dCksIGJOdW0gPSBwYXJzZUZsb2F0 +KGJUZXh0KTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghaXNOYU4oYU51bSkgJiYg +IWlzTmFOKGJOdW0pKSByZXR1cm4gYXNjID8gYU51bSAtIGJOdW0gOiBiTnVtIC0gYU51bTsKICAg +ICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBhc2MgPyBhVGV4dC5sb2NhbGVDb21wYXJl +KGJUZXh0LCAnZGUnKSA6IGJUZXh0LmxvY2FsZUNvbXBhcmUoYVRleHQsICdkZScpOwogICAgICAg +ICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgICAgICAgICAgcm93cy5mb3JFYWNo +KGZ1bmN0aW9uKHJvdykgeyB0Ym9keS5hcHBlbmRDaGlsZChyb3cpOyB9KTsKICAgICAgICAgICAg +ICAgICAgICB9OwogICAgICAgICAgICAgICAgICAgIHRoLl9zb3J0Qm91bmQgPSB0cnVlOwogICAg +ICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIH0pOwoKICAgICAgICAgICAgLy8gPT09IMOcYmVy +c2NocmlmdGVuIG1pdCBBbmNob3ItSURzIHZlcnNlaGVuID09PQogICAgICAgICAgICBjb250ZW50 +LnF1ZXJ5U2VsZWN0b3JBbGwoJ2gxLCBoMiwgaDMsIGg0JykuZm9yRWFjaChmdW5jdGlvbihoKSB7 +CiAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IGgudGV4dENvbnRlbnQudHJpbSgpOwogICAgICAg +ICAgICAgICAgaWYgKCF0ZXh0KSByZXR1cm47CiAgICAgICAgICAgICAgICB2YXIgc2x1ZyA9IHRl +eHQudG9Mb3dlckNhc2UoKQogICAgICAgICAgICAgICAgICAgIC5yZXBsYWNlKC/DpC9nLCAnYWUn +KS5yZXBsYWNlKC/Dti9nLCAnb2UnKS5yZXBsYWNlKC/DvC9nLCAndWUnKS5yZXBsYWNlKC/Dny9n +LCAnc3MnKQogICAgICAgICAgICAgICAgICAgIC5yZXBsYWNlKC9bXmEtejAtOV0rL2csICctJyku +cmVwbGFjZSgvXi18LSQvZywgJycpOwogICAgICAgICAgICAgICAgaC5pZCA9IHNsdWc7CiAgICAg +ICAgICAgIH0pOwoKICAgICAgICAgICAgLy8gPT09IE1hbnVlbGxlIENyb3NzbGlua3MgKC5kcml2 +ZS14cmVmKSBrbGlja2JhciBtYWNoZW4gPT09CiAgICAgICAgICAgIGNvbnRlbnQucXVlcnlTZWxl +Y3RvckFsbCgnLmRyaXZlLXhyZWYnKS5mb3JFYWNoKGZ1bmN0aW9uKGVsKSB7CiAgICAgICAgICAg +ICAgICB2YXIgdGFyZ2V0ID0gZWwuZ2V0QXR0cmlidXRlKCdkYXRhLXhyZWYtdGFyZ2V0Jyk7CiAg +ICAgICAgICAgICAgICBpZiAoIXRhcmdldCkgcmV0dXJuOwogICAgICAgICAgICAgICAgZWwub25j +bGljayA9IGZ1bmN0aW9uKGUpIHsKICAgICAgICAgICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0 +KCk7CiAgICAgICAgICAgICAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTsKICAgICAgICAgICAg +ICAgICAgICB2YXIgcGFydHMgPSB0YXJnZXQuc3BsaXQoJyMnKTsKICAgICAgICAgICAgICAgICAg +ICB2YXIgZG9jSWQgPSBwYXJ0c1swXTsKICAgICAgICAgICAgICAgICAgICB2YXIgaGVhZGluZ1Ns +dWcgPSBwYXJ0c1sxXSB8fCAnJzsKICAgICAgICAgICAgICAgICAgICBEcml2ZVBvcnRhbC5zZWxl +Y3REb2N1bWVudChkb2NJZCkudGhlbihmdW5jdGlvbigpIHsKICAgICAgICAgICAgICAgICAgICAg +ICAgRHJpdmVQb3J0YWwuaGlnaGxpZ2h0SXRlbShkb2NJZCk7CiAgICAgICAgICAgICAgICAgICAg +ICAgIGlmIChoZWFkaW5nU2x1ZykgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gTmFj +aCBSZW5kZXIgenVtIEhlYWRpbmcgc2Nyb2xsZW4KICAgICAgICAgICAgICAgICAgICAgICAgICAg +IHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg +dmFyIGhlYWRpbmcgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChoZWFkaW5nU2x1Zyk7CiAgICAg +ICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGhlYWRpbmcpIHsKICAgICAgICAgICAgICAg +ICAgICAgICAgICAgICAgICAgICAgaGVhZGluZy5zY3JvbGxJbnRvVmlldyh7IGJlaGF2aW9yOiAn +c21vb3RoJywgYmxvY2s6ICdzdGFydCcgfSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg +ICAgICAgIGhlYWRpbmcuc3R5bGUudHJhbnNpdGlvbiA9ICdiYWNrZ3JvdW5kIDAuM3MnOwogICAg +ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWFkaW5nLnN0eWxlLmJhY2tncm91bmQg +PSAndmFyKC0tYmctYWN0aXZlKSc7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg +IHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7IGhlYWRpbmcuc3R5bGUuYmFja2dyb3VuZCA9ICcnOyB9 +LCAyMDAwKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg +ICAgICAgICAgICAgICB9LCAyMDApOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAg +ICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICB9OwogICAgICAgICAgICAgICAgLy8gTW91 +c2VvdmVyOiBQb3BvdmVyIG1pdCBaaWVsLUluZm8KICAgICAgICAgICAgICAgIGVsLmFkZEV2ZW50 +TGlzdGVuZXIoJ21vdXNlZW50ZXInLCBmdW5jdGlvbihldikgewogICAgICAgICAgICAgICAgICAg +IHZhciBwYXJ0cyA9IHRhcmdldC5zcGxpdCgnIycpOwogICAgICAgICAgICAgICAgICAgIHZhciBk +b2NJZCA9IHBhcnRzWzBdOwogICAgICAgICAgICAgICAgICAgIHZhciBkb2MgPSBEcml2ZUZTLmRv +Y3VtZW50cy5maW5kKGZ1bmN0aW9uKGQpIHsgcmV0dXJuIGQuaWQgPT09IGRvY0lkOyB9KTsKICAg +ICAgICAgICAgICAgICAgICBpZiAoZG9jKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIERyaXZl +UG9ydGFsLl9zaG93Q3Jvc3NsaW5rUG9wb3ZlcihldiwgW3sgdGVybTogZG9jLnRpdGVsLCB0eXBl +OiAncmVmZXJlbnonLCBkb2M6IGRvYyB9XSk7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAg +ICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICBlbC5hZGRFdmVudExpc3RlbmVyKCdtb3VzZWxl +YXZlJywgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgICAgICAgRHJpdmVQb3J0YWwuX2hpZGVD +cm9zc2xpbmtQb3BvdmVyKCk7CiAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgfSk7Cgog +ICAgICAgICAgICAvLyA9PT0gQXV0b21hdGlzY2hlIENyb3NzbGluay1Fcmtlbm51bmcgPT09CiAg +ICAgICAgICAgIHRoaXMuX2FwcGx5Q3Jvc3NsaW5rcyhjb250ZW50LCBkb2MpOwogICAgICAgIH0s +IDUwKTsKICAgIH0sCgogICAgLy8gQ3Jvc3NsaW5rLUVuZ2luZTogRXJrZW5udCBWZXJ3ZWlzZSBh +dWYgYW5kZXJlIEFydGlrZWwgaW0gSW5oYWx0CiAgICBfY3Jvc3NsaW5rUG9wb3ZlcjogbnVsbCwK +ICAgIF9jcm9zc2xpbmtUaW1lb3V0OiBudWxsLAoKICAgIF9idWlsZENyb3NzbGlua0luZGV4KGV4 +Y2x1ZGVEb2NJZCkgewogICAgICAgIC8vIEluZGV4IGFsbGVyIERva3VtZW50ZSBtaXQgVGl0ZWxu +IHVuZCBTY2hsYWd3b2VydGVybgogICAgICAgIHZhciBpbmRleCA9IFtdOwogICAgICAgIERyaXZl +RlMuZG9jdW1lbnRzLmZvckVhY2goZnVuY3Rpb24oZCkgewogICAgICAgICAgICBpZiAoZC5pZCA9 +PT0gZXhjbHVkZURvY0lkKSByZXR1cm47CiAgICAgICAgICAgIC8vIFRpdGVsIGFscyBTdWNoYmVn +cmlmZiAobWluIDQgWmVpY2hlbikKICAgICAgICAgICAgaWYgKGQudGl0ZWwgJiYgZC50aXRlbC5s +ZW5ndGggPj0gNCkgewogICAgICAgICAgICAgICAgaW5kZXgucHVzaCh7IHRlcm06IGQudGl0ZWws +IHR5cGU6ICd0aXRlbCcsIGRvYzogZCB9KTsKICAgICAgICAgICAgfQogICAgICAgICAgICAvLyBT +Y2hsYWd3b2VydGVyIGFscyBTdWNoYmVncmlmZmUgKG1pbiAzIFplaWNoZW4pCiAgICAgICAgICAg +IChkLnNjaGxhZ3dvZXJ0ZXIgfHwgW10pLmZvckVhY2goZnVuY3Rpb24oa3cpIHsKICAgICAgICAg +ICAgICAgIGlmIChrdyAmJiBrdy5sZW5ndGggPj0gMykgewogICAgICAgICAgICAgICAgICAgIGlu +ZGV4LnB1c2goeyB0ZXJtOiBrdywgdHlwZTogJ3NjaGxhZ3dvcnQnLCBkb2M6IGQgfSk7CiAgICAg +ICAgICAgICAgICB9CiAgICAgICAgICAgIH0pOwogICAgICAgIH0pOwogICAgICAgIC8vIExhZW5n +c3RlIEJlZ3JpZmZlIHp1ZXJzdCAodmVyaGluZGVydCBUZWlsbWF0Y2hlcykKICAgICAgICBpbmRl +eC5zb3J0KGZ1bmN0aW9uKGEsIGIpIHsgcmV0dXJuIGIudGVybS5sZW5ndGggLSBhLnRlcm0ubGVu +Z3RoOyB9KTsKICAgICAgICByZXR1cm4gaW5kZXg7CiAgICB9LAoKICAgIF9hcHBseUNyb3NzbGlu +a3MoY29udGVudEVsLCBjdXJyZW50RG9jKSB7CiAgICAgICAgLy8gR292ZXJuYW5jZS1FaW5zdGVs +bHVuZyBwcsO8ZmVuCiAgICAgICAgdmFyIHNldHRpbmdzID0gKERyaXZlR292ZXJuYW5jZS5kYXRh +ICYmIERyaXZlR292ZXJuYW5jZS5kYXRhLnNldHRpbmdzKSA/IERyaXZlR292ZXJuYW5jZS5kYXRh +LnNldHRpbmdzIDoge307CiAgICAgICAgaWYgKHNldHRpbmdzLmNyb3NzbGlua01vZGUgPT09ICdk +aXNhYmxlZCcpIHJldHVybjsKCiAgICAgICAgdmFyIGluZGV4ID0gdGhpcy5fYnVpbGRDcm9zc2xp +bmtJbmRleChjdXJyZW50RG9jLmlkKTsKICAgICAgICBpZiAoaW5kZXgubGVuZ3RoID09PSAwKSBy +ZXR1cm47CgogICAgICAgIC8vIEJlcmVpdHMgdmVybGlua3RlIFRlcm1lIHRyYWNrZW4gKGtlaW4g +ZG9wcGVsdGVzIE1hdGNoaW5nKQogICAgICAgIHZhciBtYXRjaGVkID0gbmV3IFNldCgpOwogICAg +ICAgIC8vIFNhbW1sZSBhbGxlIHVuaXF1ZSBEb2t1bWVudC1JRHMgZGllIGplIFRlcm0gbWF0Y2hl +bgogICAgICAgIHZhciB0ZXJtRG9jcyA9IHt9OwogICAgICAgIGluZGV4LmZvckVhY2goZnVuY3Rp +b24oZW50cnkpIHsKICAgICAgICAgICAgdmFyIGtleSA9IGVudHJ5LnRlcm0udG9Mb3dlckNhc2Uo +KTsKICAgICAgICAgICAgaWYgKCF0ZXJtRG9jc1trZXldKSB0ZXJtRG9jc1trZXldID0gW107CiAg +ICAgICAgICAgIC8vIE51ciB1bmlxdWUgRG9jcyBwcm8gVGVybQogICAgICAgICAgICBpZiAoIXRl +cm1Eb2NzW2tleV0uZmluZChmdW5jdGlvbihlKSB7IHJldHVybiBlLmRvYy5pZCA9PT0gZW50cnku +ZG9jLmlkOyB9KSkgewogICAgICAgICAgICAgICAgdGVybURvY3Nba2V5XS5wdXNoKGVudHJ5KTsK +ICAgICAgICAgICAgfQogICAgICAgIH0pOwoKICAgICAgICB2YXIgd2Fsa2VyID0gZG9jdW1lbnQu +Y3JlYXRlVHJlZVdhbGtlcihjb250ZW50RWwsIE5vZGVGaWx0ZXIuU0hPV19URVhULCBudWxsLCBm +YWxzZSk7CiAgICAgICAgdmFyIHRleHROb2RlcyA9IFtdOwogICAgICAgIHdoaWxlICh3YWxrZXIu +bmV4dE5vZGUoKSkgewogICAgICAgICAgICB2YXIgbm9kZSA9IHdhbGtlci5jdXJyZW50Tm9kZTsK +ICAgICAgICAgICAgLy8gTmljaHQgaW5uZXJoYWxiIHZvbiBMaW5rcywgQnV0dG9ucywgYmVyZWl0 +cyBtYXJraWVydGVuIENyb3NzbGlua3MsIG9kZXIgZHJpdmUtbWVkaWEgRWxlbWVudGVuCiAgICAg +ICAgICAgIHZhciBwYXJlbnQgPSBub2RlLnBhcmVudEVsZW1lbnQ7CiAgICAgICAgICAgIGlmIChw +YXJlbnQgJiYgKHBhcmVudC5jbG9zZXN0KCdhJykgfHwgcGFyZW50LmNsb3Nlc3QoJ2J1dHRvbicp +IHx8IHBhcmVudC5jbG9zZXN0KCcuY3Jvc3NsaW5rJykgfHwgcGFyZW50LmNsb3Nlc3QoJy5kcml2 +ZS1tZWRpYScpKSkgY29udGludWU7CiAgICAgICAgICAgIGlmIChub2RlLnRleHRDb250ZW50LnRy +aW0oKS5sZW5ndGggPiAyKSB7CiAgICAgICAgICAgICAgICB0ZXh0Tm9kZXMucHVzaChub2RlKTsK +ICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgdmFyIG1heExpbmtzID0gMzA7IC8vIFBl +cmZvcm1hbmNlLUxpbWl0CiAgICAgICAgdmFyIGxpbmtDb3VudCA9IDA7CgogICAgICAgIHRleHRO +b2Rlcy5mb3JFYWNoKGZ1bmN0aW9uKHRleHROb2RlKSB7CiAgICAgICAgICAgIGlmIChsaW5rQ291 +bnQgPj0gbWF4TGlua3MpIHJldHVybjsKICAgICAgICAgICAgdmFyIHRleHQgPSB0ZXh0Tm9kZS50 +ZXh0Q29udGVudDsKICAgICAgICAgICAgdmFyIHJlcGxhY2VtZW50cyA9IFtdOwoKICAgICAgICAg +ICAgaW5kZXguZm9yRWFjaChmdW5jdGlvbihlbnRyeSkgewogICAgICAgICAgICAgICAgaWYgKGxp +bmtDb3VudCA+PSBtYXhMaW5rcykgcmV0dXJuOwogICAgICAgICAgICAgICAgdmFyIHRlcm1Mb3dl +ciA9IGVudHJ5LnRlcm0udG9Mb3dlckNhc2UoKTsKICAgICAgICAgICAgICAgIGlmIChtYXRjaGVk +Lmhhcyh0ZXJtTG93ZXIpKSByZXR1cm47CgogICAgICAgICAgICAgICAgLy8gV29ydGdyZW56ZW4t +U3VjaGUgKGNhc2UtaW5zZW5zaXRpdmUpCiAgICAgICAgICAgICAgICB2YXIgZXNjYXBlZCA9IGVu +dHJ5LnRlcm0ucmVwbGFjZSgvWy4qKz9eJHt9KCl8W1xdXFxdL2csICdcXCQmJyk7CiAgICAgICAg +ICAgICAgICB2YXIgcmUgPSBuZXcgUmVnRXhwKCdcXGInICsgZXNjYXBlZCArICdcXGInLCAnaScp +OwogICAgICAgICAgICAgICAgdmFyIG0gPSByZS5leGVjKHRleHQpOwogICAgICAgICAgICAgICAg +aWYgKG0pIHsKICAgICAgICAgICAgICAgICAgICByZXBsYWNlbWVudHMucHVzaCh7CiAgICAgICAg +ICAgICAgICAgICAgICAgIHN0YXJ0OiBtLmluZGV4LAogICAgICAgICAgICAgICAgICAgICAgICBl +bmQ6IG0uaW5kZXggKyBtWzBdLmxlbmd0aCwKICAgICAgICAgICAgICAgICAgICAgICAgb3JpZ2lu +YWw6IG1bMF0sCiAgICAgICAgICAgICAgICAgICAgICAgIGVudHJ5OiBlbnRyeSwKICAgICAgICAg +ICAgICAgICAgICAgICAgZW50cmllczogdGVybURvY3NbdGVybUxvd2VyXSB8fCBbZW50cnldCiAg +ICAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICAgICAgbWF0Y2hlZC5hZGQodGVy +bUxvd2VyKTsKICAgICAgICAgICAgICAgICAgICBsaW5rQ291bnQrKzsKICAgICAgICAgICAgICAg +IH0KICAgICAgICAgICAgfSk7CgogICAgICAgICAgICBpZiAocmVwbGFjZW1lbnRzLmxlbmd0aCA9 +PT0gMCkgcmV0dXJuOwoKICAgICAgICAgICAgLy8gTmFjaCBQb3NpdGlvbiBzb3J0aWVyZW4gKHJ1 +ZWNrd2FlcnRzIGVyc2V0emVuKQogICAgICAgICAgICByZXBsYWNlbWVudHMuc29ydChmdW5jdGlv +bihhLCBiKSB7IHJldHVybiBiLnN0YXJ0IC0gYS5zdGFydDsgfSk7CgogICAgICAgICAgICAvLyBV +ZWJlcmxhcHB1bmdlbiBlbnRmZXJuZW4KICAgICAgICAgICAgdmFyIGNsZWFuID0gW3JlcGxhY2Vt +ZW50c1swXV07CiAgICAgICAgICAgIGZvciAodmFyIGkgPSAxOyBpIDwgcmVwbGFjZW1lbnRzLmxl +bmd0aDsgaSsrKSB7CiAgICAgICAgICAgICAgICBpZiAocmVwbGFjZW1lbnRzW2ldLmVuZCA8PSBj +bGVhbltjbGVhbi5sZW5ndGggLSAxXS5zdGFydCkgewogICAgICAgICAgICAgICAgICAgIGNsZWFu +LnB1c2gocmVwbGFjZW1lbnRzW2ldKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoK +ICAgICAgICAgICAgLy8gRnJhZ21lbnQgYmF1ZW4KICAgICAgICAgICAgdmFyIGZyYWcgPSBkb2N1 +bWVudC5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCk7CiAgICAgICAgICAgIHZhciBsYXN0SWR4ID0g +MDsKICAgICAgICAgICAgLy8gVm9yd2FlcnRzIHNvcnRpZXJlbiBmdWVyIEZyYWdtZW50LUF1ZmJh +dQogICAgICAgICAgICBjbGVhbi5zb3J0KGZ1bmN0aW9uKGEsIGIpIHsgcmV0dXJuIGEuc3RhcnQg +LSBiLnN0YXJ0OyB9KTsKCiAgICAgICAgICAgIGNsZWFuLmZvckVhY2goZnVuY3Rpb24ocikgewog +ICAgICAgICAgICAgICAgLy8gVGV4dCB2b3IgZGVtIE1hdGNoCiAgICAgICAgICAgICAgICBpZiAo +ci5zdGFydCA+IGxhc3RJZHgpIHsKICAgICAgICAgICAgICAgICAgICBmcmFnLmFwcGVuZENoaWxk +KGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKHRleHQuc3Vic3RyaW5nKGxhc3RJZHgsIHIuc3RhcnQp +KSk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAvLyBDcm9zc2xpbmstU3Bhbgog +ICAgICAgICAgICAgICAgdmFyIHNwYW4gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJyk7 +CiAgICAgICAgICAgICAgICBzcGFuLmNsYXNzTmFtZSA9ICdjcm9zc2xpbmsnOwogICAgICAgICAg +ICAgICAgc3Bhbi50ZXh0Q29udGVudCA9IHIub3JpZ2luYWw7CiAgICAgICAgICAgICAgICAvLyBE +YXRlbiBmdWVyIFBvcG92ZXIKICAgICAgICAgICAgICAgIHZhciBkb2NzID0gci5lbnRyaWVzLm1h +cChmdW5jdGlvbihlKSB7IHJldHVybiBlLmRvYzsgfSk7CiAgICAgICAgICAgICAgICB2YXIgdHlw +ZXMgPSByLmVudHJpZXMubWFwKGZ1bmN0aW9uKGUpIHsgcmV0dXJuIGUudHlwZTsgfSk7CiAgICAg +ICAgICAgICAgICBzcGFuLnNldEF0dHJpYnV0ZSgnZGF0YS14bGluay1kb2NzJywgSlNPTi5zdHJp +bmdpZnkoZG9jcy5tYXAoZnVuY3Rpb24oZCkgeyByZXR1cm4gZC5pZDsgfSkpKTsKICAgICAgICAg +ICAgICAgIHNwYW4uc2V0QXR0cmlidXRlKCdkYXRhLXhsaW5rLXR5cGUnLCB0eXBlc1swXSk7Cgog +ICAgICAgICAgICAgICAgc3Bhbi5hZGRFdmVudExpc3RlbmVyKCdtb3VzZWVudGVyJywgZnVuY3Rp +b24oZXYpIHsKICAgICAgICAgICAgICAgICAgICBEcml2ZVBvcnRhbC5fc2hvd0Nyb3NzbGlua1Bv +cG92ZXIoZXYsIHIuZW50cmllcyk7CiAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAg +IHNwYW4uYWRkRXZlbnRMaXN0ZW5lcignbW91c2VsZWF2ZScsIGZ1bmN0aW9uKCkgewogICAgICAg +ICAgICAgICAgICAgIERyaXZlUG9ydGFsLl9oaWRlQ3Jvc3NsaW5rUG9wb3ZlcigpOwogICAgICAg +ICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICBzcGFuLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNr +JywgZnVuY3Rpb24oZXYpIHsKICAgICAgICAgICAgICAgICAgICBldi5wcmV2ZW50RGVmYXVsdCgp +OwogICAgICAgICAgICAgICAgICAgIGV2LnN0b3BQcm9wYWdhdGlvbigpOwogICAgICAgICAgICAg +ICAgICAgIC8vIEJlaSBudXIgZWluZW0gVHJlZmZlcjogZGlyZWt0IG9lZmZuZW4KICAgICAgICAg +ICAgICAgICAgICBpZiAoZG9jcy5sZW5ndGggPT09IDEpIHsKICAgICAgICAgICAgICAgICAgICAg +ICAgRHJpdmVQb3J0YWwuc2VsZWN0RG9jdW1lbnQoZG9jc1swXS5pZCk7CiAgICAgICAgICAgICAg +ICAgICAgICAgIERyaXZlUG9ydGFsLmhpZ2hsaWdodEl0ZW0oZG9jc1swXS5pZCk7CiAgICAgICAg +ICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfSk7CgogICAgICAgICAgICAgICAgZnJhZy5h +cHBlbmRDaGlsZChzcGFuKTsKICAgICAgICAgICAgICAgIGxhc3RJZHggPSByLmVuZDsKICAgICAg +ICAgICAgfSk7CgogICAgICAgICAgICAvLyBSZXN0LVRleHQKICAgICAgICAgICAgaWYgKGxhc3RJ +ZHggPCB0ZXh0Lmxlbmd0aCkgewogICAgICAgICAgICAgICAgZnJhZy5hcHBlbmRDaGlsZChkb2N1 +bWVudC5jcmVhdGVUZXh0Tm9kZSh0ZXh0LnN1YnN0cmluZyhsYXN0SWR4KSkpOwogICAgICAgICAg +ICB9CgogICAgICAgICAgICB0ZXh0Tm9kZS5wYXJlbnROb2RlLnJlcGxhY2VDaGlsZChmcmFnLCB0 +ZXh0Tm9kZSk7CiAgICAgICAgfSk7CiAgICB9LAoKICAgIF9zaG93Q3Jvc3NsaW5rUG9wb3Zlcihl +diwgZW50cmllcykgewogICAgICAgIGNsZWFyVGltZW91dCh0aGlzLl9jcm9zc2xpbmtUaW1lb3V0 +KTsKICAgICAgICB2YXIgcG9wb3ZlciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjcm9zc2xp +bmtQb3BvdmVyJyk7CiAgICAgICAgaWYgKCFwb3BvdmVyKSByZXR1cm47CgogICAgICAgIC8vIE1l +aHJlcmUgRG9rdW1lbnRlIGtvZW5uZW4gZGVuc2VsYmVuIEJlZ3JpZmYgbWF0Y2hlbgogICAgICAg +IHZhciBzZWVuID0gbmV3IFNldCgpOwogICAgICAgIHZhciB1bmlxdWVFbnRyaWVzID0gZW50cmll +cy5maWx0ZXIoZnVuY3Rpb24oZSkgewogICAgICAgICAgICBpZiAoc2Vlbi5oYXMoZS5kb2MuaWQp +KSByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgIHNlZW4uYWRkKGUuZG9jLmlkKTsKICAgICAgICAg +ICAgcmV0dXJuIHRydWU7CiAgICAgICAgfSk7CgogICAgICAgIHZhciBodG1sID0gJyc7CiAgICAg +ICAgdW5pcXVlRW50cmllcy5mb3JFYWNoKGZ1bmN0aW9uKGVudHJ5LCBpZHgpIHsKICAgICAgICAg +ICAgdmFyIGRvYyA9IGVudHJ5LmRvYzsKICAgICAgICAgICAgdmFyIG1hdGNoVHlwZSA9IGVudHJ5 +LnR5cGUgPT09ICd0aXRlbCcgPyAnQXJ0aWtlbHRpdGVsJyA6ICdTY2hsYWd3b3J0JzsKICAgICAg +ICAgICAgLy8gVGV4dGF1c3p1ZyAoZXJzdGUgMTIwIFplaWNoZW4gZGVzIEluaGFsdHMsIEhUTUwt +VGFncyBlbnRmZXJudCkKICAgICAgICAgICAgdmFyIGV4Y2VycHQgPSAnJzsKICAgICAgICAgICAg +aWYgKGRvYy5pbmhhbHQpIHsKICAgICAgICAgICAgICAgIHZhciBkaXYgPSBkb2N1bWVudC5jcmVh +dGVFbGVtZW50KCdkaXYnKTsKICAgICAgICAgICAgICAgIGRpdi5pbm5lckhUTUwgPSBEcml2ZVBv +cnRhbC5zYW5pdGl6ZUhUTUwoZG9jLmluaGFsdCk7CiAgICAgICAgICAgICAgICBleGNlcnB0ID0g +ZGl2LnRleHRDb250ZW50LnN1YnN0cmluZygwLCAxMjApOwogICAgICAgICAgICAgICAgaWYgKGRp +di50ZXh0Q29udGVudC5sZW5ndGggPiAxMjApIGV4Y2VycHQgKz0gJy4uLic7CiAgICAgICAgICAg +IH0KICAgICAgICAgICAgaWYgKGlkeCA+IDApIGh0bWwgKz0gJzxkaXYgc3R5bGU9ImJvcmRlci10 +b3A6MXB4IHNvbGlkIHZhcigtLWJvcmRlci1saWdodCk7bWFyZ2luOjhweCAwOyI+PC9kaXY+JzsK +ICAgICAgICAgICAgaHRtbCArPSAnPGRpdiBjbGFzcz0ieGxpbmstaGVhZGVyIj48c3BhbiBjbGFz +cz0ieGxpbmstaWNvbiI+JiN4MUY1MTc7PC9zcGFuPiAnICsgRHJpdmVQb3J0YWwuZXNjYXBlSFRN +TChkb2MudGl0ZWwpICsgJzwvZGl2Pic7CiAgICAgICAgICAgIGh0bWwgKz0gJzxkaXYgY2xhc3M9 +InhsaW5rLW1ldGEiPic7CiAgICAgICAgICAgIGh0bWwgKz0gJzxzcGFuPicgKyBEcml2ZVBvcnRh +bC5lc2NhcGVIVE1MKGRvYy5rYXRlZ29yaWUpICsgJzwvc3Bhbj4nOwogICAgICAgICAgICBodG1s +ICs9ICc8c3Bhbj5UcmVmZmVyOiAnICsgbWF0Y2hUeXBlICsgJzwvc3Bhbj4nOwogICAgICAgICAg +ICBodG1sICs9ICc8c3Bhbj4nICsgRHJpdmVQb3J0YWwuZXNjYXBlSFRNTChkb2Muc3RhdHVzIHx8 +ICdFbnR3dXJmJykgKyAnPC9zcGFuPic7CiAgICAgICAgICAgIGh0bWwgKz0gJzwvZGl2Pic7CiAg +ICAgICAgICAgIGlmIChleGNlcnB0KSB7CiAgICAgICAgICAgICAgICBodG1sICs9ICc8ZGl2IGNs +YXNzPSJ4bGluay1leGNlcnB0Ij4nICsgRHJpdmVQb3J0YWwuZXNjYXBlSFRNTChleGNlcnB0KSAr +ICc8L2Rpdj4nOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmIChkb2Muc2NobGFnd29lcnRl +ciAmJiBkb2Muc2NobGFnd29lcnRlci5sZW5ndGggPiAwKSB7CiAgICAgICAgICAgICAgICBodG1s +ICs9ICc8ZGl2IGNsYXNzPSJ4bGluay10YWdzIj4nICsgZG9jLnNjaGxhZ3dvZXJ0ZXIuc2xpY2Uo +MCwgNSkubWFwKGZ1bmN0aW9uKGspIHsKICAgICAgICAgICAgICAgICAgICByZXR1cm4gJzxzcGFu +PicgKyBEcml2ZVBvcnRhbC5lc2NhcGVIVE1MKGspICsgJzwvc3Bhbj4nOwogICAgICAgICAgICAg +ICAgfSkuam9pbignJykgKyAnPC9kaXY+JzsKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAo +dW5pcXVlRW50cmllcy5sZW5ndGggPT09IDEpIHsKICAgICAgICAgICAgICAgIGh0bWwgKz0gJzxk +aXYgY2xhc3M9InhsaW5rLWFjdGlvbiIgb25jbGljaz0iRHJpdmVQb3J0YWwuc2VsZWN0RG9jdW1l +bnQoXCcnICsgRHJpdmVQb3J0YWwuZXNjYXBlQXR0cihkb2MuaWQpICsgJ1wnKTtEcml2ZVBvcnRh +bC5oaWdobGlnaHRJdGVtKFwnJyArIERyaXZlUG9ydGFsLmVzY2FwZUF0dHIoZG9jLmlkKSArICdc +Jyk7Ij5BcnRpa2VsIMO2ZmZuZW4g4oaSPC9kaXY+JzsKICAgICAgICAgICAgfQogICAgICAgIH0p +OwoKICAgICAgICBpZiAodW5pcXVlRW50cmllcy5sZW5ndGggPiAxKSB7CiAgICAgICAgICAgIGh0 +bWwgKz0gJzxkaXYgc3R5bGU9ImJvcmRlci10b3A6MXB4IHNvbGlkIHZhcigtLWJvcmRlci1saWdo +dCk7bWFyZ2luLXRvcDo4cHg7cGFkZGluZy10b3A6NnB4O2ZvbnQtc2l6ZToxMXB4O2NvbG9yOnZh +cigtLXRleHQtbXV0ZWQpOyI+JyArIHVuaXF1ZUVudHJpZXMubGVuZ3RoICsgJyB2ZXJ3YW5kdGUg +QXJ0aWtlbCBnZWZ1bmRlbjwvZGl2Pic7CiAgICAgICAgfQoKICAgICAgICBwb3BvdmVyLmlubmVy +SFRNTCA9IGh0bWw7CiAgICAgICAgcG9wb3Zlci5jbGFzc0xpc3QuYWRkKCd2aXNpYmxlJyk7Cgog +ICAgICAgIC8vIFBvc2l0aW9uIHJlbGF0aXYgenVtIFRyaWdnZXItRWxlbWVudAogICAgICAgIHZh +ciByZWN0ID0gZXYudGFyZ2V0LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOwogICAgICAgIHZhciBw +b3BXID0gMzIwOwogICAgICAgIHZhciBwb3BIID0gcG9wb3Zlci5vZmZzZXRIZWlnaHQgfHwgMjAw +OwogICAgICAgIHZhciBsZWZ0ID0gcmVjdC5sZWZ0OwogICAgICAgIHZhciB0b3AgPSByZWN0LmJv +dHRvbSArIDY7CiAgICAgICAgLy8gUmVjaHRzIHJhdXM/IExpbmtzIHZlcnNjaGllYmVuCiAgICAg +ICAgaWYgKGxlZnQgKyBwb3BXID4gd2luZG93LmlubmVyV2lkdGggLSAxMCkgewogICAgICAgICAg +ICBsZWZ0ID0gd2luZG93LmlubmVyV2lkdGggLSBwb3BXIC0gMTA7CiAgICAgICAgfQogICAgICAg +IC8vIFVudGVuIHJhdXM/IFVlYmVyIGRlbSBFbGVtZW50IGFuemVpZ2VuCiAgICAgICAgaWYgKHRv +cCArIHBvcEggPiB3aW5kb3cuaW5uZXJIZWlnaHQgLSAxMCkgewogICAgICAgICAgICB0b3AgPSBy +ZWN0LnRvcCAtIHBvcEggLSA2OwogICAgICAgIH0KICAgICAgICBwb3BvdmVyLnN0eWxlLmxlZnQg +PSBNYXRoLm1heCgxMCwgbGVmdCkgKyAncHgnOwogICAgICAgIHBvcG92ZXIuc3R5bGUudG9wID0g +TWF0aC5tYXgoMTAsIHRvcCkgKyAncHgnOwogICAgfSwKCiAgICBfaGlkZUNyb3NzbGlua1BvcG92 +ZXIoKSB7CiAgICAgICAgdGhpcy5fY3Jvc3NsaW5rVGltZW91dCA9IHNldFRpbWVvdXQoZnVuY3Rp +b24oKSB7CiAgICAgICAgICAgIHZhciBwb3BvdmVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo +J2Nyb3NzbGlua1BvcG92ZXInKTsKICAgICAgICAgICAgaWYgKHBvcG92ZXIpIHBvcG92ZXIuY2xh +c3NMaXN0LnJlbW92ZSgndmlzaWJsZScpOwogICAgICAgIH0sIDIwMCk7CiAgICB9LAoKICAgIC8v +IFBydWVmZW4gb2IgZGVyIGFrdHVlbGxlIFVzZXIgUmV2aXNpb25lbi9EaWZmIHNlaGVuIGRhcmY6 +CiAgICAvLyAtIExlc2Vtb2R1czogbmllCiAgICAvLyAtIFN1cGVyVXNlciAvIEZhY2hhdWZzaWNo +dDogaW1tZXIKICAgIC8vIC0gWnVzdGFlbmRpZ2VyIFJldmlld2VyIGZ1ZXIgZGllIEthdGVnb3Jp +ZTogamEKICAgIC8vIC0gTWl0d2lya2VuZGVyIGFtIEFydGlrZWwgKENvbnRyaWJ1dG9yKTogamEK +ICAgIC8vIC0gQWxsZSBhbmRlcmVuOiBuZWluCiAgICBfY2FuU2VlUmV2aXNpb25zKGRvYykgewog +ICAgICAgIGlmIChEcml2ZUZTLm1vZGUgPT09ICdzdGF0aWMnKSByZXR1cm4gZmFsc2U7CiAgICAg +ICAgaWYgKERyaXZlR292ZXJuYW5jZS5pc1N1cGVyVXNlcigpIHx8IERyaXZlR292ZXJuYW5jZS5p +c0ZhY2hhdWZzaWNodCgpKSByZXR1cm4gdHJ1ZTsKICAgICAgICBpZiAoRHJpdmVHb3Zlcm5hbmNl +LmlzUmV2aWV3ZXIoZG9jLmthdGVnb3JpZSkpIHJldHVybiB0cnVlOwogICAgICAgIC8vIE1pdHdp +cmtlbmRlOiBVc2VybmFtZSBwcnVlZmVuCiAgICAgICAgdmFyIHVzZXJuYW1lID0gKERyaXZlRlMu +ZW52aXJvbiAmJiBEcml2ZUZTLmVudmlyb24udXNlcm5hbWUpID8gRHJpdmVGUy5lbnZpcm9uLnVz +ZXJuYW1lLnRvTG93ZXJDYXNlKCkgOiAnJzsKICAgICAgICBpZiAodXNlcm5hbWUgJiYgZG9jLmNv +bnRyaWJ1dG9ycykgewogICAgICAgICAgICBpZiAoZG9jLmNvbnRyaWJ1dG9ycy5zb21lKGZ1bmN0 +aW9uKGMpIHsgcmV0dXJuIChjLnVzZXJuYW1lIHx8ICcnKS50b0xvd2VyQ2FzZSgpID09PSB1c2Vy +bmFtZTsgfSkpIHJldHVybiB0cnVlOwogICAgICAgIH0KICAgICAgICAvLyBFcnN0ZWxsZXIgb2Rl +ciBsZXR6dGVyIEJlYXJiZWl0ZXIKICAgICAgICBpZiAodXNlcm5hbWUgJiYgKChkb2MuZXJzdGVs +bHRWb24gfHwgJycpLnRvTG93ZXJDYXNlKCkgPT09IHVzZXJuYW1lIHx8IChkb2MuYmVhcmJlaXRl +dFZvbiB8fCAnJykudG9Mb3dlckNhc2UoKSA9PT0gdXNlcm5hbWUpKSByZXR1cm4gdHJ1ZTsKICAg +ICAgICByZXR1cm4gZmFsc2U7CiAgICB9LAoKICAgIF9yZW5kZXJDaGlsZEFydGljbGVzKGRvYykg +ewogICAgICAgIGNvbnN0IGNoaWxkcmVuID0gRHJpdmVGUy5kb2N1bWVudHMuZmlsdGVyKGZ1bmN0 +aW9uKGQpeyByZXR1cm4gZC5wYXJlbnRJZCA9PT0gZG9jLmlkOyB9KTsKICAgICAgICBpZiAoY2hp +bGRyZW4ubGVuZ3RoID09PSAwKSByZXR1cm4gJyc7CiAgICAgICAgcmV0dXJuICc8ZGl2IGNsYXNz +PSJtZXRhLWl0ZW0iIHN0eWxlPSJmbGV4LWJhc2lzOjEwMCU7Ij48ZGl2IGNsYXNzPSJtZXRhLWxh +YmVsIj5VbnRlcmFydGlrZWw8L2Rpdj48ZGl2PicgKwogICAgICAgICAgICBjaGlsZHJlbi5tYXAo +ZnVuY3Rpb24oYyl7IHJldHVybiAnPGEgc3R5bGU9ImNvbG9yOnZhcigtLXRleHQtaGVhZGluZyk7 +Y3Vyc29yOnBvaW50ZXI7bWFyZ2luLXJpZ2h0OjhweDsiIG9uY2xpY2s9IkRyaXZlUG9ydGFsLnNl +bGVjdERvY3VtZW50KFwnJyArIERyaXZlUG9ydGFsLmVzY2FwZUF0dHIoYy5pZCkgKyAnXCcpIj4n +ICsgRHJpdmVQb3J0YWwuZXNjYXBlSFRNTChjLnRpdGVsKSArICc8L2E+JzsgfSkuam9pbignJykg +KwogICAgICAgICc8L2Rpdj48L2Rpdj4nOwogICAgfSwKCiAgICByZW5kZXJDb250cmlidXRvcnMo +ZG9jKSB7CiAgICAgICAgaWYgKCFkb2MuY29udHJpYnV0b3JzIHx8IGRvYy5jb250cmlidXRvcnMu +bGVuZ3RoID09PSAwKSByZXR1cm4gJyc7CgogICAgICAgIC8vIEdld2ljaHR1bmdlbiBiZXJlY2hu +ZW4KICAgICAgICBjb25zdCByb2xlV2VpZ2h0cyA9IHsgYXV0b3I6IDMsIHJlZGFrdGlvbjogMSwg +cmV2aWV3OiAxLjUgfTsKICAgICAgICBsZXQgdG90YWxXZWlnaHQgPSAwOwogICAgICAgIGNvbnN0 +IHdlaWdodGVkID0gZG9jLmNvbnRyaWJ1dG9ycy5tYXAoYyA9PiB7CiAgICAgICAgICAgIGNvbnN0 +IHcgPSAoYy5lbnRyaWVzIHx8IDEpICogKHJvbGVXZWlnaHRzW2Mucm9sZV0gfHwgMSk7CiAgICAg +ICAgICAgIHRvdGFsV2VpZ2h0ICs9IHc7CiAgICAgICAgICAgIHJldHVybiB7IC4uLmMsIHdlaWdo +dDogdyB9OwogICAgICAgIH0pOwoKICAgICAgICBjb25zdCByb2xlTGFiZWxzID0geyBhdXRvcjog +J0F1dG9yJywgcmVkYWt0aW9uOiAnUmVkYWt0aW9uJywgcmV2aWV3OiAnUmV2aWV3JyB9OwoKICAg +ICAgICBsZXQgaHRtbCA9ICc8ZGl2IGNsYXNzPSJjb250cmlidXRvcnMtc2VjdGlvbiI+PGgzPk1p +dHdpcmtlbmRlPC9oMz4nOwogICAgICAgIHdlaWdodGVkCiAgICAgICAgICAgIC5zb3J0KChhLCBi +KSA9PiBiLndlaWdodCAtIGEud2VpZ2h0KQogICAgICAgICAgICAuZm9yRWFjaChjID0+IHsKICAg +ICAgICAgICAgICAgIGNvbnN0IHBjdCA9IHRvdGFsV2VpZ2h0ID4gMCA/IE1hdGgucm91bmQoKGMu +d2VpZ2h0IC8gdG90YWxXZWlnaHQpICogMTAwKSA6IDA7CiAgICAgICAgICAgICAgICBjb25zdCBy +b2xlID0gYy5yb2xlIHx8ICdhdXRvcic7CiAgICAgICAgICAgICAgICBodG1sICs9ICc8ZGl2IGNs +YXNzPSJjb250cmlidXRvci1yb3ciPicgKwogICAgICAgICAgICAgICAgICAgICc8c3BhbiBjbGFz +cz0iY29udHJpYnV0b3ItbmFtZSI+JyArIERyaXZlUG9ydGFsLmVzY2FwZUhUTUwoYy51c2VybmFt +ZSkgKyAnPC9zcGFuPicgKwogICAgICAgICAgICAgICAgICAgICc8c3BhbiBjbGFzcz0iY29udHJp +YnV0b3Itcm9sZSAnICsgcm9sZSArICciPicgKyAocm9sZUxhYmVsc1tyb2xlXSB8fCByb2xlKSAr +ICc8L3NwYW4+JyArCiAgICAgICAgICAgICAgICAgICAgJzxzcGFuIHN0eWxlPSJmb250LXNpemU6 +MTFweDtjb2xvcjp2YXIoLS10ZXh0LW11dGVkKTt3aWR0aDoyNHB4O3RleHQtYWxpZ246cmlnaHQ7 +ZmxleC1zaHJpbms6MDsiPicgKyAoYy5lbnRyaWVzID4gMSA/IGMuZW50cmllcyArICd4JyA6ICcn +KSArICc8L3NwYW4+JyArCiAgICAgICAgICAgICAgICAgICAgJzxkaXYgY2xhc3M9ImNvbnRyaWJ1 +dG9yLWJhciI+PGRpdiBjbGFzcz0iY29udHJpYnV0b3ItYmFyLWZpbGwgJyArIHJvbGUgKyAnIiBz +dHlsZT0id2lkdGg6JyArIHBjdCArICclOyI+PC9kaXY+PC9kaXY+JyArCiAgICAgICAgICAgICAg +ICAgICAgJzxzcGFuIGNsYXNzPSJjb250cmlidXRvci1wY3QiPicgKyBwY3QgKyAnJTwvc3Bhbj4n +ICsKICAgICAgICAgICAgICAgICc8L2Rpdj4nOwogICAgICAgICAgICB9KTsKICAgICAgICBodG1s +ICs9ICc8L2Rpdj4nOwogICAgICAgIHJldHVybiBodG1sOwogICAgfSwKCiAgICByZW5kZXJSZXZp +ZXdIaXN0b3J5KGRvYykgewogICAgICAgIC8vIFBydWVmdW5nc3ZlcmxhdWYgbnVyIGZ1ZXIgU1Us +IEZBIHVuZCB6dXN0YWVuZGlnZSBSZXZpZXdlciBhbnplaWdlbgogICAgICAgIGlmICghRHJpdmVH +b3Zlcm5hbmNlLmlzU3VwZXJVc2VyKCkgJiYgIURyaXZlR292ZXJuYW5jZS5pc0ZhY2hhdWZzaWNo +dCgpICYmICFEcml2ZUdvdmVybmFuY2UuaXNSZXZpZXdlcihkb2Mua2F0ZWdvcmllKSkgcmV0dXJu +ICcnOwoKICAgICAgICBjb25zdCBnb3YgPSBkb2MuZ292ZXJuYW5jZTsKICAgICAgICBpZiAoIWdv +diB8fCAhZ292LnJldmlld0hpc3RvcnkgfHwgZ292LnJldmlld0hpc3RvcnkubGVuZ3RoID09PSAw +KSByZXR1cm4gJyc7CgogICAgICAgIGxldCBodG1sID0gJzxkaXYgY2xhc3M9InJldmlldy1oaXN0 +b3J5Ij48aDM+UHLDvGZ1bmdzdmVybGF1ZjwvaDM+JzsKICAgICAgICBnb3YucmV2aWV3SGlzdG9y +eS5zbGljZSgpLnJldmVyc2UoKS5mb3JFYWNoKGZ1bmN0aW9uKGVudHJ5LCBpZHgpIHsKICAgICAg +ICAgICAgdmFyIGFjdGlvbkxhYmVsID0gZW50cnkuYWN0aW9uID09PSAnYXBwcm92ZWQnID8gJ0Zy +ZWlnZWdlYmVuJyA6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW50cnkuYWN0aW9u +ID09PSAncmVqZWN0ZWQnID8gJ0FiZ2VsZWhudCcgOgogICAgICAgICAgICAgICAgICAgICAgICAg +ICAgICAgIGVudHJ5LmFjdGlvbiA9PT0gJ3N1Ym1pdHRlZCcgPyAnWnVyIFByw7xmdW5nJyA6IGVu +dHJ5LmFjdGlvbjsKICAgICAgICAgICAgdmFyIGRhdGUgPSBmb3JtYXREYXRlVGltZShlbnRyeS5h +dCk7CiAgICAgICAgICAgIHZhciBjb21tZW50SHRtbCA9ICcnOwogICAgICAgICAgICBpZiAoZW50 +cnkuY29tbWVudCkgewogICAgICAgICAgICAgICAgLy8gS29tbWVudGFyIGFscyBzaWNoZXJlcyBI +VE1MIHJlbmRlcm4gKGVybGF1YnQ6IGIsIGksIHUsIHVsLCBsaSwgYnIsIGZvbnQpCiAgICAgICAg +ICAgICAgICAvLyBBbGxlcyBhbmRlcmU6IFRhZ3MgYWxzIGdlcmVuZGVydGVuIFRleHQgemVpZ2Vu +CiAgICAgICAgICAgICAgICB2YXIgc2FmZUNvbW1lbnQgPSBlbnRyeS5jb21tZW50OwogICAgICAg +ICAgICAgICAgLy8gRmFsbHMgZGVyIEtvbW1lbnRhciByYXctSFRNTC1UYWdzIGFscyBUZXh0IGVu +dGhhZWx0IChhbHRlIEVpbnRyYWVnZSksIGVzY2FwZW4KICAgICAgICAgICAgICAgIGlmIChzYWZl +Q29tbWVudC5pbmRleE9mKCc8c3BhbiBzdHlsZT0nKSA+PSAwIHx8IHNhZmVDb21tZW50LmluZGV4 +T2YoJzxkaXYnKSA+PSAwIHx8IHNhZmVDb21tZW50LmluZGV4T2YoJzxhIGhyZWY9JykgPj0gMCkg +ewogICAgICAgICAgICAgICAgICAgIC8vIEFsdGVzIHVuc2FuaXRpZXJ0ZXMgSFRNTDogQWxzIEts +YXJ0ZXh0IGRhcnN0ZWxsZW4KICAgICAgICAgICAgICAgICAgICB2YXIgdG1wRGl2ID0gZG9jdW1l +bnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CiAgICAgICAgICAgICAgICAgICAgdG1wRGl2LmlubmVy +SFRNTCA9IHNhZmVDb21tZW50OwogICAgICAgICAgICAgICAgICAgIHNhZmVDb21tZW50ID0gRHJp +dmVQb3J0YWwuZXNjYXBlSFRNTCh0bXBEaXYudGV4dENvbnRlbnQpOwogICAgICAgICAgICAgICAg +fQogICAgICAgICAgICAgICAgdmFyIHVpZCA9ICdyY18nICsgaWR4OwogICAgICAgICAgICAgICAg +Y29tbWVudEh0bWwgPSAnPGRpdiBzdHlsZT0iZmxleC1iYXNpczoxMDAlO21hcmdpbi10b3A6NHB4 +OyI+JyArCiAgICAgICAgICAgICAgICAgICAgJzxkaXYgaWQ9IicgKyB1aWQgKyAnIiBzdHlsZT0i +YmFja2dyb3VuZDp2YXIoLS1iZy1jYXJkLWFsdCk7cGFkZGluZzowIDEwcHg7Ym9yZGVyLXJhZGl1 +czo0cHg7Ym9yZGVyLWxlZnQ6M3B4IHNvbGlkICNkYzM1NDU7Zm9udC1zaXplOjEycHg7Y29sb3I6 +dmFyKC0tdGV4dC1wcmltYXJ5KTtoZWlnaHQ6MjhweDtsaW5lLWhlaWdodDoyOHB4O292ZXJmbG93 +OmhpZGRlbjtjdXJzb3I6cG9pbnRlcjt0cmFuc2l0aW9uOmhlaWdodCAwLjNzO3doaXRlLXNwYWNl +Om5vd3JhcDt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzOyIgb25jbGljaz0idmFyIGVsPWRvY3VtZW50 +LmdldEVsZW1lbnRCeUlkKFwnJyArIHVpZCArICdcJyk7aWYoZWwuc3R5bGUuaGVpZ2h0PT09XCdh +dXRvXCcpe2VsLnN0eWxlLmhlaWdodD1cJzI4cHhcJztlbC5zdHlsZS5saW5lSGVpZ2h0PVwnMjhw +eFwnO2VsLnN0eWxlLndoaXRlU3BhY2U9XCdub3dyYXBcJztlbC5zdHlsZS5wYWRkaW5nPVwnMCAx +MHB4XCc7fWVsc2V7ZWwuc3R5bGUuaGVpZ2h0PVwnYXV0b1wnO2VsLnN0eWxlLmxpbmVIZWlnaHQ9 +XCcxLjVcJztlbC5zdHlsZS53aGl0ZVNwYWNlPVwnbm9ybWFsXCc7ZWwuc3R5bGUucGFkZGluZz1c +JzhweCAxMHB4XCc7fSIgdGl0bGU9IktsaWNrZSB6dW0gQXVmLS9adWtsYXBwZW4iPicgKwogICAg +ICAgICAgICAgICAgICAgICAgICBzYWZlQ29tbWVudCArCiAgICAgICAgICAgICAgICAgICAgJzwv +ZGl2PicgKwogICAgICAgICAgICAgICAgJzwvZGl2Pic7CiAgICAgICAgICAgIH0KICAgICAgICAg +ICAgaHRtbCArPSAnPGRpdiBjbGFzcz0icmV2aWV3LWhpc3RvcnktaXRlbSIgc3R5bGU9ImZsZXgt +d3JhcDp3cmFwOyI+JyArCiAgICAgICAgICAgICAgICAnPHNwYW4gY2xhc3M9ImFjdGlvbi1iYWRn +ZSAnICsgZW50cnkuYWN0aW9uICsgJyI+JyArIGFjdGlvbkxhYmVsICsgJzwvc3Bhbj4nICsKICAg +ICAgICAgICAgICAgICc8c3BhbiBzdHlsZT0iY29sb3I6dmFyKC0tdGV4dC1zZWNvbmRhcnkpOyI+ +JyArIERyaXZlUG9ydGFsLmVzY2FwZUhUTUwoZW50cnkuYnkgfHwgJy0nKSArICc8L3NwYW4+JyAr +CiAgICAgICAgICAgICAgICAnPHNwYW4gc3R5bGU9ImNvbG9yOnZhcigtLXRleHQtbXV0ZWQpOyI+ +JyArIGRhdGUgKyAnPC9zcGFuPicgKwogICAgICAgICAgICAgICAgY29tbWVudEh0bWwgKwogICAg +ICAgICAgICAnPC9kaXY+JzsKICAgICAgICB9KTsKICAgICAgICByZXR1cm4gaHRtbCArICc8L2Rp +dj4nOwogICAgfSwKCiAgICBfZGVsZXRlRG9jSWQ6IG51bGwsCgogICAgYXN5bmMgZGVsZXRlRG9j +dW1lbnQoZG9jSWQpIHsKICAgICAgICBpZiAoRHJpdmVGUy5yZWFkT25seSkgewogICAgICAgICAg +ICB2YXIgZ3JhbnRlZCA9IGF3YWl0IERyaXZlRlMuZW5zdXJlV3JpdGVBY2Nlc3MoKTsKICAgICAg +ICAgICAgaWYgKCFncmFudGVkKSByZXR1cm47CiAgICAgICAgfQogICAgICAgIHZhciBkb2MgPSBE +cml2ZUZTLmRvY3VtZW50cy5maW5kKGZ1bmN0aW9uKGQpeyByZXR1cm4gZC5pZCA9PT0gZG9jSWQ7 +IH0pOwogICAgICAgIGlmICghZG9jKSByZXR1cm47CiAgICAgICAgdGhpcy5fZGVsZXRlRG9jSWQg +PSBkb2NJZDsKICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZGVsZXRlQ29uZmlybVRl +eHQnKS50ZXh0Q29udGVudCA9ICdEb2t1bWVudDog4oCeJyArIGRvYy50aXRlbCArICciICgnICsg +ZG9jLmthdGVnb3JpZSArICcpJzsKICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZGVs +ZXRlQ29uZmlybUlucHV0JykudmFsdWUgPSAnJzsKICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50 +QnlJZCgnZGVsZXRlQ29uZmlybUJ0bicpLmRpc2FibGVkID0gdHJ1ZTsKICAgICAgICBkb2N1bWVu +dC5nZXRFbGVtZW50QnlJZCgnZGVsZXRlQ29uZmlybU1vZGFsJykuY2xhc3NMaXN0LmFkZCgnYWN0 +aXZlJyk7CiAgICAgICAgdmFyIGlucHV0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2RlbGV0 +ZUNvbmZpcm1JbnB1dCcpOwogICAgICAgIGlucHV0LmZvY3VzKCk7CiAgICAgICAgaW5wdXQub25p +bnB1dCA9IGZ1bmN0aW9uKCkgewogICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgn +ZGVsZXRlQ29uZmlybUJ0bicpLmRpc2FibGVkID0gIWlucHV0LnZhbHVlLnRyaW0oKTsKICAgICAg +ICB9OwogICAgfSwKCiAgICBjYW5jZWxEZWxldGUoKSB7CiAgICAgICAgdGhpcy5fZGVsZXRlRG9j +SWQgPSBudWxsOwogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkZWxldGVDb25maXJt +TW9kYWwnKS5jbGFzc0xpc3QucmVtb3ZlKCdhY3RpdmUnKTsKICAgIH0sCgogICAgYXN5bmMgY29u +ZmlybURlbGV0ZSgpIHsKICAgICAgICB2YXIgZG9jSWQgPSB0aGlzLl9kZWxldGVEb2NJZDsKICAg +ICAgICBpZiAoIWRvY0lkKSByZXR1cm47CiAgICAgICAgdmFyIG53S2VubnVuZyA9IGRvY3VtZW50 +LmdldEVsZW1lbnRCeUlkKCdkZWxldGVDb25maXJtSW5wdXQnKS52YWx1ZS50cmltKCk7CiAgICAg +ICAgaWYgKCFud0tlbm51bmcpIHsgc2hvd1RvYXN0KCdCaXR0ZSBOVy1LZW5udW5nIGVpbmdlYmVu +JywgJ3dhcm5pbmcnKTsgcmV0dXJuOyB9CgogICAgICAgIHZhciBkb2MgPSBEcml2ZUZTLmRvY3Vt +ZW50cy5maW5kKGZ1bmN0aW9uKGQpeyByZXR1cm4gZC5pZCA9PT0gZG9jSWQ7IH0pOwogICAgICAg +IGlmICghZG9jKSByZXR1cm47CgogICAgICAgIC8vIFNvZnQtRGVsZXRlOiBJbiBQYXBpZXJrb3Ji +IHZlcnNjaGllYmVuIHN0YXR0IHBoeXNpc2NoIGzDtnNjaGVuCiAgICAgICAgdmFyIHRyYXNoRW50 +cnkgPSB7CiAgICAgICAgICAgIGRvYzogSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShkb2MpKSwK +ICAgICAgICAgICAgZGVsZXRlZEJ5OiBud0tlbm51bmcsCiAgICAgICAgICAgIGRlbGV0ZWRBdDog +bmV3IERhdGUoKS50b0lTT1N0cmluZygpLAogICAgICAgICAgICBleHBpcmVzQXQ6IG5ldyBEYXRl +KERhdGUubm93KCkgKyAyOCAqIDI0ICogNjAgKiA2MCAqIDEwMDApLnRvSVNPU3RyaW5nKCkKICAg +ICAgICB9OwoKICAgICAgICAvLyBQYXBpZXJrb3JiIGxhZGVuL2Vyc3RlbGxlbgogICAgICAgIHZh +ciB0cmFzaCA9IGF3YWl0IHRoaXMuX2xvYWRUcmFzaCgpOwogICAgICAgIHRyYXNoLnB1c2godHJh +c2hFbnRyeSk7CiAgICAgICAgYXdhaXQgdGhpcy5fc2F2ZVRyYXNoKHRyYXNoKTsKCiAgICAgICAg +Ly8gTMO2c2NoLUxvZwogICAgICAgIHZhciBsb2dFbnRyeSA9IHsgYWN0aW9uOiAnZGVsZXRlJywg +ZG9jSWQ6IGRvY0lkLCB0aXRlbDogZG9jLnRpdGVsLCBrYXRlZ29yaWU6IGRvYy5rYXRlZ29yaWUs +IGRlbGV0ZWRCeTogbndLZW5udW5nLCB0aW1lc3RhbXA6IG5ldyBEYXRlKCkudG9JU09TdHJpbmco +KSB9OwogICAgICAgIGF3YWl0IHRoaXMuX2FwcGVuZERlbGV0ZUxvZyhsb2dFbnRyeSk7CgogICAg +ICAgIC8vIERva3VtZW50IHBoeXNpc2NoIGzDtnNjaGVuCiAgICAgICAgdmFyIHN1Y2Nlc3MgPSBh +d2FpdCBEcml2ZUZTLmRlbGV0ZURvY3VtZW50KGRvY0lkKTsKICAgICAgICBkb2N1bWVudC5nZXRF +bGVtZW50QnlJZCgnZGVsZXRlQ29uZmlybU1vZGFsJykuY2xhc3NMaXN0LnJlbW92ZSgnYWN0aXZl +Jyk7CiAgICAgICAgdGhpcy5fZGVsZXRlRG9jSWQgPSBudWxsOwoKICAgICAgICBpZiAoc3VjY2Vz +cykgewogICAgICAgICAgICB0aGlzLnNlbGVjdGVkRG9jSWQgPSBudWxsOwogICAgICAgICAgICBk +b2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZG9jdW1lbnREZXRhaWwnKS5pbm5lckhUTUwgPSAnPGRp +diBjbGFzcz0iZGV0YWlsLWVtcHR5Ij48cD5Eb2t1bWVudCBnZWzDtnNjaHQuIFfDpGhsZSBlaW4g +YW5kZXJlcyBEb2t1bWVudC48L3A+PC9kaXY+JzsKICAgICAgICAgICAgdGhpcy5yZW5kZXIoKTsK +ICAgICAgICAgICAgc2hvd1RvYXN0KCdEb2t1bWVudCBnZWzDtnNjaHQgKDI4IFRhZ2Ugd2llZGVy +aGVyc3RlbGxiYXIpJywgJ3N1Y2Nlc3MnKTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBz +aG93VG9hc3QoJ0ZlaGxlciBiZWltIEzDtnNjaGVuJywgJ2Vycm9yJyk7CiAgICAgICAgfQogICAg +fSwKCiAgICBhc3luYyBfbG9hZFRyYXNoKCkgewogICAgICAgIHRyeSB7CiAgICAgICAgICAgIGlm +IChEcml2ZUZTLm1vZGUgPT09ICdzZXJ2ZXInKSB7CiAgICAgICAgICAgICAgICB2YXIgcmVzID0g +YXdhaXQgZmV0Y2goJy9kYXRhLy50cmFzaC5qc29uJyk7CiAgICAgICAgICAgICAgICBpZiAocmVz +Lm9rKSByZXR1cm4gYXdhaXQgcmVzLmpzb24oKTsKICAgICAgICAgICAgfSBlbHNlIGlmIChEcml2 +ZUZTLm1vZGUgPT09ICdmaWxlc3lzdGVtJyAmJiBEcml2ZUZTLl9kYXRhSGFuZGxlKSB7CiAgICAg +ICAgICAgICAgICB2YXIgZmggPSBhd2FpdCBEcml2ZUZTLl9kYXRhSGFuZGxlLmdldEZpbGVIYW5k +bGUoJy50cmFzaC5qc29uJyk7CiAgICAgICAgICAgICAgICB2YXIgZmlsZSA9IGF3YWl0IGZoLmdl +dEZpbGUoKTsKICAgICAgICAgICAgICAgIHJldHVybiBKU09OLnBhcnNlKGF3YWl0IGZpbGUudGV4 +dCgpKTsKICAgICAgICAgICAgfQogICAgICAgIH0gY2F0Y2goZSkge30KICAgICAgICByZXR1cm4g +W107CiAgICB9LAoKICAgIGFzeW5jIF9zYXZlVHJhc2godHJhc2gpIHsKICAgICAgICAvLyBBYmdl +bGF1ZmVuZSBlbnRmZXJuZW4gKD4yOCBUYWdlKQogICAgICAgIHZhciBub3cgPSBuZXcgRGF0ZSgp +LnRvSVNPU3RyaW5nKCk7CiAgICAgICAgdHJhc2ggPSB0cmFzaC5maWx0ZXIoZnVuY3Rpb24odCl7 +IHJldHVybiB0LmV4cGlyZXNBdCA+IG5vdzsgfSk7CiAgICAgICAgaWYgKERyaXZlRlMubW9kZSA9 +PT0gJ3NlcnZlcicpIHsKICAgICAgICAgICAgYXdhaXQgZmV0Y2goJy9hcGkvd3JpdGUnLCB7IG1l +dGhvZDogJ1BPU1QnLCBoZWFkZXJzOiB7J0NvbnRlbnQtVHlwZSc6J2FwcGxpY2F0aW9uL2pzb247 +IGNoYXJzZXQ9dXRmLTgnfSwKICAgICAgICAgICAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KHsg +cGF0aDogJ2RhdGEvLnRyYXNoLmpzb24nLCBkYXRhOiB0cmFzaCB9KSB9KTsKICAgICAgICB9IGVs +c2UgaWYgKERyaXZlRlMubW9kZSA9PT0gJ2ZpbGVzeXN0ZW0nICYmIERyaXZlRlMuX2RhdGFIYW5k +bGUpIHsKICAgICAgICAgICAgdmFyIGZoID0gYXdhaXQgRHJpdmVGUy5fZGF0YUhhbmRsZS5nZXRG +aWxlSGFuZGxlKCcudHJhc2guanNvbicsIHsgY3JlYXRlOiB0cnVlIH0pOwogICAgICAgICAgICB2 +YXIgd3JpdGFibGUgPSBhd2FpdCBmaC5jcmVhdGVXcml0YWJsZSgpOwogICAgICAgICAgICBhd2Fp +dCB3cml0YWJsZS53cml0ZShKU09OLnN0cmluZ2lmeSh0cmFzaCwgbnVsbCwgMikpOwogICAgICAg +ICAgICBhd2FpdCB3cml0YWJsZS5jbG9zZSgpOwogICAgICAgIH0KICAgIH0sCgogICAgYXN5bmMg +X2FwcGVuZERlbGV0ZUxvZyhlbnRyeSkgewogICAgICAgIHZhciBsb2cgPSBbXTsKICAgICAgICB0 +cnkgewogICAgICAgICAgICBpZiAoRHJpdmVGUy5tb2RlID09PSAnc2VydmVyJykgewogICAgICAg +ICAgICAgICAgdmFyIHJlcyA9IGF3YWl0IGZldGNoKCcvZGF0YS8uZGVsZXRlLWxvZy5qc29uJyk7 +CiAgICAgICAgICAgICAgICBpZiAocmVzLm9rKSBsb2cgPSBhd2FpdCByZXMuanNvbigpOwogICAg +ICAgICAgICB9IGVsc2UgaWYgKERyaXZlRlMubW9kZSA9PT0gJ2ZpbGVzeXN0ZW0nICYmIERyaXZl +RlMuX2RhdGFIYW5kbGUpIHsKICAgICAgICAgICAgICAgIHZhciBmaCA9IGF3YWl0IERyaXZlRlMu +X2RhdGFIYW5kbGUuZ2V0RmlsZUhhbmRsZSgnLmRlbGV0ZS1sb2cuanNvbicpOwogICAgICAgICAg +ICAgICAgdmFyIGZpbGUgPSBhd2FpdCBmaC5nZXRGaWxlKCk7CiAgICAgICAgICAgICAgICBsb2cg +PSBKU09OLnBhcnNlKGF3YWl0IGZpbGUudGV4dCgpKTsKICAgICAgICAgICAgfQogICAgICAgIH0g +Y2F0Y2goZSkge30KICAgICAgICBsb2cucHVzaChlbnRyeSk7CiAgICAgICAgaWYgKERyaXZlRlMu +bW9kZSA9PT0gJ3NlcnZlcicpIHsKICAgICAgICAgICAgYXdhaXQgZmV0Y2goJy9hcGkvd3JpdGUn +LCB7IG1ldGhvZDogJ1BPU1QnLCBoZWFkZXJzOiB7J0NvbnRlbnQtVHlwZSc6J2FwcGxpY2F0aW9u +L2pzb247IGNoYXJzZXQ9dXRmLTgnfSwKICAgICAgICAgICAgICAgIGJvZHk6IEpTT04uc3RyaW5n +aWZ5KHsgcGF0aDogJ2RhdGEvLmRlbGV0ZS1sb2cuanNvbicsIGRhdGE6IGxvZyB9KSB9KTsKICAg +ICAgICB9IGVsc2UgaWYgKERyaXZlRlMubW9kZSA9PT0gJ2ZpbGVzeXN0ZW0nICYmIERyaXZlRlMu +X2RhdGFIYW5kbGUpIHsKICAgICAgICAgICAgdmFyIGZoMiA9IGF3YWl0IERyaXZlRlMuX2RhdGFI +YW5kbGUuZ2V0RmlsZUhhbmRsZSgnLmRlbGV0ZS1sb2cuanNvbicsIHsgY3JlYXRlOiB0cnVlIH0p +OwogICAgICAgICAgICB2YXIgd3JpdGFibGUgPSBhd2FpdCBmaDIuY3JlYXRlV3JpdGFibGUoKTsK +ICAgICAgICAgICAgYXdhaXQgd3JpdGFibGUud3JpdGUoSlNPTi5zdHJpbmdpZnkobG9nLCBudWxs +LCAyKSk7CiAgICAgICAgICAgIGF3YWl0IHdyaXRhYmxlLmNsb3NlKCk7CiAgICAgICAgfQogICAg +fSwKCiAgICBhc3luYyBzaG93VHJhc2goKSB7CiAgICAgICAgdmFyIHRyYXNoID0gYXdhaXQgdGhp +cy5fbG9hZFRyYXNoKCk7CiAgICAgICAgdmFyIG5vdyA9IG5ldyBEYXRlKCkudG9JU09TdHJpbmco +KTsKICAgICAgICB0cmFzaCA9IHRyYXNoLmZpbHRlcihmdW5jdGlvbih0KXsgcmV0dXJuIHQuZXhw +aXJlc0F0ID4gbm93OyB9KTsKICAgICAgICB2YXIgaHRtbCA9ICcnOwogICAgICAgIGlmICh0cmFz +aC5sZW5ndGggPT09IDApIHsKICAgICAgICAgICAgaHRtbCA9ICc8ZGl2IGNsYXNzPSJnb3YtZW1w +dHkiPlBhcGllcmtvcmIgaXN0IGxlZXI8L2Rpdj4nOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAg +ICAgIHRyYXNoLmZvckVhY2goZnVuY3Rpb24odCwgaSkgewogICAgICAgICAgICAgICAgdmFyIGRh +eXNMZWZ0ID0gTWF0aC5jZWlsKChuZXcgRGF0ZSh0LmV4cGlyZXNBdCkgLSBuZXcgRGF0ZSgpKSAv +ICgyNCo2MCo2MCoxMDAwKSk7CiAgICAgICAgICAgICAgICBodG1sICs9ICc8ZGl2IGNsYXNzPSJ0 +cmFzaC1pdGVtIj4nICsKICAgICAgICAgICAgICAgICAgICAnPGRpdiBjbGFzcz0idHJhc2gtaXRl +bS10aXRsZSI+JyArIERyaXZlUG9ydGFsLmVzY2FwZUhUTUwodC5kb2MudGl0ZWwpICsgJzwvZGl2 +PicgKwogICAgICAgICAgICAgICAgICAgICc8ZGl2IGNsYXNzPSJ0cmFzaC1pdGVtLW1ldGEiPkdl +bMO2c2NodCB2b24gJyArIERyaXZlUG9ydGFsLmVzY2FwZUhUTUwodC5kZWxldGVkQnkpICsgJyBh +bSAnICsgZm9ybWF0RGF0ZVRpbWUodC5kZWxldGVkQXQpICsgJyB8IE5vY2ggJyArIGRheXNMZWZ0 +ICsgJyBUYWdlIHZlcmbDvGdiYXI8L2Rpdj4nICsKICAgICAgICAgICAgICAgICAgICAnPGRpdiBj +bGFzcz0idHJhc2gtaXRlbS1hY3Rpb25zIj4nICsKICAgICAgICAgICAgICAgICAgICAgICAgJzxi +dXR0b24gY2xhc3M9ImJ0bi1yZXN0b3JlIiBvbmNsaWNrPSJEcml2ZVBvcnRhbC5yZXN0b3JlRnJv +bVRyYXNoKCcgKyBpICsgJykiPldpZWRlcmhlcnN0ZWxsZW48L2J1dHRvbj4nICsKICAgICAgICAg +ICAgICAgICAgICAnPC9kaXY+JyArCiAgICAgICAgICAgICAgICAnPC9kaXY+JzsKICAgICAgICAg +ICAgfSk7CiAgICAgICAgfQogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkb2N1bWVu +dERldGFpbCcpLmlubmVySFRNTCA9CiAgICAgICAgICAgICc8ZGl2IHN0eWxlPSJwYWRkaW5nOjIw +cHg7Ij48aDIgc3R5bGU9ImNvbG9yOnZhcigtLXRleHQtaGVhZGluZyk7bWFyZ2luLWJvdHRvbTox +NXB4OyI+UGFwaWVya29yYiAoJyArIHRyYXNoLmxlbmd0aCArICcpPC9oMj4nICsgaHRtbCArICc8 +L2Rpdj4nOwogICAgfSwKCiAgICBhc3luYyByZXN0b3JlRnJvbVRyYXNoKGluZGV4KSB7CiAgICAg +ICAgdmFyIHRyYXNoID0gYXdhaXQgdGhpcy5fbG9hZFRyYXNoKCk7CiAgICAgICAgaWYgKCF0cmFz +aFtpbmRleF0pIHJldHVybjsKICAgICAgICB2YXIgZW50cnkgPSB0cmFzaFtpbmRleF07CiAgICAg +ICAgdmFyIGRvYyA9IGVudHJ5LmRvYzsKICAgICAgICB2YXIgc2F2ZVJlc3VsdCA9IGF3YWl0IERy +aXZlRlMuc2F2ZURvY3VtZW50KGRvYyk7CiAgICAgICAgaWYgKHNhdmVSZXN1bHQgPT09IHRydWUp +IHsKICAgICAgICAgICAgdHJhc2guc3BsaWNlKGluZGV4LCAxKTsKICAgICAgICAgICAgYXdhaXQg +dGhpcy5fc2F2ZVRyYXNoKHRyYXNoKTsKICAgICAgICAgICAgdGhpcy5yZW5kZXIoKTsKICAgICAg +ICAgICAgdGhpcy5zZWxlY3REb2N1bWVudChkb2MuaWQpOwogICAgICAgICAgICBzaG93VG9hc3Qo +J0Rva3VtZW50IOKAnicgKyBkb2MudGl0ZWwgKyAnIiB3aWVkZXJoZXJnZXN0ZWxsdCcsICdzdWNj +ZXNzJyk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgc2hvd1RvYXN0KCdGZWhsZXIgYmVp +bSBXaWVkZXJoZXJzdGVsbGVuJywgJ2Vycm9yJyk7CiAgICAgICAgfQogICAgfSwKCiAgICAvLyBY +U1MtU2NodXR6OiBCZXJlaW5pZ3QgWmVpY2hlbmtldHRlbiBiZXZvciBzaWUgYWxzIEhUTUwgZGFy +Z2VzdGVsbHQgd2VyZGVuLgogICAgICAgIC8vIGVzY2FwZUhUTUwoKSAtIGZ1ZXIgRWxlbWVudC1J +bmhhbHRlICh0ZXh0Q29udGVudC1iYXNpZXJ0LCBicm93c2Vyc2ljaGVyKQogICAgICAgIC8vIGVz +Y2FwZUF0dHIoKSAtIGZ1ZXIgSFRNTC1BdHRyaWJ1dHdlcnRlIChtYW51ZWxsZXMgRXNjYXBpbmcg +YWxsZXIgcmVsZXZhbnRlbiBaZWljaGVuKQogICAgICAgIC8vIEJlaWRlIEZ1bmt0aW9uZW4gd2Vy +ZGVuIGluIERyaXZlUG9ydGFsIGJlaSBqZWRlciBEYXJzdGVsbHVuZyB2b24gQmVudXR6ZXJkYXRl +biBhdWZnZXJ1ZmVuLgogICAgZXNjYXBlSFRNTChzdHIpIHsKICAgICAgICBpZiAoIXN0cikgcmV0 +dXJuICcnOwogICAgICAgIGNvbnN0IGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2Rpdicp +OwogICAgICAgIGRpdi50ZXh0Q29udGVudCA9IHN0cjsKICAgICAgICByZXR1cm4gZGl2LmlubmVy +SFRNTDsKICAgIH0sCgogICAgZXNjYXBlQXR0cihzdHIpIHsKICAgICAgICBpZiAoIXN0cikgcmV0 +dXJuICcnOwogICAgICAgIHJldHVybiBzdHIucmVwbGFjZSgvJi9nLCAnJmFtcDsnKS5yZXBsYWNl +KC8iL2csICcmcXVvdDsnKS5yZXBsYWNlKC8nL2csICcmIzM5OycpLnJlcGxhY2UoLzwvZywgJyZs +dDsnKS5yZXBsYWNlKC8+L2csICcmZ3Q7JykucmVwbGFjZSgvYC9nLCAnJiM5NjsnKTsKICAgIH0s +CgogICAgLy8gU2FuaXRpemUtRnVua3Rpb24gZnVlciBSaWNoLVRleHQtSW5oYWx0ZSAoZG9jLmlu +aGFsdCkuCiAgICAvLyBFbnRmZXJudCBnZWZhZWhybGljaGUgRWxlbWVudGUgKHNjcmlwdCwgaWZy +YW1lLCBvYmplY3QsIGVtYmVkLCBmb3JtLCBldGMuKQogICAgLy8gdW5kIGFsbGUgRXZlbnQtSGFu +ZGxlciAob25jbGljaywgb25lcnJvciwgb25sb2FkLCAuLi4pIHNvd2llIGphdmFzY3JpcHQ6LVVS +THMsCiAgICAvLyBiZWhhZWx0IGFiZXIgYWxsZSBGb3JtYXRpZXJ1bmdlbiAoYiwgaSwgdSwgaDEt +aDYsIHAsIHVsLCBvbCwgdGFibGUsIGltZywgYSwgZXRjLikKICAgIHNhbml0aXplSFRNTChodG1s +KSB7CiAgICAgICAgaWYgKCFodG1sKSByZXR1cm4gJyc7CiAgICAgICAgdmFyIGRvYyA9IG5ldyBE +T01QYXJzZXIoKS5wYXJzZUZyb21TdHJpbmcoaHRtbCwgJ3RleHQvaHRtbCcpOwogICAgICAgIC8v +IEdlZmFlaHJsaWNoZSBUYWdzIGtvbXBsZXR0IGVudGZlcm5lbgogICAgICAgIC8vIGlmcmFtZXMg +d2VyZGVuIG51ciBlbnRmZXJudCB3ZW5uIHNpZSBOSUNIVCBpbiBlaW5lbSBEUklWRS1laWdlbmVu +IFBERi1Db250YWluZXIgc3RlY2tlbgogICAgICAgIC8vIChkcml2ZS1tZWRpYS1wZGYtaWZyYW1l +KSB1bmQga2VpbmUgbG9rYWxlIHNyYyBoYWJlbgogICAgICAgIHZhciBkYW5nZXJvdXNUYWdzID0g +WydzY3JpcHQnLCdvYmplY3QnLCdlbWJlZCcsJ2Zvcm0nLCdtYXRoJywnYmFzZScsJ2xpbmsnLCdt +ZXRhJywnbm9zY3JpcHQnLCdzdHlsZSddOwogICAgICAgIGRhbmdlcm91c1RhZ3MuZm9yRWFjaChm +dW5jdGlvbih0YWcpIHsKICAgICAgICAgICAgZG9jLnF1ZXJ5U2VsZWN0b3JBbGwodGFnKS5mb3JF +YWNoKGZ1bmN0aW9uKGVsKSB7IGVsLnJlbW92ZSgpOyB9KTsKICAgICAgICB9KTsKICAgICAgICAv +LyBpZnJhbWVzIHNlcGFyYXQ6IG51ciBmcmVtZGUvZ2VmYWVocmxpY2hlIGVudGZlcm5lbiwgbG9r +YWxlIFBERi1FaW5iZXR0dW5nZW4gYmVpYmVoYWx0ZW4KICAgICAgICBkb2MucXVlcnlTZWxlY3Rv +ckFsbCgnaWZyYW1lJykuZm9yRWFjaChmdW5jdGlvbihlbCkgewogICAgICAgICAgICB2YXIgc3Jj +ID0gKGVsLmdldEF0dHJpYnV0ZSgnc3JjJykgfHwgJycpLnRyaW0oKS50b0xvd2VyQ2FzZSgpOwog +ICAgICAgICAgICB2YXIgcGFyZW50ID0gZWwucGFyZW50RWxlbWVudDsKICAgICAgICAgICAgdmFy +IGlzRHJpdmVQZGYgPSBwYXJlbnQgJiYgcGFyZW50LmNsYXNzTGlzdCAmJiBwYXJlbnQuY2xhc3NM +aXN0LmNvbnRhaW5zKCdkcml2ZS1tZWRpYS1wZGYtaWZyYW1lJyk7CiAgICAgICAgICAgIHZhciBp +c0xvY2FsU3JjID0gc3JjLnN0YXJ0c1dpdGgoJ21lZGlhLycpIHx8IHNyYy5zdGFydHNXaXRoKCcv +bWVkaWEvJykgfHwgc3JjLnN0YXJ0c1dpdGgoJy4vbWVkaWEvJyk7CiAgICAgICAgICAgIGlmICgh +aXNEcml2ZVBkZiAmJiAhaXNMb2NhbFNyYykgZWwucmVtb3ZlKCk7CiAgICAgICAgfSk7CiAgICAg +ICAgLy8gQWxsZSBFdmVudC1IYW5kbGVyIHVuZCBqYXZhc2NyaXB0Oi1VUkxzIGVudGZlcm5lbgog +ICAgICAgIGRvYy5xdWVyeVNlbGVjdG9yQWxsKCcqJykuZm9yRWFjaChmdW5jdGlvbihlbCkgewog +ICAgICAgICAgICB2YXIgYXR0cnMgPSBBcnJheS5mcm9tKGVsLmF0dHJpYnV0ZXMpOwogICAgICAg +ICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGF0dHJzLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgICAg +ICAgICB2YXIgbmFtZSA9IGF0dHJzW2ldLm5hbWUudG9Mb3dlckNhc2UoKTsKICAgICAgICAgICAg +ICAgIC8vIG9uKi1FdmVudC1IYW5kbGVyIGVudGZlcm5lbgogICAgICAgICAgICAgICAgaWYgKG5h +bWUuc3RhcnRzV2l0aCgnb24nKSkgewogICAgICAgICAgICAgICAgICAgIGVsLnJlbW92ZUF0dHJp +YnV0ZShhdHRyc1tpXS5uYW1lKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIC8v +IGphdmFzY3JpcHQ6L2RhdGE6IFVSTHMgaW4gaHJlZi9zcmMvYWN0aW9uIGVudGZlcm5lbgogICAg +ICAgICAgICAgICAgaWYgKG5hbWUgPT09ICdocmVmJyB8fCBuYW1lID09PSAnc3JjJyB8fCBuYW1l +ID09PSAnYWN0aW9uJykgewogICAgICAgICAgICAgICAgICAgIHZhciB2YWwgPSAoYXR0cnNbaV0u +dmFsdWUgfHwgJycpLnRyaW0oKS50b0xvd2VyQ2FzZSgpOwogICAgICAgICAgICAgICAgICAgIGlm +ICh2YWwuc3RhcnRzV2l0aCgnamF2YXNjcmlwdDonKSB8fCB2YWwuc3RhcnRzV2l0aCgnZGF0YTp0 +ZXh0L2h0bWwnKSkgewogICAgICAgICAgICAgICAgICAgICAgICBlbC5yZW1vdmVBdHRyaWJ1dGUo +YXR0cnNbaV0ubmFtZSk7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQog +ICAgICAgICAgICB9CiAgICAgICAgfSk7CiAgICAgICAgLy8gQWxsZSBMaW5rcyBtdWVzc2VuIGlu +IG5ldWVtIFRhYiBvZWZmbmVuIChQb3J0YWwgZGFyZiBuaWNodCB2ZXJsYXNzZW4gd2VyZGVuKQog +ICAgICAgIGRvYy5xdWVyeVNlbGVjdG9yQWxsKCdhW2hyZWZdJykuZm9yRWFjaChmdW5jdGlvbihh +KSB7CiAgICAgICAgICAgIHZhciBocmVmID0gKGEuZ2V0QXR0cmlidXRlKCdocmVmJykgfHwgJycp +LnRyaW0oKTsKICAgICAgICAgICAgLy8gSW50ZXJuZSBBbmtlciAoIy4uLikgdW5kIERSSVZFLUNy +b3NzbGlua3MgKC5kcml2ZS14cmVmKSBhdXNuZWhtZW4KICAgICAgICAgICAgaWYgKGhyZWYuc3Rh +cnRzV2l0aCgnIycpIHx8IGEuY2xhc3NMaXN0LmNvbnRhaW5zKCdkcml2ZS14cmVmJykpIHJldHVy +bjsKICAgICAgICAgICAgYS5zZXRBdHRyaWJ1dGUoJ3RhcmdldCcsICdfYmxhbmsnKTsKICAgICAg +ICAgICAgYS5zZXRBdHRyaWJ1dGUoJ3JlbCcsICdub29wZW5lciBub3JlZmVycmVyJyk7CiAgICAg +ICAgfSk7CiAgICAgICAgcmV0dXJuIGRvYy5ib2R5LmlubmVySFRNTDsKICAgIH0sCgogICAgaGln +aGxpZ2h0SXRlbShkb2NJZCkgewogICAgICAgIGNvbnN0IGl0ZW1zID0gZG9jdW1lbnQucXVlcnlT +ZWxlY3RvckFsbCgnI2RvY3VtZW50TGlzdCAuZG9jdW1lbnQtaXRlbScpOwogICAgICAgIGl0ZW1z +LmZvckVhY2goaXRlbSA9PiB7CiAgICAgICAgICAgIGlmIChpdGVtLmdldEF0dHJpYnV0ZSgnb25j +bGljaycpICYmIGl0ZW0uZ2V0QXR0cmlidXRlKCdvbmNsaWNrJykuaW5jbHVkZXMoZG9jSWQpKSB7 +CiAgICAgICAgICAgICAgICBpdGVtLmNsYXNzTGlzdC5hZGQoJ2hpZ2hsaWdodC1zYXZlZCcpOwog +ICAgICAgICAgICAgICAgaXRlbS5zY3JvbGxJbnRvVmlldyh7IGJlaGF2aW9yOiAnc21vb3RoJywg +YmxvY2s6ICduZWFyZXN0JyB9KTsKICAgICAgICAgICAgICAgIGl0ZW0uYWRkRXZlbnRMaXN0ZW5l +cignYW5pbWF0aW9uZW5kJywgKCkgPT4gaXRlbS5jbGFzc0xpc3QucmVtb3ZlKCdoaWdobGlnaHQt +c2F2ZWQnKSwgeyBvbmNlOiB0cnVlIH0pOwogICAgICAgICAgICB9CiAgICAgICAgfSk7CiAgICB9 +Cn07CgovLyA9PT09PT09PT09PT09PT09PT09PT0gRURJVE9SID09PT09PT09PT09PT09PT09PT09 +PQoKLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 +PT09PT09PT09PT09PT09PT09PT09PT09PT0KLy8gTW9kdWw6IERyaXZlRWRpdG9yIC0gV1lTSVdZ +Ry1FZGl0b3IsIE1lZGllbi1VcGxvYWQsIERva3VtZW50ZW5iZWFyYmVpdHVuZwovLyBadXN0YWVu +ZGlnIGZ1ZXI6IEVkaXRvci1Nb2RhbCwgRm9ybWF0aWVydW5nLCBNZWRpZW4tVXBsb2FkLURpYWxv +ZywgU3BlaWNoZXJuCi8vIFNpY2hlcmhlaXQ6IEVpbmdlZnVlZ3RlIEhUTUwtSW5oYWx0ZSAoUGFz +dGUpIHdlcmRlbiB2aWEgRE9NUGFyc2VyIG5vcm1hbGlzaWVydC4KLy8gICAgICAgICAgICAgRGF0 +ZWluYW1lbiB3ZXJkZW4gdWViZXIgc2FuaXRpemVGaWxlbmFtZSgpIGJlcmVpbmlndCAoa2VpbmUg +U29uZGVyemVpY2hlbi9QZmFkdHJlbm5lcikuCi8vICAgICAgICAgICAgIFNwZWljaGVybiBzZW5k +ZXQgRGF0ZW4gYW4gL2FwaS93cml0ZSwgd28gc2VydmVyc2VpdGlnZSBBdXRvcmlzaWVydW5nIGdy +ZWlmdC4KLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 +PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KY29uc3QgRHJpdmVFZGl0b3IgPSB7CiAgICBj +dXJyZW50RG9jOiBudWxsLAogICAgaXNOZXc6IGZhbHNlLAogICAgaGlzdG9yeTogW10sCiAgICBo +aXN0b3J5SW5kZXg6IC0xLAogICAgaXNSZXN0b3Jpbmc6IGZhbHNlLAoKICAgIGFzeW5jIGNyZWF0 +ZU5ldygpIHsKICAgICAgICBpZiAoIURyaXZlRlMuY29ubmVjdGVkKSB7CiAgICAgICAgICAgIHNo +b3dUb2FzdCgnWnVtIEJlYXJiZWl0ZW4gYml0dGUgRFJJVkVfU3RhcnQuYmF0IHN0YXJ0ZW4nLCAn +d2FybmluZycpOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgICAgIGlmIChEcml2 +ZUZTLnJlYWRPbmx5KSB7CiAgICAgICAgICAgIGNvbnN0IGdyYW50ZWQgPSBhd2FpdCBEcml2ZUZT +LmVuc3VyZVdyaXRlQWNjZXNzKCk7CiAgICAgICAgICAgIGlmICghZ3JhbnRlZCkgcmV0dXJuOwog +ICAgICAgIH0KCiAgICAgICAgdGhpcy5pc05ldyA9IHRydWU7CiAgICAgICAgY29uc3QgdXNlcm5h +bWUgPSAoRHJpdmVGUy5lbnZpcm9uICYmIERyaXZlRlMuZW52aXJvbi51c2VybmFtZSkgPyBEcml2 +ZUZTLmVudmlyb24udXNlcm5hbWUgOiBudWxsOwogICAgICAgIHRoaXMuY3VycmVudERvYyA9IHsK +ICAgICAgICAgICAgaWQ6IERyaXZlRlMuZ2VuZXJhdGVJZCgpLAogICAgICAgICAgICB0aXRlbDog +JycsCiAgICAgICAgICAgIGthdGVnb3JpZTogKERyaXZlRlMuY29uZmlnLmthdGVnb3JpZW4gfHwg +WydWZXJrZWhyJ10pWzBdLAogICAgICAgICAgICBpbmhhbHQ6ICcnLAogICAgICAgICAgICBzdGF0 +dXM6ICdFbnR3dXJmJywKICAgICAgICAgICAgZXJzdGVsbHQ6IG5ldyBEYXRlKCkudG9JU09TdHJp +bmcoKS5zcGxpdCgnVCcpWzBdLAogICAgICAgICAgICBnZWFlbmRlcnQ6IG5ldyBEYXRlKCkudG9J +U09TdHJpbmcoKS5zcGxpdCgnVCcpWzBdLAogICAgICAgICAgICBlcnN0ZWxsdFZvbjogdXNlcm5h +bWUsCiAgICAgICAgICAgIGJlYXJiZWl0ZXRWb246IHVzZXJuYW1lLAogICAgICAgICAgICB2ZXJz +aW9uOiAndjAuMScsCiAgICAgICAgICAgIG1lZGlhczogW10sCiAgICAgICAgICAgIHNjaGxhZ3dv +ZXJ0ZXI6IFtdLAogICAgICAgICAgICBwYXJlbnRJZDogbnVsbAogICAgICAgIH07CgogICAgICAg +IHRoaXMub3Blbk1vZGFsKCdOZXVlcyBEb2t1bWVudCBlcnN0ZWxsZW4nKTsKICAgIH0sCgogICAg +X2xvY2tlZERvY0lkOiBudWxsLAoKICAgIGFzeW5jIGVkaXQoZG9jSWQpIHsKICAgICAgICBpZiAo +RHJpdmVGUy5yZWFkT25seSkgewogICAgICAgICAgICBjb25zdCBncmFudGVkID0gYXdhaXQgRHJp +dmVGUy5lbnN1cmVXcml0ZUFjY2VzcygpOwogICAgICAgICAgICBpZiAoIWdyYW50ZWQpIHJldHVy +bjsKICAgICAgICB9CgogICAgICAgIC8vIFBlc3NpbWlzdGljIExvY2tpbmc6IExvY2sgYW5mb3Jk +ZXJuIGJldm9yIEVkaXRvciBvZWZmbmV0CiAgICAgICAgY29uc3QgbG9ja1Jlc3VsdCA9IGF3YWl0 +IHRoaXMuYWNxdWlyZUxvY2soZG9jSWQpOwogICAgICAgIGlmICghbG9ja1Jlc3VsdC5vaykgewog +ICAgICAgICAgICBzaG93VG9hc3QoJ0Rva3VtZW50IHdpcmQgdm9uICcgKyBsb2NrUmVzdWx0LmJ5 +ICsgJyBiZWFyYmVpdGV0IChzZWl0ICcgKyBsb2NrUmVzdWx0Lm1pbnV0ZXMgKyAnIE1pbi4pJywg +J3dhcm5pbmcnLCA1MDAwKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KCiAgICAgICAg +Y29uc3QgZG9jID0gYXdhaXQgRHJpdmVGUy5sb2FkRG9jdW1lbnQoZG9jSWQpOwogICAgICAgIGlm +ICghZG9jKSB7CiAgICAgICAgICAgIGF3YWl0IHRoaXMucmVsZWFzZUxvY2soZG9jSWQpOwogICAg +ICAgICAgICBzaG93VG9hc3QoJ0Rva3VtZW50IGtvbm50ZSBuaWNodCBnZWxhZGVuIHdlcmRlbics +ICdlcnJvcicpOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQoKICAgICAgICB0aGlzLmlz +TmV3ID0gZmFsc2U7CiAgICAgICAgdGhpcy5fbG9ja2VkRG9jSWQgPSBkb2NJZDsKICAgICAgICB0 +aGlzLmN1cnJlbnREb2MgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KGRvYykpOyAvLyBEZWVw +IGNvcHkKICAgICAgICB0aGlzLm9wZW5Nb2RhbCgnRG9rdW1lbnQgYmVhcmJlaXRlbjogJyArIGRv +Yy50aXRlbCk7CiAgICB9LAoKICAgIG9wZW5Nb2RhbCh0aXRsZSkgewogICAgICAgIGNvbnN0IGRv +YyA9IHRoaXMuY3VycmVudERvYzsKICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZWRp +dG9yTW9kYWxUaXRsZScpLnRleHRDb250ZW50ID0gdGl0bGU7CiAgICAgICAgZG9jdW1lbnQuZ2V0 +RWxlbWVudEJ5SWQoJ2VkaXRvclRpdGVsJykudmFsdWUgPSBkb2MudGl0ZWwgfHwgJyc7CgogICAg +ICAgIC8vIEthdGVnb3JpZS1TZWxlY3QgZnVlbGxlbiAoYXVzZ2VibGVuZGV0ZSBLYXRlZ29yaWVu +IHVlYmVyc3ByaW5nZW4sIGVzIHNlaSBkZW5uIGRhcyBEb2t1bWVudCBoYXQgZGllc2UgS2F0ZWdv +cmllKQogICAgICAgIGNvbnN0IGthdFNlbGVjdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdl +ZGl0b3JLYXRlZ29yaWUnKTsKICAgICAgICBrYXRTZWxlY3QuaW5uZXJIVE1MID0gJyc7CiAgICAg +ICAgdmFyIGVkaXRvckhpZGRlbkthdHMgPSBEcml2ZUZTLmNvbmZpZy5oaWRkZW5LYXRlZ29yaWVu +IHx8IFtdOwogICAgICAgIChEcml2ZUZTLmNvbmZpZy5rYXRlZ29yaWVuIHx8IFtdKS5mb3JFYWNo +KGthdCA9PiB7CiAgICAgICAgICAgIGlmIChlZGl0b3JIaWRkZW5LYXRzLmluY2x1ZGVzKGthdCkg +JiYga2F0ICE9PSBkb2Mua2F0ZWdvcmllKSByZXR1cm47CiAgICAgICAgICAgIGNvbnN0IG9wdCA9 +IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ29wdGlvbicpOwogICAgICAgICAgICBvcHQudmFsdWUg +PSBrYXQ7CiAgICAgICAgICAgIG9wdC50ZXh0Q29udGVudCA9IGthdDsKICAgICAgICAgICAgaWYg +KGthdCA9PT0gZG9jLmthdGVnb3JpZSkgb3B0LnNlbGVjdGVkID0gdHJ1ZTsKICAgICAgICAgICAg +a2F0U2VsZWN0LmFwcGVuZENoaWxkKG9wdCk7CiAgICAgICAgfSk7CgogICAgICAgIC8vIFVudGVy +a2F0ZWdvcmllbi1IaW53ZWlzIGJlaSBLYXRlZ29yaWUtV2VjaHNlbAogICAgICAgIGNvbnN0IHRp +dGVsSW5wdXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZWRpdG9yVGl0ZWwnKTsKICAgICAg +ICBjb25zdCB1cGRhdGVTdWJ0YWdIaW50ID0gKCkgPT4gewogICAgICAgICAgICBjb25zdCBzdWJz +ID0gRHJpdmVFZGl0b3IuQ0FURUdPUllfU1VCVEFHU1trYXRTZWxlY3QudmFsdWVdOwogICAgICAg +ICAgICBpZiAoc3VicykgewogICAgICAgICAgICAgICAgdGl0ZWxJbnB1dC5wbGFjZWhvbGRlciA9 +ICdUaXRlbCB6LkIuICcgKyBrYXRTZWxlY3QudmFsdWUgKyAnICgnICsgc3Vicy5qb2luKCcgLyAn +KSArICcpJzsKICAgICAgICAgICAgICAgIC8vIFN1Yi1UYWdzIGF1dG9tYXRpc2NoIGFscyBLZXl3 +b3JkLVZvcnNjaGxhZWdlIHByaW9yaXNpZXJlbgogICAgICAgICAgICAgICAgc3Vicy5mb3JFYWNo +KHMgPT4gewogICAgICAgICAgICAgICAgICAgIGlmICghRHJpdmVFZGl0b3IuX2N1cnJlbnRLZXl3 +b3Jkcy5pbmNsdWRlcyhzKSkgewogICAgICAgICAgICAgICAgICAgICAgICBEcml2ZUVkaXRvci5f +cmVuZGVyU3VnZ2VzdGlvbnMoKTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg +ICB9KTsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIHRpdGVsSW5wdXQucGxh +Y2Vob2xkZXIgPSAnVGl0ZWwgZGVzIERva3VtZW50cyc7CiAgICAgICAgICAgIH0KICAgICAgICB9 +OwogICAgICAgIGthdFNlbGVjdC5hZGRFdmVudExpc3RlbmVyKCdjaGFuZ2UnLCB1cGRhdGVTdWJ0 +YWdIaW50KTsKICAgICAgICB1cGRhdGVTdWJ0YWdIaW50KCk7CgogICAgICAgIC8vIFN0YXR1cy1T +ZWxlY3QgZnVlbGxlbiAoZ2VmaWx0ZXJ0IG5hY2ggR292ZXJuYW5jZS1Sb2xsZSkKICAgICAgICBj +b25zdCBzdGF0dXNTZWxlY3QgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZWRpdG9yU3RhdHVz +Jyk7CiAgICAgICAgc3RhdHVzU2VsZWN0LmlubmVySFRNTCA9ICcnOwogICAgICAgIGNvbnN0IGlz +U1UgPSBEcml2ZUdvdmVybmFuY2UuaXNTdXBlclVzZXIoKTsKICAgICAgICBjb25zdCBpc0ZBID0g +RHJpdmVHb3Zlcm5hbmNlLmlzRmFjaGF1ZnNpY2h0KCk7CiAgICAgICAgY29uc3QgaXNSZXYgPSBE +cml2ZUdvdmVybmFuY2UuaXNSZXZpZXdlcihkb2Mua2F0ZWdvcmllKTsKICAgICAgICBPYmplY3Qu +a2V5cyhEcml2ZUZTLmNvbmZpZy5zdGF0dXMgfHwge30pLmZvckVhY2goc3RhdHVzID0+IHsKICAg +ICAgICAgICAgLy8gTm9ybWFsZSBVc2VyOiBudXIgRW50d3VyZiArIFBydWVmdW5nCiAgICAgICAg +ICAgIGlmICghaXNTVSAmJiAhaXNGQSAmJiAhaXNSZXYgJiYgKHN0YXR1cyA9PT0gJ0ZyZWlnZWdl +YmVuJyB8fCBzdGF0dXMgPT09ICdBYmdlbGVobnQnKSkgcmV0dXJuOwogICAgICAgICAgICBjb25z +dCBjZmcgPSBEcml2ZUZTLmNvbmZpZy5zdGF0dXNbc3RhdHVzXTsKICAgICAgICAgICAgY29uc3Qg +b3B0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnb3B0aW9uJyk7CiAgICAgICAgICAgIG9wdC52 +YWx1ZSA9IHN0YXR1czsKICAgICAgICAgICAgb3B0LnRleHRDb250ZW50ID0gY2ZnLmxhYmVsOwog +ICAgICAgICAgICBpZiAoc3RhdHVzID09PSBkb2Muc3RhdHVzKSBvcHQuc2VsZWN0ZWQgPSB0cnVl +OwogICAgICAgICAgICBzdGF0dXNTZWxlY3QuYXBwZW5kQ2hpbGQob3B0KTsKICAgICAgICB9KTsK +CiAgICAgICAgLy8gw5xiZXJhcnRpa2VsLVNlbGVjdCBmw7xsbGVuCiAgICAgICAgY29uc3QgcGFy +ZW50U2VsZWN0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2VkaXRvclBhcmVudCcpOwogICAg +ICAgIHBhcmVudFNlbGVjdC5pbm5lckhUTUwgPSAnPG9wdGlvbiB2YWx1ZT0iIj4tLSBLZWluIMOc +YmVyYXJ0aWtlbCAtLTwvb3B0aW9uPic7CiAgICAgICAgRHJpdmVGUy5kb2N1bWVudHMuZm9yRWFj +aChkID0+IHsKICAgICAgICAgICAgaWYgKGQuaWQgPT09IGRvYy5pZCkgcmV0dXJuOyAvLyBzaWNo +IHNlbGJzdCBhdXNzY2hsaWXDn2VuCiAgICAgICAgICAgIGlmIChkLnBhcmVudElkID09PSBkb2Mu +aWQpIHJldHVybjsgLy8gS2luZGVyIGF1c3NjaGxpZcOfZW4gKFppcmtlbHZlcm1laWR1bmcpCiAg +ICAgICAgICAgIGNvbnN0IG9wdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ29wdGlvbicpOwog +ICAgICAgICAgICBvcHQudmFsdWUgPSBkLmlkOwogICAgICAgICAgICBvcHQudGV4dENvbnRlbnQg +PSBkLnRpdGVsOwogICAgICAgICAgICBpZiAoZC5pZCA9PT0gZG9jLnBhcmVudElkKSBvcHQuc2Vs +ZWN0ZWQgPSB0cnVlOwogICAgICAgICAgICBwYXJlbnRTZWxlY3QuYXBwZW5kQ2hpbGQob3B0KTsK +ICAgICAgICB9KTsKCiAgICAgICAgLy8gU2NobGFnd8O2cnRlciBpbml0aWFsaXNpZXJlbiAoYWJo +YWVuZ2lnIHZvbiBHb3Zlcm5hbmNlLU1vZHVzKQogICAgICAgIGNvbnN0IGt3TW9kZSA9IChEcml2 +ZUdvdmVybmFuY2UuZGF0YSAmJiBEcml2ZUdvdmVybmFuY2UuZGF0YS5zZXR0aW5ncykgPyAoRHJp +dmVHb3Zlcm5hbmNlLmRhdGEuc2V0dGluZ3Mua2V5d29yZE1vZGUgfHwgJ3JlcXVpcmVkJykgOiAn +cmVxdWlyZWQnOwogICAgICAgIGNvbnN0IGt3Um93ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo +J2VkaXRvcktleXdvcmRSb3cnKTsKICAgICAgICBpZiAoa3dSb3cpIGt3Um93LnN0eWxlLmRpc3Bs +YXkgPSAoa3dNb2RlID09PSAnZGlzYWJsZWQnKSA/ICdub25lJyA6ICcnOwogICAgICAgIHRoaXMu +X2N1cnJlbnRLZXl3b3JkcyA9IFsuLi4oZG9jLnNjaGxhZ3dvZXJ0ZXIgfHwgW10pXTsKICAgICAg +ICB0aGlzLl9yZW5kZXJLZXl3b3JkcygpOwogICAgICAgIHRoaXMuX3NldHVwS2V5d29yZElucHV0 +KCk7CgogICAgICAgIC8vIEluaGFsdCBsYWRlbgogICAgICAgIGNvbnN0IGVkaXRvcklucHV0ID0g +ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2VkaXRvcklucHV0Jyk7CiAgICAgICAgZWRpdG9ySW5w +dXQuaW5uZXJIVE1MID0gRHJpdmVQb3J0YWwuc2FuaXRpemVIVE1MKGRvYy5pbmhhbHQpOwoKICAg +ICAgICAvLyBNb2RhbCB6ZWlnZW4KICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZWRp +dG9yTW9kYWwnKS5jbGFzc0xpc3QuYWRkKCdhY3RpdmUnKTsKICAgICAgICBlZGl0b3JJbnB1dC5m +b2N1cygpOwoKICAgICAgICAvLyBIaXN0b3J5IGluaXRpYWxpc2llcmVuCiAgICAgICAgdGhpcy5p +bml0SGlzdG9yeSgpOwoKICAgICAgICAvLyBNZWRpYSBjb250ZXh0IG1lbnUgZXZlbnRzCiAgICAg +ICAgdGhpcy5zZXR1cEVkaXRvck1lZGlhRXZlbnRzKCk7CiAgICB9LAoKICAgIGFzeW5jIGNhbmNl +bFdpdGhQcm9tcHQoKSB7CiAgICAgICAgLy8gUHJ1ZWZlbiBvYiBJbmhhbHQgdm9yaGFuZGVuCiAg +ICAgICAgdmFyIGVkaXRvciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdlZGl0b3JJbnB1dCcp +OwogICAgICAgIHZhciB0aXRlbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdlZGl0b3JUaXRl +bCcpOwogICAgICAgIHZhciBoYXNDb250ZW50ID0gKGVkaXRvciAmJiBlZGl0b3IudGV4dENvbnRl +bnQudHJpbSgpLmxlbmd0aCA+IDApIHx8ICh0aXRlbCAmJiB0aXRlbC52YWx1ZS50cmltKCkubGVu +Z3RoID4gMCk7CgogICAgICAgIGlmIChoYXNDb250ZW50KSB7CiAgICAgICAgICAgIHZhciBtb2Rh +bCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwogICAgICAgICAgICBtb2RhbC5zdHls +ZS5jc3NUZXh0ID0gJ3Bvc2l0aW9uOmZpeGVkO3RvcDowO2xlZnQ6MDt3aWR0aDoxMDAlO2hlaWdo +dDoxMDAlO2JhY2tncm91bmQ6cmdiYSgwLDAsMCwwLjUpO3otaW5kZXg6MTA2MDA7ZGlzcGxheTpm +bGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyOyc7CiAgICAgICAg +ICAgIG1vZGFsLmlubmVySFRNTCA9CiAgICAgICAgICAgICAgICAnPGRpdiBzdHlsZT0iYmFja2dy +b3VuZDp2YXIoLS1iZy1jYXJkKTtib3JkZXItcmFkaXVzOjEwcHg7cGFkZGluZzoyNHB4IDI4cHg7 +bWF4LXdpZHRoOjQyMHB4O3dpZHRoOjkwJTtib3gtc2hhZG93OjAgOHB4IDMycHggcmdiYSgwLDAs +MCwwLjMpOyI+JyArCiAgICAgICAgICAgICAgICAgICAgJzxoMyBzdHlsZT0iY29sb3I6dmFyKC0t +dGV4dC1oZWFkaW5nKTttYXJnaW4tYm90dG9tOjEycHg7Ij5BcnRpa2VsIHNjaGxpZcOfZW4/PC9o +Mz4nICsKICAgICAgICAgICAgICAgICAgICAnPHAgc3R5bGU9ImNvbG9yOnZhcigtLXRleHQtcHJp +bWFyeSk7Zm9udC1zaXplOjE0cHg7bGluZS1oZWlnaHQ6MS43O21hcmdpbi1ib3R0b206MTZweDsi +PicgKwogICAgICAgICAgICAgICAgICAgICAgICAnTcO2Y2h0ZXN0IGR1IGRlbiBha3R1ZWxsZW4g +U3RhbmQgYWxzIEVudHd1cmYgc3BlaWNoZXJuLCBkYW1pdCBkdSBzcMOkdGVyIGRhcmFuIHdlaXRl +cmFyYmVpdGVuIGthbm5zdD8nICsKICAgICAgICAgICAgICAgICAgICAnPC9wPicgKwogICAgICAg +ICAgICAgICAgICAgICc8ZGl2IHN0eWxlPSJkaXNwbGF5OmZsZXg7Z2FwOjhweDtqdXN0aWZ5LWNv +bnRlbnQ6ZmxleC1lbmQ7Ij4nICsKICAgICAgICAgICAgICAgICAgICAgICAgJzxidXR0b24gaWQ9 +ImNhbmNlbERpc2NhcmQiIHN0eWxlPSJwYWRkaW5nOjhweCAxNnB4O2JvcmRlci1yYWRpdXM6NHB4 +O2JvcmRlcjoxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG9yKTtiYWNrZ3JvdW5kOnZhcigtLWJn +LWNhcmQpO2NvbG9yOnZhcigtLXRleHQtcHJpbWFyeSk7Y3Vyc29yOnBvaW50ZXI7Ij5WZXJ3ZXJm +ZW48L2J1dHRvbj4nICsKICAgICAgICAgICAgICAgICAgICAgICAgJzxidXR0b24gaWQ9ImNhbmNl +bFNhdmVEcmFmdCIgc3R5bGU9InBhZGRpbmc6OHB4IDE2cHg7Ym9yZGVyLXJhZGl1czo0cHg7Ym9y +ZGVyOm5vbmU7YmFja2dyb3VuZDp2YXIoLS10ZXh0LWhlYWRpbmcpO2NvbG9yOndoaXRlO2N1cnNv +cjpwb2ludGVyO2ZvbnQtd2VpZ2h0OjYwMDsiPkFscyBFbnR3dXJmIHNwZWljaGVybjwvYnV0dG9u +PicgKwogICAgICAgICAgICAgICAgICAgICc8L2Rpdj4nICsKICAgICAgICAgICAgICAgICc8L2Rp +dj4nOwogICAgICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKG1vZGFsKTsKCiAgICAg +ICAgICAgIHZhciBzZWxmID0gdGhpczsKICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5 +SWQoJ2NhbmNlbERpc2NhcmQnKS5vbmNsaWNrID0gZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAg +ICBtb2RhbC5yZW1vdmUoKTsKICAgICAgICAgICAgICAgIHNlbGYuY2xvc2UoKTsKICAgICAgICAg +ICAgfTsKICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NhbmNlbFNhdmVEcmFm +dCcpLm9uY2xpY2sgPSBhc3luYyBmdW5jdGlvbigpIHsKICAgICAgICAgICAgICAgIG1vZGFsLnJl +bW92ZSgpOwogICAgICAgICAgICAgICAgLy8gU3RhdHVzIGF1ZiBFbnR3dXJmIHNldHplbiB1bmQg +c3BlaWNoZXJuCiAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZWRpdG9y +U3RhdHVzJykudmFsdWUgPSAnRW50d3VyZic7CiAgICAgICAgICAgICAgICBhd2FpdCBzZWxmLnNh +dmUodHJ1ZSk7CiAgICAgICAgICAgIH07CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgdGhp +cy5jbG9zZSgpOwogICAgICAgIH0KICAgIH0sCgogICAgY2xvc2UoKSB7CiAgICAgICAgZG9jdW1l +bnQuZ2V0RWxlbWVudEJ5SWQoJ2VkaXRvck1vZGFsJykuY2xhc3NMaXN0LnJlbW92ZSgnYWN0aXZl +Jyk7CiAgICAgICAgdGhpcy5oaWRlQ29udGV4dE1lbnUoKTsKICAgICAgICB0aGlzLmNsb3NlVXBs +b2FkRGlhbG9nKCk7CiAgICAgICAgdGhpcy5jbG9zZUNvbnRyaWJEaWFsb2coKTsKICAgICAgICAv +LyBNZXRhLVplaWxlbiB3aWVkZXIgZWluYmxlbmRlbiAoa29lbm5lbiBiZWkgU3RhcnRzZWl0ZW4t +QmVhcmJlaXR1bmcgYXVzZ2VibGVuZGV0IHNlaW4pCiAgICAgICAgZG9jdW1lbnQucXVlcnlTZWxl +Y3RvckFsbCgnLmVkaXRvci1tZXRhLXJvdycpLmZvckVhY2goZnVuY3Rpb24ocm93KSB7IHJvdy5z +dHlsZS5kaXNwbGF5ID0gJyc7IH0pOwogICAgICAgIHRoaXMuX2lzU3RhcnRzZWl0ZSA9IGZhbHNl +OwogICAgICAgIC8vIExvY2sgZnJlaWdlYmVuCiAgICAgICAgaWYgKHRoaXMuX2xvY2tlZERvY0lk +KSB7CiAgICAgICAgICAgIHRoaXMucmVsZWFzZUxvY2sodGhpcy5fbG9ja2VkRG9jSWQpOwogICAg +ICAgICAgICB0aGlzLl9sb2NrZWREb2NJZCA9IG51bGw7CiAgICAgICAgfQogICAgICAgIHRoaXMu +Y3VycmVudERvYyA9IG51bGw7CiAgICAgICAgdGhpcy5pc05ldyA9IGZhbHNlOwogICAgICAgIHRo +aXMuX3BlbmRpbmdDb250cmliVHlwZSA9IG51bGw7CiAgICB9LAoKICAgIF9wZW5kaW5nQ29udHJp +YlR5cGU6IG51bGwsCgogICAgX2lzU3RhcnRzZWl0ZTogZmFsc2UsCgogICAgYXN5bmMgc2F2ZUFu +ZENsb3NlKCkgewogICAgICAgIGF3YWl0IHRoaXMuc2F2ZSh0cnVlKTsKICAgIH0sCgogICAgYXN5 +bmMgc2F2ZShjbG9zZUFmdGVyKSB7CiAgICAgICAgaWYgKCF0aGlzLmN1cnJlbnREb2MpIHJldHVy +bjsKCiAgICAgICAgLy8gU29uZGVyZmFsbDogU3RhcnRzZWl0ZW4tQmVhcmJlaXR1bmcKICAgICAg +ICBpZiAodGhpcy5faXNTdGFydHNlaXRlKSB7CiAgICAgICAgICAgIHZhciBjb250ZW50ID0gZG9j +dW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2VkaXRvcklucHV0JykuaW5uZXJIVE1MOwogICAgICAgICAg +ICBhd2FpdCBEcml2ZUdvdmVybmFuY2Uuc2F2ZVN0YXJ0c2VpdGUoY29udGVudCk7CiAgICAgICAg +ICAgIGlmIChjbG9zZUFmdGVyKSB7CiAgICAgICAgICAgICAgICB0aGlzLl9pc1N0YXJ0c2VpdGUg +PSBmYWxzZTsKICAgICAgICAgICAgICAgIHRoaXMuY2xvc2UoKTsKICAgICAgICAgICAgICAgIC8v +IFp1csO8Y2sgaW5zIEdvdmVybmFuY2UtTW9kYWwKICAgICAgICAgICAgICAgIERyaXZlR292ZXJu +YW5jZS5zaG93QWRtaW4oKTsKICAgICAgICAgICAgfQogICAgICAgICAgICByZXR1cm47CiAgICAg +ICAgfQoKICAgICAgICBjb25zdCB0aXRlbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdlZGl0 +b3JUaXRlbCcpLnZhbHVlLnRyaW0oKTsKICAgICAgICBpZiAoIXRpdGVsKSB7CiAgICAgICAgICAg +IHNob3dUb2FzdCgnQml0dGUgZWluZW4gVGl0ZWwgZWluZ2ViZW4nLCAnd2FybmluZycpOwogICAg +ICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZWRpdG9yVGl0ZWwnKS5mb2N1cygpOwog +ICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQoKICAgICAgICAvLyBCZWkgYmVzdGVoZW5kZW4g +RG9rdW1lbnRlbjogQmVpdHJhZ3NhcnQgYWJmcmFnZW4gZmFsbHMgbm9jaCBuaWNodCBnZXdhZWhs +dAogICAgICAgIGlmICghdGhpcy5pc05ldyAmJiAhdGhpcy5fcGVuZGluZ0NvbnRyaWJUeXBlKSB7 +CiAgICAgICAgICAgIHRoaXMuX3BlbmRpbmdDbG9zZUFmdGVyID0gY2xvc2VBZnRlciB8fCBmYWxz +ZTsKICAgICAgICAgICAgdGhpcy5zaG93Q29udHJpYkRpYWxvZygpOwogICAgICAgICAgICByZXR1 +cm47CiAgICAgICAgfQoKICAgICAgICAvLyBTY2hsYWd3w7ZydGVyIFBmbGljaHRmZWxkIChudXIg +d2VubiBNb2R1cyA9ICJyZXF1aXJlZCIpCiAgICAgICAgY29uc3Qga3dNb2RlID0gKERyaXZlR292 +ZXJuYW5jZS5kYXRhICYmIERyaXZlR292ZXJuYW5jZS5kYXRhLnNldHRpbmdzKSA/IChEcml2ZUdv +dmVybmFuY2UuZGF0YS5zZXR0aW5ncy5rZXl3b3JkTW9kZSB8fCAncmVxdWlyZWQnKSA6ICdyZXF1 +aXJlZCc7CiAgICAgICAgaWYgKGt3TW9kZSA9PT0gJ3JlcXVpcmVkJyAmJiAoIXRoaXMuX2N1cnJl +bnRLZXl3b3JkcyB8fCB0aGlzLl9jdXJyZW50S2V5d29yZHMubGVuZ3RoID09PSAwKSkgewogICAg +ICAgICAgICBzaG93VG9hc3QoJ0JpdHRlIG1pbmRlc3RlbnMgZWluIFNjaGxhZ3dvcnQgZWluZ2Vi +ZW4nLCAnd2FybmluZycpOwogICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZWRp +dG9yS2V5d29yZElucHV0JykuZm9jdXMoKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0K +CiAgICAgICAgdGhpcy5jdXJyZW50RG9jLnRpdGVsID0gdGl0ZWw7CiAgICAgICAgdGhpcy5jdXJy +ZW50RG9jLmthdGVnb3JpZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdlZGl0b3JLYXRlZ29y +aWUnKS52YWx1ZTsKICAgICAgICB0aGlzLmN1cnJlbnREb2MucGFyZW50SWQgPSBkb2N1bWVudC5n +ZXRFbGVtZW50QnlJZCgnZWRpdG9yUGFyZW50JykudmFsdWUgfHwgbnVsbDsKICAgICAgICBpZiAo +a3dNb2RlICE9PSAnZGlzYWJsZWQnKSB7CiAgICAgICAgICAgIHRoaXMuY3VycmVudERvYy5zY2hs +YWd3b2VydGVyID0gWy4uLnRoaXMuX2N1cnJlbnRLZXl3b3Jkc107CiAgICAgICAgfQogICAgICAg +IGNvbnN0IHNlbGVjdGVkU3RhdHVzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2VkaXRvclN0 +YXR1cycpLnZhbHVlOwogICAgICAgIGNvbnN0IG5ld0luaGFsdCA9IGRvY3VtZW50LmdldEVsZW1l +bnRCeUlkKCdlZGl0b3JJbnB1dCcpLmlubmVySFRNTDsKCiAgICAgICAgLy8gQ29udHJpYnV0b3It +VHJhY2tpbmc6IEJlaXRyYWdzYXJ0IGJlc3RpbW1lbgogICAgICAgIGNvbnN0IHVzZXJuYW1lID0g +KERyaXZlRlMuZW52aXJvbiAmJiBEcml2ZUZTLmVudmlyb24udXNlcm5hbWUpID8gRHJpdmVGUy5l +bnZpcm9uLnVzZXJuYW1lIDogJ1VuYmVrYW5udCc7CiAgICAgICAgaWYgKCF0aGlzLmN1cnJlbnRE +b2MuY29udHJpYnV0b3JzKSB0aGlzLmN1cnJlbnREb2MuY29udHJpYnV0b3JzID0gW107CgogICAg +ICAgIGlmICh0aGlzLmlzTmV3KSB7CiAgICAgICAgICAgIC8vIE5ldWVzIERva3VtZW50OiBFcnN0 +ZWxsZXIgPSAxMDAlIEF1dG9yCiAgICAgICAgICAgIHRoaXMuY3VycmVudERvYy5jb250cmlidXRv +cnMgPSBbeyB1c2VybmFtZTogdXNlcm5hbWUsIHJvbGU6ICdhdXRvcicsIGVudHJpZXM6IDEsIGZp +cnN0Q29udHJpYjogbmV3IERhdGUoKS50b0lTT1N0cmluZygpIH1dOwogICAgICAgIH0gZWxzZSBp +ZiAodGhpcy5fcGVuZGluZ0NvbnRyaWJUeXBlKSB7CiAgICAgICAgICAgIC8vIEJlc3RlaGVuZDog +RWludHJhZyBnZW1hZXNzIGdld2FlaGx0ZXIgQmVpdHJhZ3NhcnQgaGluenVmdWVnZW4KICAgICAg +ICAgICAgY29uc3QgZXhpc3RpbmcgPSB0aGlzLmN1cnJlbnREb2MuY29udHJpYnV0b3JzLmZpbmQo +YyA9PiBjLnVzZXJuYW1lID09PSB1c2VybmFtZSAmJiBjLnJvbGUgPT09IHRoaXMuX3BlbmRpbmdD +b250cmliVHlwZSk7CiAgICAgICAgICAgIGlmIChleGlzdGluZykgewogICAgICAgICAgICAgICAg +ZXhpc3RpbmcuZW50cmllcyA9IChleGlzdGluZy5lbnRyaWVzIHx8IDEpICsgMTsKICAgICAgICAg +ICAgICAgIGV4aXN0aW5nLmxhc3RDb250cmliID0gbmV3IERhdGUoKS50b0lTT1N0cmluZygpOwog +ICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgdGhpcy5jdXJyZW50RG9jLmNvbnRy +aWJ1dG9ycy5wdXNoKHsKICAgICAgICAgICAgICAgICAgICB1c2VybmFtZTogdXNlcm5hbWUsCiAg +ICAgICAgICAgICAgICAgICAgcm9sZTogdGhpcy5fcGVuZGluZ0NvbnRyaWJUeXBlLAogICAgICAg +ICAgICAgICAgICAgIGVudHJpZXM6IDEsCiAgICAgICAgICAgICAgICAgICAgZmlyc3RDb250cmli +OiBuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCkKICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAg +ICB9CiAgICAgICAgICAgIHRoaXMuX3BlbmRpbmdDb250cmliVHlwZSA9IG51bGw7CiAgICAgICAg +fQoKICAgICAgICAvLyBSZXZpc2lvbiBzaWNoZXJuOiBWb3JoZXJpZ2VuIFN0YW5kIHNwZWljaGVy +biAobWF4IDYgUmV2aXNpb25lbikKICAgICAgICBpZiAoIXRoaXMuaXNOZXcgJiYgdGhpcy5jdXJy +ZW50RG9jLmluaGFsdCAmJiB0aGlzLmN1cnJlbnREb2MuaW5oYWx0ICE9PSBuZXdJbmhhbHQpIHsK +ICAgICAgICAgICAgaWYgKCF0aGlzLmN1cnJlbnREb2MucmV2aXNpb25zKSB0aGlzLmN1cnJlbnRE +b2MucmV2aXNpb25zID0gW107CiAgICAgICAgICAgIHRoaXMuY3VycmVudERvYy5yZXZpc2lvbnMu +cHVzaCh7CiAgICAgICAgICAgICAgICBpbmhhbHQ6IHRoaXMuY3VycmVudERvYy5pbmhhbHQsCiAg +ICAgICAgICAgICAgICB0aXRlbDogdGhpcy5jdXJyZW50RG9jLnRpdGVsLAogICAgICAgICAgICAg +ICAgc3RhdHVzOiB0aGlzLmN1cnJlbnREb2Muc3RhdHVzLAogICAgICAgICAgICAgICAgc2F2ZWRB +dDogbmV3IERhdGUoKS50b0lTT1N0cmluZygpLAogICAgICAgICAgICAgICAgc2F2ZWRCeTogdXNl +cm5hbWUKICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIC8vIE1heCA2IFJldmlzaW9uZW4gYmVo +YWx0ZW4gKGFlbHRlc3RlIGVudGZlcm5lbikKICAgICAgICAgICAgd2hpbGUgKHRoaXMuY3VycmVu +dERvYy5yZXZpc2lvbnMubGVuZ3RoID4gNikgewogICAgICAgICAgICAgICAgdGhpcy5jdXJyZW50 +RG9jLnJldmlzaW9ucy5zaGlmdCgpOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAv +LyBWZXJzaW9uIGF1dG9tYXRpc2NoIGJlcmVjaG5lbgogICAgICAgIHRoaXMuY3VycmVudERvYy52 +ZXJzaW9uID0gY2FsY3VsYXRlVmVyc2lvbih0aGlzLmN1cnJlbnREb2MsIHRoaXMuY3VycmVudERv +Yy5pbmhhbHQsIG5ld0luaGFsdCwgc2VsZWN0ZWRTdGF0dXMpOwoKICAgICAgICB0aGlzLmN1cnJl +bnREb2MuaW5oYWx0ID0gbmV3SW5oYWx0OwoKICAgICAgICAvLyBHb3Zlcm5hbmNlLVdvcmtmbG93 +OiBTdGF0dXMtVWViZXJnYWVuZ2UgcHJ1ZWZlbgogICAgICAgIGNvbnN0IGdvdiA9IERyaXZlR292 +ZXJuYW5jZS5kYXRhOwogICAgICAgIGNvbnN0IHNldHRpbmdzID0gZ292ID8gZ292LnNldHRpbmdz +IDoge307CiAgICAgICAgY29uc3QgaXNTVSA9IERyaXZlR292ZXJuYW5jZS5pc1N1cGVyVXNlcigp +OwogICAgICAgIGNvbnN0IGlzRkEgPSBEcml2ZUdvdmVybmFuY2UuaXNGYWNoYXVmc2ljaHQoKTsK +ICAgICAgICBjb25zdCBpc1JldiA9IERyaXZlR292ZXJuYW5jZS5pc1Jldmlld2VyKHRoaXMuY3Vy +cmVudERvYy5rYXRlZ29yaWUpOwoKICAgICAgICBpZiAoc2VsZWN0ZWRTdGF0dXMgPT09ICdQcsO8 +ZnVuZycgJiYgIWlzU1UgJiYgIWlzRkEpIHsKICAgICAgICAgICAgLy8gWnVyIFBydWVmdW5nIGVp +bnJlaWNoZW4KICAgICAgICAgICAgYXdhaXQgRHJpdmVHb3Zlcm5hbmNlLnN1Ym1pdEZvclJldmll +dyh0aGlzLmN1cnJlbnREb2MpOwogICAgICAgICAgICBzaG93VG9hc3QoJ0Rva3VtZW50IHp1ciBQ +csO8ZnVuZyBlaW5nZXJlaWNodCcsICdpbmZvJyk7CiAgICAgICAgfSBlbHNlIGlmIChzZWxlY3Rl +ZFN0YXR1cyA9PT0gJ0ZyZWlnZWdlYmVuJyAmJiAhaXNTVSAmJiAhaXNGQSAmJiAhaXNSZXYpIHsK +ICAgICAgICAgICAgLy8gTm9ybWFsZXIgVXNlciBkYXJmIG5pY2h0IGRpcmVrdCBmcmVpZ2ViZW4K +ICAgICAgICAgICAgc2hvd1RvYXN0KCdLZWluZSBCZXJlY2h0aWd1bmcgenVyIEZyZWlnYWJlLiBC +aXR0ZSB6dXIgUHLDvGZ1bmcgZWlucmVpY2hlbi4nLCAnd2FybmluZycpOwogICAgICAgICAgICBy +ZXR1cm47CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgLy8gV2VubiBTdGF0dXMgYXVmIFBy +dWVmdW5nIGdlc2V0enQgd2lyZDogdm9yaGVyaWdlbiBJbmhhbHQgc2ljaGVybiBmdWVyIERpZmYK +ICAgICAgICAgICAgaWYgKHNlbGVjdGVkU3RhdHVzID09PSAnUHLDvGZ1bmcnICYmIHRoaXMuY3Vy +cmVudERvYy5zdGF0dXMgIT09ICdQcsO8ZnVuZycpIHsKICAgICAgICAgICAgICAgIHRyeSB7CiAg +ICAgICAgICAgICAgICAgICAgdmFyIHNhdmVkRG9jID0gYXdhaXQgRHJpdmVGUy5sb2FkRG9jdW1l +bnQodGhpcy5jdXJyZW50RG9jLmlkKTsKICAgICAgICAgICAgICAgICAgICBpZiAoc2F2ZWREb2Mg +JiYgc2F2ZWREb2MuaW5oYWx0KSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY3VycmVu +dERvYy5fcHJldmlvdXNJbmhhbHQgPSBzYXZlZERvYy5pbmhhbHQ7CiAgICAgICAgICAgICAgICAg +ICAgICAgIHRoaXMuY3VycmVudERvYy5fcHJldmlvdXNUaXRlbCA9IHNhdmVkRG9jLnRpdGVsOwog +ICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0gY2F0Y2goZSkge30KICAgICAg +ICAgICAgfQogICAgICAgICAgICB0aGlzLmN1cnJlbnREb2Muc3RhdHVzID0gc2VsZWN0ZWRTdGF0 +dXM7CiAgICAgICAgfQoKICAgICAgICAvLyBCZWkgbmV1ZW0gRG9rdW1lbnQ6IEdvdmVybmFuY2Ug +ZXJ6d2luZ2VuCiAgICAgICAgaWYgKHRoaXMuaXNOZXcgJiYgc2V0dGluZ3MucmVxdWlyZUFwcHJv +dmFsRm9yTmV3ICYmICFpc1NVKSB7CiAgICAgICAgICAgIGlmICh0aGlzLmN1cnJlbnREb2Muc3Rh +dHVzICE9PSAnRW50d3VyZicgJiYgdGhpcy5jdXJyZW50RG9jLnN0YXR1cyAhPT0gJ1Byw7xmdW5n +JykgewogICAgICAgICAgICAgICAgdGhpcy5jdXJyZW50RG9jLnN0YXR1cyA9ICdFbnR3dXJmJzsK +ICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgdHJ5IHsKICAgICAgICAgICAgY29uc3Qg +c2F2ZVJlc3VsdCA9IGF3YWl0IERyaXZlRlMuc2F2ZURvY3VtZW50KHRoaXMuY3VycmVudERvYyk7 +CiAgICAgICAgICAgIGlmIChzYXZlUmVzdWx0ID09PSB0cnVlKSB7CiAgICAgICAgICAgICAgICBj +b25zdCBzYXZlZERvY0lkID0gdGhpcy5jdXJyZW50RG9jLmlkOwogICAgICAgICAgICAgICAgc2hv +d1RvYXN0KCdEb2t1bWVudCAiJyArIHRpdGVsICsgJyIgZ2VzcGVpY2hlcnQnLCAnc3VjY2Vzcycp +OwogICAgICAgICAgICAgICAgRHJpdmVHb3Zlcm5hbmNlLnVwZGF0ZVVJKCk7CiAgICAgICAgICAg +ICAgICBEcml2ZVBvcnRhbC5yZW5kZXIoKTsKICAgICAgICAgICAgICAgIGlmIChjbG9zZUFmdGVy +KSB7CiAgICAgICAgICAgICAgICAgICAgdGhpcy5jbG9zZSgpOwogICAgICAgICAgICAgICAgICAg +IGF3YWl0IERyaXZlUG9ydGFsLnNlbGVjdERvY3VtZW50KHNhdmVkRG9jSWQpOwogICAgICAgICAg +ICAgICAgICAgIERyaXZlUG9ydGFsLmhpZ2hsaWdodEl0ZW0oc2F2ZWREb2NJZCk7CiAgICAgICAg +ICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgIC8vIEVkaXRvciBvZmZlbiBsYXNz +ZW4sIGFiZXIgRG9rdW1lbnRlbmxpc3RlIGFrdHVhbGlzaWVyZW4KICAgICAgICAgICAgICAgICAg +ICB0aGlzLmlzTmV3ID0gZmFsc2U7CiAgICAgICAgICAgICAgICAgICAgdGhpcy5fcGVuZGluZ0Nv +bnRyaWJUeXBlID0gbnVsbDsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSBlbHNlIHsK +ICAgICAgICAgICAgICAgIHNob3dUb2FzdCgnU3BlaWNoZXJuIGZlaGxnZXNjaGxhZ2VuOiAnICsg +c2F2ZVJlc3VsdCwgJ2Vycm9yJywgNTAwMCk7CiAgICAgICAgICAgIH0KICAgICAgICB9IGNhdGNo +IChlcnIpIHsKICAgICAgICAgICAgc2hvd1RvYXN0KCdTcGVpY2hlcm4gZmVobGdlc2NobGFnZW46 +ICcgKyBlcnIubWVzc2FnZSwgJ2Vycm9yJywgNTAwMCk7CiAgICAgICAgfQogICAgfSwKCiAgICAv +LyAtLS0gSGlzdG9yeSAoVW5kby9SZWRvKSAtLS0KICAgIGluaXRIaXN0b3J5KCkgewogICAgICAg +IGNvbnN0IGVkaXRvcklucHV0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2VkaXRvcklucHV0 +Jyk7CiAgICAgICAgdGhpcy5oaXN0b3J5ID0gW2VkaXRvcklucHV0LmlubmVySFRNTF07CiAgICAg +ICAgdGhpcy5oaXN0b3J5SW5kZXggPSAwOwoKICAgICAgICAvLyBQYXN0ZS1IYW5kbGVyOiBIVE1M +LUluaGFsdGUgbm9ybWFsaXNpZXJlbiArIGV4dGVybmUgQmlsZGVyIGxva2FsIHNwZWljaGVybgog +ICAgICAgIGVkaXRvcklucHV0Lm9ucGFzdGUgPSAoZSkgPT4gewogICAgICAgICAgICBlLnByZXZl +bnREZWZhdWx0KCk7CgogICAgICAgICAgICAvLyBCaWxkZXIgYXVzIENsaXBib2FyZCAoU2NyZWVu +c2hvdCAvIENvcHktSW1hZ2UpCiAgICAgICAgICAgIGNvbnN0IGl0ZW1zID0gQXJyYXkuZnJvbShl +LmNsaXBib2FyZERhdGEuaXRlbXMgfHwgW10pOwogICAgICAgICAgICBjb25zdCBpbWdJdGVtID0g +aXRlbXMuZmluZChpID0+IGkudHlwZS5zdGFydHNXaXRoKCdpbWFnZS8nKSk7CiAgICAgICAgICAg +IGlmIChpbWdJdGVtICYmIHRoaXMuY3VycmVudERvYykgewogICAgICAgICAgICAgICAgY29uc3Qg +YmxvYiA9IGltZ0l0ZW0uZ2V0QXNGaWxlKCk7CiAgICAgICAgICAgICAgICBpZiAoYmxvYikgewog +ICAgICAgICAgICAgICAgICAgIHRoaXMuX3Bhc3RlSW1hZ2VCbG9iKGJsb2IpOwogICAgICAgICAg +ICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAg +ICAgICAgY29uc3QgY2xpcEh0bWwgPSBlLmNsaXBib2FyZERhdGEuZ2V0RGF0YSgndGV4dC9odG1s +Jyk7CiAgICAgICAgICAgIGNvbnN0IGNsaXBUZXh0ID0gZS5jbGlwYm9hcmREYXRhLmdldERhdGEo +J3RleHQvcGxhaW4nKTsKCiAgICAgICAgICAgIGlmIChjbGlwSHRtbCkgewogICAgICAgICAgICAg +ICAgY29uc3QgcGFyc2VyID0gbmV3IERPTVBhcnNlcigpOwogICAgICAgICAgICAgICAgY29uc3Qg +cGFyc2VkID0gcGFyc2VyLnBhcnNlRnJvbVN0cmluZyhjbGlwSHRtbCwgJ3RleHQvaHRtbCcpOwog +ICAgICAgICAgICAgICAgY29uc3QgaW1ncyA9IHBhcnNlZC5ib2R5LnF1ZXJ5U2VsZWN0b3JBbGwo +J2ltZycpOwogICAgICAgICAgICAgICAgY29uc3QgZXh0ZXJuYWxJbWdzID0gQXJyYXkuZnJvbShp +bWdzKS5maWx0ZXIoaW1nID0+CiAgICAgICAgICAgICAgICAgICAgaW1nLnNyYyAmJiAoaW1nLnNy +Yy5zdGFydHNXaXRoKCdodHRwOi8vJykgfHwgaW1nLnNyYy5zdGFydHNXaXRoKCdodHRwczovLycp +KQogICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICAvLyBJbmxpbmUtU3R5bGVzIGJl +cmVpbmlnZW46IEZhcmJlbiwgSGludGVyZ3J1ZW5kZSB1bmQgU2NocmlmdGFydGVuIGVudGZlcm5l +biwKICAgICAgICAgICAgICAgIC8vIGRhbWl0IGVpbmdlZnVlZ3RlciBUZXh0IGltIERhcmstL0xp +Z2h0LU1vZGUga29ycmVrdCBkYXJnZXN0ZWxsdCB3aXJkLgogICAgICAgICAgICAgICAgLy8gTGlz +dGVuICh1bC9vbC9saSkgdW5kIFRhYmVsbGVuICh0YWJsZS90ci90ZC90aCkgd2VyZGVuIGdlc2No +b250LAogICAgICAgICAgICAgICAgLy8gZGFtaXQgU3RydWt0dXIgdW5kIEVpbnJ1ZWNrdW5nIGVy +aGFsdGVuIGJsZWliZW4uCiAgICAgICAgICAgICAgICB2YXIgbGlzdFRhZ3MgPSBbJ1VMJywnT0wn +LCdMSSddOwogICAgICAgICAgICAgICAgdmFyIHRhYmxlVGFncyA9IFsnVEFCTEUnLCdUSEVBRCcs +J1RCT0RZJywnVFInLCdURCcsJ1RIJ107CiAgICAgICAgICAgICAgICBwYXJzZWQuYm9keS5xdWVy +eVNlbGVjdG9yQWxsKCcqJykuZm9yRWFjaChlbCA9PiB7CiAgICAgICAgICAgICAgICAgICAgdmFy +IHRhZyA9IGVsLnRhZ05hbWU7CiAgICAgICAgICAgICAgICAgICAgdmFyIGlzTGlzdCA9IGxpc3RU +YWdzLmluY2x1ZGVzKHRhZyk7CiAgICAgICAgICAgICAgICAgICAgdmFyIGlzVGFibGUgPSB0YWJs +ZVRhZ3MuaW5jbHVkZXModGFnKTsKICAgICAgICAgICAgICAgICAgICBpZiAoZWwuc3R5bGUpIHsK +ICAgICAgICAgICAgICAgICAgICAgICAgZWwuc3R5bGUucmVtb3ZlUHJvcGVydHkoJ2NvbG9yJyk7 +CiAgICAgICAgICAgICAgICAgICAgICAgIGVsLnN0eWxlLnJlbW92ZVByb3BlcnR5KCdiYWNrZ3Jv +dW5kLWNvbG9yJyk7CiAgICAgICAgICAgICAgICAgICAgICAgIGVsLnN0eWxlLnJlbW92ZVByb3Bl +cnR5KCdiYWNrZ3JvdW5kJyk7CiAgICAgICAgICAgICAgICAgICAgICAgIGVsLnN0eWxlLnJlbW92 +ZVByb3BlcnR5KCdmb250LWZhbWlseScpOwogICAgICAgICAgICAgICAgICAgICAgICBlbC5zdHls +ZS5yZW1vdmVQcm9wZXJ0eSgnZm9udC1zaXplJyk7CiAgICAgICAgICAgICAgICAgICAgICAgIGVs +LnN0eWxlLnJlbW92ZVByb3BlcnR5KCd3aGl0ZS1zcGFjZScpOwogICAgICAgICAgICAgICAgICAg +ICAgICBlbC5zdHlsZS5yZW1vdmVQcm9wZXJ0eSgnb3ZlcmZsb3ctd3JhcCcpOwogICAgICAgICAg +ICAgICAgICAgICAgICBlbC5zdHlsZS5yZW1vdmVQcm9wZXJ0eSgnd29yZC1icmVhaycpOwogICAg +ICAgICAgICAgICAgICAgICAgICBlbC5zdHlsZS5yZW1vdmVQcm9wZXJ0eSgndGV4dC1kZWNvcmF0 +aW9uLWxpbmUnKTsKICAgICAgICAgICAgICAgICAgICAgICAgZWwuc3R5bGUucmVtb3ZlUHJvcGVy +dHkoJ2JvcmRlci1yYWRpdXMnKTsKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFpc1RhYmxl +KSBlbC5zdHlsZS5yZW1vdmVQcm9wZXJ0eSgnYm9yZGVyJyk7CiAgICAgICAgICAgICAgICAgICAg +ICAgIGlmICghaXNMaXN0ICYmICFpc1RhYmxlKSBlbC5zdHlsZS5yZW1vdmVQcm9wZXJ0eSgnbWFy +Z2luJyk7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghaXNMaXN0ICYmICFpc1RhYmxlKSBl +bC5zdHlsZS5yZW1vdmVQcm9wZXJ0eSgncGFkZGluZycpOwogICAgICAgICAgICAgICAgICAgICAg +ICBlbC5zdHlsZS5yZW1vdmVQcm9wZXJ0eSgnbGluZS1oZWlnaHQnKTsKICAgICAgICAgICAgICAg +ICAgICAgICAgaWYgKCFpc0xpc3QpIGVsLnN0eWxlLnJlbW92ZVByb3BlcnR5KCdkaXNwbGF5Jyk7 +CiAgICAgICAgICAgICAgICAgICAgICAgIGVsLnN0eWxlLnJlbW92ZVByb3BlcnR5KCdtYXgtd2lk +dGgnKTsKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFpc1RhYmxlKSBlbC5zdHlsZS5yZW1v +dmVQcm9wZXJ0eSgnd2lkdGgnKTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg +ICAgICAgLy8gY2xhc3MtIHVuZCBzdHlsZS1BdHRyaWJ1dGUgZXh0ZXJuZXIgU2VpdGVuIGVudGZl +cm5lbiB3ZW5uIHN0eWxlIGxlZXIKICAgICAgICAgICAgICAgICAgICAvLyBEUklWRS1pbnRlcm5l +IEtsYXNzZW4gKGRyaXZlLSopIGJlaWJlaGFsdGVuCiAgICAgICAgICAgICAgICAgICAgaWYgKGVs +LmdldEF0dHJpYnV0ZSgnY2xhc3MnKSkgewogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2xh +c3NlcyA9IGVsLmdldEF0dHJpYnV0ZSgnY2xhc3MnKS5zcGxpdCgnICcpLmZpbHRlcihmdW5jdGlv +bihjKSB7IHJldHVybiBjLnN0YXJ0c1dpdGgoJ2RyaXZlLScpOyB9KTsKICAgICAgICAgICAgICAg +ICAgICAgICAgaWYgKGNsYXNzZXMubGVuZ3RoID4gMCkgZWwuc2V0QXR0cmlidXRlKCdjbGFzcycs +IGNsYXNzZXMuam9pbignICcpKTsKICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSBlbC5yZW1v +dmVBdHRyaWJ1dGUoJ2NsYXNzJyk7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg +ICAgICAgIGlmIChlbC5nZXRBdHRyaWJ1dGUoJ3N0eWxlJykgPT09ICcnKSBlbC5yZW1vdmVBdHRy +aWJ1dGUoJ3N0eWxlJyk7CiAgICAgICAgICAgICAgICB9KTsKCiAgICAgICAgICAgICAgICAvLyBB +bGxlIExpbmtzIGF1ZiB0YXJnZXQ9X2JsYW5rIHNldHplbiAoUG9ydGFsIGRhcmYgbmljaHQgdmVy +bGFzc2VuIHdlcmRlbikKICAgICAgICAgICAgICAgIHBhcnNlZC5ib2R5LnF1ZXJ5U2VsZWN0b3JB +bGwoJ2FbaHJlZl0nKS5mb3JFYWNoKGZ1bmN0aW9uKGEpIHsKICAgICAgICAgICAgICAgICAgICB2 +YXIgaHJlZiA9IChhLmdldEF0dHJpYnV0ZSgnaHJlZicpIHx8ICcnKS50cmltKCk7CiAgICAgICAg +ICAgICAgICAgICAgaWYgKGhyZWYuc3RhcnRzV2l0aCgnIycpKSByZXR1cm47CiAgICAgICAgICAg +ICAgICAgICAgYS5zZXRBdHRyaWJ1dGUoJ3RhcmdldCcsICdfYmxhbmsnKTsKICAgICAgICAgICAg +ICAgICAgICBhLnNldEF0dHJpYnV0ZSgncmVsJywgJ25vb3BlbmVyIG5vcmVmZXJyZXInKTsKICAg +ICAgICAgICAgICAgICAgICAvLyB0YXJnZXQ9X3NlbGYgZXhwbGl6aXQgZW50ZmVybmVuIGZhbGxz +IGdlc2V0enQKICAgICAgICAgICAgICAgICAgICBpZiAoYS5nZXRBdHRyaWJ1dGUoJ3RhcmdldCcp +ID09PSAnX3NlbGYnKSBhLnNldEF0dHJpYnV0ZSgndGFyZ2V0JywgJ19ibGFuaycpOwogICAgICAg +ICAgICAgICAgfSk7CgogICAgICAgICAgICAgICAgaWYgKGV4dGVybmFsSW1ncy5sZW5ndGggPiAw +ICYmIHRoaXMuY3VycmVudERvYyAmJiBEcml2ZUZTLmNvbm5lY3RlZCkgewogICAgICAgICAgICAg +ICAgICAgIC8vIEV4dGVybmUgQmlsZGVyIGhlcnVudGVybGFkZW4gdW5kIGxva2FsIHNwZWljaGVy +bgogICAgICAgICAgICAgICAgICAgIHRoaXMuX3Bhc3RlSHRtbFdpdGhFeHRlcm5hbEltYWdlcyhw +YXJzZWQuYm9keSwgZXh0ZXJuYWxJbWdzKTsKICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAg +ICAgICAgICAgICAgICAgZG9jdW1lbnQuZXhlY0NvbW1hbmQoJ2luc2VydEhUTUwnLCBmYWxzZSwg +cGFyc2VkLmJvZHkuaW5uZXJIVE1MKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSBl +bHNlIGlmIChjbGlwVGV4dCkgewogICAgICAgICAgICAgICAgZG9jdW1lbnQuZXhlY0NvbW1hbmQo +J2luc2VydFRleHQnLCBmYWxzZSwgY2xpcFRleHQpOwogICAgICAgICAgICB9CiAgICAgICAgfTsK +CiAgICAgICAgbGV0IHNhdmVUaW1lb3V0OwogICAgICAgIGVkaXRvcklucHV0Lm9uaW5wdXQgPSAo +KSA9PiB7CiAgICAgICAgICAgIGNsZWFyVGltZW91dChzYXZlVGltZW91dCk7CiAgICAgICAgICAg +IHNhdmVUaW1lb3V0ID0gc2V0VGltZW91dCgoKSA9PiB0aGlzLnNhdmVTdGF0ZSgpLCA1MDApOwog +ICAgICAgIH07CgogICAgICAgIGVkaXRvcklucHV0Lm9ua2V5ZG93biA9IChlKSA9PiB7CiAgICAg +ICAgICAgIC8vICMtUmVmZXJlbnogRHJvcGRvd24gc2NobGllc3NlbiBiZWkgRXNjYXBlCiAgICAg +ICAgICAgIGlmIChlLmtleSA9PT0gJ0VzY2FwZScgJiYgdGhpcy5feHJlZlZpc2libGUpIHsKICAg +ICAgICAgICAgICAgIHRoaXMuY2xvc2VYcmVmRHJvcGRvd24oKTsKICAgICAgICAgICAgICAgIGUu +cHJldmVudERlZmF1bHQoKTsKICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgfQog +ICAgICAgICAgICBpZiAoKGUuY3RybEtleSB8fCBlLm1ldGFLZXkpICYmIGUua2V5ID09PSAneicg +JiYgIWUuc2hpZnRLZXkpIHsKICAgICAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTsKICAg +ICAgICAgICAgICAgIHRoaXMudW5kbygpOwogICAgICAgICAgICB9IGVsc2UgaWYgKChlLmN0cmxL +ZXkgfHwgZS5tZXRhS2V5KSAmJiAoZS5rZXkgPT09ICd5JyB8fCAoZS5rZXkgPT09ICd6JyAmJiBl +LnNoaWZ0S2V5KSkpIHsKICAgICAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTsKICAgICAg +ICAgICAgICAgIHRoaXMucmVkbygpOwogICAgICAgICAgICB9IGVsc2UgaWYgKGUua2V5ID09PSAn +IycgJiYgIWUuY3RybEtleSAmJiAhZS5tZXRhS2V5KSB7CiAgICAgICAgICAgICAgICAvLyAjLVRy +aWdnZXI6IEFydGlrZWwtUmVmZXJlbnotRHJvcGRvd24gw7ZmZm5lbgogICAgICAgICAgICAgICAg +c2V0VGltZW91dCgoKSA9PiB0aGlzLm9wZW5YcmVmRHJvcGRvd24oKSwgMTApOwogICAgICAgICAg +ICB9IGVsc2UgaWYgKGUua2V5ID09PSAnRW50ZXInKSB7CiAgICAgICAgICAgICAgICBlLnByZXZl +bnREZWZhdWx0KCk7CiAgICAgICAgICAgICAgICBjb25zdCBzZWwgPSB3aW5kb3cuZ2V0U2VsZWN0 +aW9uKCk7CiAgICAgICAgICAgICAgICBpZiAoIXNlbC5yYW5nZUNvdW50KSByZXR1cm47CiAgICAg +ICAgICAgICAgICBjb25zdCByYW5nZSA9IHNlbC5nZXRSYW5nZUF0KDApOwogICAgICAgICAgICAg +ICAgcmFuZ2UuZGVsZXRlQ29udGVudHMoKTsKCiAgICAgICAgICAgICAgICAvLyBCbG9jay1Lb250 +ZXh0IGVybWl0dGVsbgogICAgICAgICAgICAgICAgbGV0IGJsb2NrID0gcmFuZ2Uuc3RhcnRDb250 +YWluZXI7CiAgICAgICAgICAgICAgICB3aGlsZSAoYmxvY2sgJiYgYmxvY2sgIT09IGlucHV0ICYm +ICFbJ1AnLCdESVYnLCdIMScsJ0gyJywnSDMnLCdINCcsJ0g1JywnSDYnLCdMSSddLmluY2x1ZGVz +KGJsb2NrLm5vZGVOYW1lKSkgewogICAgICAgICAgICAgICAgICAgIGJsb2NrID0gYmxvY2sucGFy +ZW50Tm9kZTsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBpZiAoYmxvY2sgJiYg +WydIMScsJ0gyJywnSDMnLCdINCcsJ0g1JywnSDYnXS5pbmNsdWRlcyhibG9jay5ub2RlTmFtZSkp +IHsKICAgICAgICAgICAgICAgICAgICAvLyBJbiBIZWFkaW5nOiBDdXJzb3IgYW0gRW5kZT8gLT4g +bmV1ZXIgPHA+IG5hY2ggSGVhZGluZwogICAgICAgICAgICAgICAgICAgIGNvbnN0IGFmdGVyUmFu +Z2UgPSBkb2N1bWVudC5jcmVhdGVSYW5nZSgpOwogICAgICAgICAgICAgICAgICAgIGFmdGVyUmFu +Z2Uuc2VsZWN0Tm9kZUNvbnRlbnRzKGJsb2NrKTsKICAgICAgICAgICAgICAgICAgICBhZnRlclJh +bmdlLnNldFN0YXJ0KHJhbmdlLmVuZENvbnRhaW5lciwgcmFuZ2UuZW5kT2Zmc2V0KTsKICAgICAg +ICAgICAgICAgICAgICBjb25zdCB0cmFpbGluZyA9IGFmdGVyUmFuZ2UuY2xvbmVDb250ZW50cygp +LnRleHRDb250ZW50OwogICAgICAgICAgICAgICAgICAgIGlmICghdHJhaWxpbmcudHJpbSgpKSB7 +CiAgICAgICAgICAgICAgICAgICAgICAgIC8vIEN1cnNvciBhbSBFbmRlIGRlcyBIZWFkaW5ncyAt +PiBuZXVlciBBYnNhdHoKICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcCA9IGRvY3VtZW50 +LmNyZWF0ZUVsZW1lbnQoJ3AnKTsKICAgICAgICAgICAgICAgICAgICAgICAgcC5pbm5lckhUTUwg +PSAnPGJyPic7CiAgICAgICAgICAgICAgICAgICAgICAgIGJsb2NrLnBhcmVudE5vZGUuaW5zZXJ0 +QmVmb3JlKHAsIGJsb2NrLm5leHRTaWJsaW5nKTsKICAgICAgICAgICAgICAgICAgICAgICAgY29u +c3QgbmV3UmFuZ2UgPSBkb2N1bWVudC5jcmVhdGVSYW5nZSgpOwogICAgICAgICAgICAgICAgICAg +ICAgICBuZXdSYW5nZS5zZXRTdGFydChwLCAwKTsKICAgICAgICAgICAgICAgICAgICAgICAgbmV3 +UmFuZ2UuY29sbGFwc2UodHJ1ZSk7CiAgICAgICAgICAgICAgICAgICAgICAgIHNlbC5yZW1vdmVB +bGxSYW5nZXMoKTsKICAgICAgICAgICAgICAgICAgICAgICAgc2VsLmFkZFJhbmdlKG5ld1Jhbmdl +KTsKICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICAv +LyBDdXJzb3IgbWl0dGVuIGltIEhlYWRpbmcgLT4gSGVhZGluZyB0ZWlsZW4sIFJlc3QgaW4gPHA+ +CiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlc3RGcmFnID0gYWZ0ZXJSYW5nZS5leHRy +YWN0Q29udGVudHMoKTsKICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcCA9IGRvY3VtZW50 +LmNyZWF0ZUVsZW1lbnQoJ3AnKTsKICAgICAgICAgICAgICAgICAgICAgICAgcC5hcHBlbmRDaGls +ZChyZXN0RnJhZyk7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghcC50ZXh0Q29udGVudC50 +cmltKCkgJiYgIXAucXVlcnlTZWxlY3RvcignaW1nLGJyJykpIHAuaW5uZXJIVE1MID0gJzxicj4n +OwogICAgICAgICAgICAgICAgICAgICAgICBibG9jay5wYXJlbnROb2RlLmluc2VydEJlZm9yZShw +LCBibG9jay5uZXh0U2libGluZyk7CiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG5ld1Jh +bmdlID0gZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKTsKICAgICAgICAgICAgICAgICAgICAgICAgbmV3 +UmFuZ2Uuc2V0U3RhcnQocCwgMCk7CiAgICAgICAgICAgICAgICAgICAgICAgIG5ld1JhbmdlLmNv +bGxhcHNlKHRydWUpOwogICAgICAgICAgICAgICAgICAgICAgICBzZWwucmVtb3ZlQWxsUmFuZ2Vz +KCk7CiAgICAgICAgICAgICAgICAgICAgICAgIHNlbC5hZGRSYW5nZShuZXdSYW5nZSk7CiAgICAg +ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfSBlbHNlIGlmIChibG9jayAmJiBibG9j +ay5ub2RlTmFtZSA9PT0gJ0xJJykgewogICAgICAgICAgICAgICAgICAgIC8vIEluIExpc3RlbmVs +ZW1lbnQ6IGxlZXJlcyBMSSAtPiBMaXN0ZSB2ZXJsYXNzZW4KICAgICAgICAgICAgICAgICAgICBp +ZiAoIWJsb2NrLnRleHRDb250ZW50LnRyaW0oKSAmJiAhYmxvY2sucXVlcnlTZWxlY3RvcignaW1n +JykpIHsKICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbGlzdCA9IGJsb2NrLnBhcmVudE5v +ZGU7CiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHAgPSBkb2N1bWVudC5jcmVhdGVFbGVt +ZW50KCdwJyk7CiAgICAgICAgICAgICAgICAgICAgICAgIHAuaW5uZXJIVE1MID0gJzxicj4nOwog +ICAgICAgICAgICAgICAgICAgICAgICBsaXN0LnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKHAsIGxp +c3QubmV4dFNpYmxpbmcpOwogICAgICAgICAgICAgICAgICAgICAgICBibG9jay5yZW1vdmUoKTsK +ICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGxpc3QucXVlcnlTZWxlY3RvckFsbCgnbGknKS5s +ZW5ndGggPT09IDApIGxpc3QucmVtb3ZlKCk7CiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0 +IG5ld1JhbmdlID0gZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKTsKICAgICAgICAgICAgICAgICAgICAg +ICAgbmV3UmFuZ2Uuc2V0U3RhcnQocCwgMCk7CiAgICAgICAgICAgICAgICAgICAgICAgIG5ld1Jh +bmdlLmNvbGxhcHNlKHRydWUpOwogICAgICAgICAgICAgICAgICAgICAgICBzZWwucmVtb3ZlQWxs +UmFuZ2VzKCk7CiAgICAgICAgICAgICAgICAgICAgICAgIHNlbC5hZGRSYW5nZShuZXdSYW5nZSk7 +CiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgLy8g +TmV1ZXMgTEkgZWluZnVlZ2VuCiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG5ld0xpID0g +ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnbGknKTsKICAgICAgICAgICAgICAgICAgICAgICAgY29u +c3QgYWZ0ZXJSYW5nZSA9IGRvY3VtZW50LmNyZWF0ZVJhbmdlKCk7CiAgICAgICAgICAgICAgICAg +ICAgICAgIGFmdGVyUmFuZ2Uuc2VsZWN0Tm9kZUNvbnRlbnRzKGJsb2NrKTsKICAgICAgICAgICAg +ICAgICAgICAgICAgYWZ0ZXJSYW5nZS5zZXRTdGFydChyYW5nZS5lbmRDb250YWluZXIsIHJhbmdl +LmVuZE9mZnNldCk7CiAgICAgICAgICAgICAgICAgICAgICAgIG5ld0xpLmFwcGVuZENoaWxkKGFm +dGVyUmFuZ2UuZXh0cmFjdENvbnRlbnRzKCkpOwogICAgICAgICAgICAgICAgICAgICAgICBpZiAo +IW5ld0xpLnRleHRDb250ZW50LnRyaW0oKSAmJiAhbmV3TGkucXVlcnlTZWxlY3RvcignaW1nLGJy +JykpIG5ld0xpLmlubmVySFRNTCA9ICc8YnI+JzsKICAgICAgICAgICAgICAgICAgICAgICAgYmxv +Y2sucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUobmV3TGksIGJsb2NrLm5leHRTaWJsaW5nKTsKICAg +ICAgICAgICAgICAgICAgICAgICAgY29uc3QgbmV3UmFuZ2UgPSBkb2N1bWVudC5jcmVhdGVSYW5n +ZSgpOwogICAgICAgICAgICAgICAgICAgICAgICBuZXdSYW5nZS5zZXRTdGFydChuZXdMaSwgMCk7 +CiAgICAgICAgICAgICAgICAgICAgICAgIG5ld1JhbmdlLmNvbGxhcHNlKHRydWUpOwogICAgICAg +ICAgICAgICAgICAgICAgICBzZWwucmVtb3ZlQWxsUmFuZ2VzKCk7CiAgICAgICAgICAgICAgICAg +ICAgICAgIHNlbC5hZGRSYW5nZShuZXdSYW5nZSk7CiAgICAgICAgICAgICAgICAgICAgfQogICAg +ICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAvLyBOb3JtYWxlciBUZXh0 +OiA8YnI+IGVpbmZ1ZWdlbiAoU29mdC1CcmVhaykKICAgICAgICAgICAgICAgICAgICBjb25zdCBi +ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2JyJyk7CiAgICAgICAgICAgICAgICAgICAgcmFu +Z2UuaW5zZXJ0Tm9kZShicik7CiAgICAgICAgICAgICAgICAgICAgY29uc3QgdGV4dCA9IGRvY3Vt +ZW50LmNyZWF0ZVRleHROb2RlKCdcdTIwMEInKTsKICAgICAgICAgICAgICAgICAgICByYW5nZS5z +ZXRTdGFydEFmdGVyKGJyKTsKICAgICAgICAgICAgICAgICAgICByYW5nZS5pbnNlcnROb2RlKHRl +eHQpOwogICAgICAgICAgICAgICAgICAgIHJhbmdlLnNldFN0YXJ0QWZ0ZXIodGV4dCk7CiAgICAg +ICAgICAgICAgICAgICAgcmFuZ2UuY29sbGFwc2UodHJ1ZSk7CiAgICAgICAgICAgICAgICAgICAg +c2VsLnJlbW92ZUFsbFJhbmdlcygpOwogICAgICAgICAgICAgICAgICAgIHNlbC5hZGRSYW5nZShy +YW5nZSk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9OwogICAgfSwK +CiAgICBzYXZlU3RhdGUoKSB7CiAgICAgICAgaWYgKHRoaXMuaXNSZXN0b3JpbmcpIHJldHVybjsK +ICAgICAgICBjb25zdCBlZGl0b3JJbnB1dCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdlZGl0 +b3JJbnB1dCcpOwogICAgICAgIGlmICghZWRpdG9ySW5wdXQpIHJldHVybjsKICAgICAgICBpZiAo +dGhpcy5oaXN0b3J5SW5kZXggPCB0aGlzLmhpc3RvcnkubGVuZ3RoIC0gMSkgewogICAgICAgICAg +ICB0aGlzLmhpc3RvcnkgPSB0aGlzLmhpc3Rvcnkuc2xpY2UoMCwgdGhpcy5oaXN0b3J5SW5kZXgg +KyAxKTsKICAgICAgICB9CiAgICAgICAgdGhpcy5oaXN0b3J5LnB1c2goZWRpdG9ySW5wdXQuaW5u +ZXJIVE1MKTsKICAgICAgICB0aGlzLmhpc3RvcnlJbmRleCsrOwogICAgICAgIGlmICh0aGlzLmhp +c3RvcnkubGVuZ3RoID4gNTApIHsgdGhpcy5oaXN0b3J5LnNoaWZ0KCk7IHRoaXMuaGlzdG9yeUlu +ZGV4LS07IH0KICAgIH0sCgogICAgdW5kbygpIHsKICAgICAgICBpZiAodGhpcy5oaXN0b3J5SW5k +ZXggPiAwKSB7CiAgICAgICAgICAgIHRoaXMuaGlzdG9yeUluZGV4LS07CiAgICAgICAgICAgIHRo +aXMuaXNSZXN0b3JpbmcgPSB0cnVlOwogICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJ +ZCgnZWRpdG9ySW5wdXQnKS5pbm5lckhUTUwgPSB0aGlzLmhpc3RvcnlbdGhpcy5oaXN0b3J5SW5k +ZXhdOwogICAgICAgICAgICB0aGlzLmlzUmVzdG9yaW5nID0gZmFsc2U7CiAgICAgICAgfQogICAg +fSwKCiAgICByZWRvKCkgewogICAgICAgIGlmICh0aGlzLmhpc3RvcnlJbmRleCA8IHRoaXMuaGlz +dG9yeS5sZW5ndGggLSAxKSB7CiAgICAgICAgICAgIHRoaXMuaGlzdG9yeUluZGV4Kys7CiAgICAg +ICAgICAgIHRoaXMuaXNSZXN0b3JpbmcgPSB0cnVlOwogICAgICAgICAgICBkb2N1bWVudC5nZXRF +bGVtZW50QnlJZCgnZWRpdG9ySW5wdXQnKS5pbm5lckhUTUwgPSB0aGlzLmhpc3RvcnlbdGhpcy5o +aXN0b3J5SW5kZXhdOwogICAgICAgICAgICB0aGlzLmlzUmVzdG9yaW5nID0gZmFsc2U7CiAgICAg +ICAgfQogICAgfSwKCiAgICAvLyA9PT0gQXJ0aWtlbC1SZWZlcmVueiAoIy1BdXRvY29tcGxldGUp +ID09PQogICAgX3hyZWZWaXNpYmxlOiBmYWxzZSwKICAgIF94cmVmUmFuZ2U6IG51bGwsCiAgICBf +eHJlZlNlbGVjdGVkRG9jOiBudWxsLAoKICAgIG9wZW5YcmVmRHJvcGRvd24oKSB7CiAgICAgICAg +Ly8gQ3Vyc29yLVBvc2l0aW9uIG1lcmtlbiAoZGFzICMgd3VyZGUgZ2VyYWRlIGdldGlwcHQpCiAg +ICAgICAgdmFyIHNlbCA9IHdpbmRvdy5nZXRTZWxlY3Rpb24oKTsKICAgICAgICBpZiAoIXNlbC5y +YW5nZUNvdW50KSByZXR1cm47CiAgICAgICAgdGhpcy5feHJlZlJhbmdlID0gc2VsLmdldFJhbmdl +QXQoMCkuY2xvbmVSYW5nZSgpOwoKICAgICAgICB2YXIgZHJvcGRvd24gPSBkb2N1bWVudC5nZXRF +bGVtZW50QnlJZCgneHJlZkRyb3Bkb3duJyk7CiAgICAgICAgdmFyIGlucHV0ID0gZG9jdW1lbnQu +Z2V0RWxlbWVudEJ5SWQoJ3hyZWZTZWFyY2hJbnB1dCcpOwoKICAgICAgICAvLyBQb3NpdGlvbjog +dW50ZXIgZGVtIEN1cnNvcgogICAgICAgIHZhciByZWN0ID0gdGhpcy5feHJlZlJhbmdlLmdldEJv +dW5kaW5nQ2xpZW50UmVjdCgpOwogICAgICAgIHZhciBsZWZ0ID0gcmVjdC5sZWZ0OwogICAgICAg +IHZhciB0b3AgPSByZWN0LmJvdHRvbSArIDQ7CiAgICAgICAgaWYgKGxlZnQgKyAzODAgPiB3aW5k +b3cuaW5uZXJXaWR0aCkgbGVmdCA9IHdpbmRvdy5pbm5lcldpZHRoIC0gMzkwOwogICAgICAgIGlm +ICh0b3AgKyAzNjAgPiB3aW5kb3cuaW5uZXJIZWlnaHQpIHRvcCA9IHJlY3QudG9wIC0gMzY0Owog +ICAgICAgIGRyb3Bkb3duLnN0eWxlLmxlZnQgPSBNYXRoLm1heCgxMCwgbGVmdCkgKyAncHgnOwog +ICAgICAgIGRyb3Bkb3duLnN0eWxlLnRvcCA9IE1hdGgubWF4KDEwLCB0b3ApICsgJ3B4JzsKCiAg +ICAgICAgdGhpcy5feHJlZlNlbGVjdGVkRG9jID0gbnVsbDsKICAgICAgICBpbnB1dC52YWx1ZSA9 +ICcnOwogICAgICAgIHRoaXMuX3JlbmRlclhyZWZBcnRpY2xlcygnJyk7CiAgICAgICAgZHJvcGRv +d24uY2xhc3NMaXN0LmFkZCgndmlzaWJsZScpOwogICAgICAgIHRoaXMuX3hyZWZWaXNpYmxlID0g +dHJ1ZTsKICAgICAgICBzZXRUaW1lb3V0KCgpID0+IGlucHV0LmZvY3VzKCksIDMwKTsKCiAgICAg +ICAgLy8gRWluZ2FiZS1IYW5kbGVyCiAgICAgICAgaW5wdXQub25pbnB1dCA9ICgpID0+IHsKICAg +ICAgICAgICAgaWYgKHRoaXMuX3hyZWZTZWxlY3RlZERvYykgewogICAgICAgICAgICAgICAgdGhp +cy5fcmVuZGVyWHJlZkhlYWRpbmdzKHRoaXMuX3hyZWZTZWxlY3RlZERvYywgaW5wdXQudmFsdWUp +OwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgdGhpcy5fcmVuZGVyWHJlZkFy +dGljbGVzKGlucHV0LnZhbHVlKTsKICAgICAgICAgICAgfQogICAgICAgIH07CiAgICAgICAgaW5w +dXQub25rZXlkb3duID0gKGUpID0+IHsKICAgICAgICAgICAgaWYgKGUua2V5ID09PSAnRXNjYXBl +JykgeyB0aGlzLmNsb3NlWHJlZkRyb3Bkb3duKCk7IGUucHJldmVudERlZmF1bHQoKTsgfQogICAg +ICAgIH07CgogICAgICAgIC8vIENsaWNrLU91dHNpZGUgc2NobGllc3NlbgogICAgICAgIHNldFRp +bWVvdXQoKCkgPT4gewogICAgICAgICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdtb3Vz +ZWRvd24nLCB0aGlzLl94cmVmT3V0c2lkZUhhbmRsZXIgPSAoZSkgPT4gewogICAgICAgICAgICAg +ICAgaWYgKCFkcm9wZG93bi5jb250YWlucyhlLnRhcmdldCkpIHRoaXMuY2xvc2VYcmVmRHJvcGRv +d24oKTsKICAgICAgICAgICAgfSk7CiAgICAgICAgfSwgNTApOwogICAgfSwKCiAgICBjbG9zZVhy +ZWZEcm9wZG93bigpIHsKICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgneHJlZkRyb3Bk +b3duJykuY2xhc3NMaXN0LnJlbW92ZSgndmlzaWJsZScpOwogICAgICAgIHRoaXMuX3hyZWZWaXNp +YmxlID0gZmFsc2U7CiAgICAgICAgdGhpcy5feHJlZlNlbGVjdGVkRG9jID0gbnVsbDsKICAgICAg +ICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZWRvd24nLCB0aGlzLl94cmVmT3V0 +c2lkZUhhbmRsZXIpOwogICAgICAgIC8vIEZva3VzIHp1csO8Y2sgenVtIEVkaXRvcgogICAgICAg +IHZhciBlZGl0b3IgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZWRpdG9ySW5wdXQnKTsKICAg +ICAgICBpZiAoZWRpdG9yKSBlZGl0b3IuZm9jdXMoKTsKICAgIH0sCgogICAgX3JlbmRlclhyZWZB +cnRpY2xlcyhxdWVyeSkgewogICAgICAgIHZhciBsaXN0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5 +SWQoJ3hyZWZMaXN0Jyk7CiAgICAgICAgdmFyIHEgPSBxdWVyeS50b0xvd2VyQ2FzZSgpLnRyaW0o +KTsKICAgICAgICB2YXIgZG9jcyA9IERyaXZlRlMuZG9jdW1lbnRzLmZpbHRlcihmdW5jdGlvbihk +KSB7CiAgICAgICAgICAgIGlmIChEcml2ZUVkaXRvci5jdXJyZW50RG9jICYmIGQuaWQgPT09IERy +aXZlRWRpdG9yLmN1cnJlbnREb2MuaWQpIHJldHVybiBmYWxzZTsKICAgICAgICAgICAgaWYgKCFx +KSByZXR1cm4gdHJ1ZTsKICAgICAgICAgICAgcmV0dXJuIChkLnRpdGVsICYmIGQudGl0ZWwudG9M +b3dlckNhc2UoKS5pbmNsdWRlcyhxKSkgfHwKICAgICAgICAgICAgICAgICAgIChkLmthdGVnb3Jp +ZSAmJiBkLmthdGVnb3JpZS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHEpKSB8fAogICAgICAgICAg +ICAgICAgICAgKGQuc2NobGFnd29lcnRlciAmJiBkLnNjaGxhZ3dvZXJ0ZXIuc29tZShmdW5jdGlv +bihrKSB7IHJldHVybiBrLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMocSk7IH0pKTsKICAgICAgICB9 +KS5zbGljZSgwLCAyMCk7CgogICAgICAgIGlmIChkb2NzLmxlbmd0aCA9PT0gMCkgewogICAgICAg +ICAgICBsaXN0LmlubmVySFRNTCA9ICc8ZGl2IHN0eWxlPSJwYWRkaW5nOjE2cHg7dGV4dC1hbGln +bjpjZW50ZXI7Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCk7Zm9udC1zaXplOjEzcHg7Ij5LZWluZSBB +cnRpa2VsIGdlZnVuZGVuPC9kaXY+JzsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KCiAg +ICAgICAgbGlzdC5pbm5lckhUTUwgPSBkb2NzLm1hcChmdW5jdGlvbihkKSB7CiAgICAgICAgICAg +IHJldHVybiAnPGRpdiBjbGFzcz0ieHJlZi1pdGVtIiBvbmNsaWNrPSJEcml2ZUVkaXRvci5zZWxl +Y3RYcmVmQXJ0aWNsZShcJycgKyBEcml2ZVBvcnRhbC5lc2NhcGVBdHRyKGQuaWQpICsgJ1wnKSI+ +JyArCiAgICAgICAgICAgICAgICAnPGRpdiBjbGFzcz0ieHJlZi10aXRsZSI+JyArIERyaXZlUG9y +dGFsLmVzY2FwZUhUTUwoZC50aXRlbCkgKyAnPC9kaXY+JyArCiAgICAgICAgICAgICAgICAnPGRp +diBjbGFzcz0ieHJlZi1jYXQiPicgKyBEcml2ZVBvcnRhbC5lc2NhcGVIVE1MKGQua2F0ZWdvcmll +KSArCiAgICAgICAgICAgICAgICAoZC5zY2hsYWd3b2VydGVyICYmIGQuc2NobGFnd29lcnRlci5s +ZW5ndGggPyAnIMK3ICcgKyBkLnNjaGxhZ3dvZXJ0ZXIuc2xpY2UoMCwgMykuam9pbignLCAnKSA6 +ICcnKSArCiAgICAgICAgICAgICAgICAnPC9kaXY+PC9kaXY+JzsKICAgICAgICB9KS5qb2luKCcn +KTsKICAgIH0sCgogICAgc2VsZWN0WHJlZkFydGljbGUoZG9jSWQpIHsKICAgICAgICB2YXIgZG9j +ID0gRHJpdmVGUy5kb2N1bWVudHMuZmluZChmdW5jdGlvbihkKSB7IHJldHVybiBkLmlkID09PSBk +b2NJZDsgfSk7CiAgICAgICAgaWYgKCFkb2MpIHJldHVybjsKICAgICAgICB0aGlzLl94cmVmU2Vs +ZWN0ZWREb2MgPSBkb2M7CgogICAgICAgIHZhciBpbnB1dCA9IGRvY3VtZW50LmdldEVsZW1lbnRC +eUlkKCd4cmVmU2VhcmNoSW5wdXQnKTsKICAgICAgICBpbnB1dC52YWx1ZSA9ICcnOwogICAgICAg +IGlucHV0LnBsYWNlaG9sZGVyID0gJ8OcYmVyc2NocmlmdCBzdWNoZW4gKG9kZXIgbGVlciBsYXNz +ZW4gZsO8ciBBcnRpa2VsLUxpbmspLi4uJzsKCiAgICAgICAgdGhpcy5fcmVuZGVyWHJlZkhlYWRp +bmdzKGRvYywgJycpOwogICAgICAgIGlucHV0LmZvY3VzKCk7CiAgICB9LAoKICAgIF9leHRyYWN0 +SGVhZGluZ3MoaHRtbENvbnRlbnQpIHsKICAgICAgICBpZiAoIWh0bWxDb250ZW50KSByZXR1cm4g +W107CiAgICAgICAgdmFyIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwogICAg +ICAgIGRpdi5pbm5lckhUTUwgPSBodG1sQ29udGVudDsKICAgICAgICB2YXIgaGVhZGluZ3MgPSBb +XTsKICAgICAgICBkaXYucXVlcnlTZWxlY3RvckFsbCgnaDEsIGgyLCBoMywgaDQnKS5mb3JFYWNo +KGZ1bmN0aW9uKGgpIHsKICAgICAgICAgICAgdmFyIHRleHQgPSBoLnRleHRDb250ZW50LnRyaW0o +KTsKICAgICAgICAgICAgaWYgKHRleHQpIHsKICAgICAgICAgICAgICAgIHZhciBzbHVnID0gdGV4 +dC50b0xvd2VyQ2FzZSgpCiAgICAgICAgICAgICAgICAgICAgLnJlcGxhY2UoL8OkL2csICdhZScp +LnJlcGxhY2UoL8O2L2csICdvZScpLnJlcGxhY2UoL8O8L2csICd1ZScpLnJlcGxhY2UoL8OfL2cs +ICdzcycpCiAgICAgICAgICAgICAgICAgICAgLnJlcGxhY2UoL1teYS16MC05XSsvZywgJy0nKS5y +ZXBsYWNlKC9eLXwtJC9nLCAnJyk7CiAgICAgICAgICAgICAgICBoZWFkaW5ncy5wdXNoKHsKICAg +ICAgICAgICAgICAgICAgICB0ZXh0OiB0ZXh0LAogICAgICAgICAgICAgICAgICAgIGxldmVsOiBw +YXJzZUludChoLnRhZ05hbWUuY2hhckF0KDEpKSwKICAgICAgICAgICAgICAgICAgICBzbHVnOiBz +bHVnCiAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgfQogICAgICAgIH0pOwogICAgICAg +IHJldHVybiBoZWFkaW5nczsKICAgIH0sCgogICAgX3JlbmRlclhyZWZIZWFkaW5ncyhkb2MsIHF1 +ZXJ5KSB7CiAgICAgICAgdmFyIGxpc3QgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgneHJlZkxp +c3QnKTsKICAgICAgICB2YXIgaGVhZGluZ3MgPSB0aGlzLl9leHRyYWN0SGVhZGluZ3MoZG9jLmlu +aGFsdCk7CiAgICAgICAgdmFyIHEgPSBxdWVyeS50b0xvd2VyQ2FzZSgpLnRyaW0oKTsKCiAgICAg +ICAgLy8gWnVyw7xjay1CdXR0b24gKyBBcnRpa2VsLUxpbmsgKG9obmUgw5xiZXJzY2hyaWZ0KQog +ICAgICAgIHZhciBodG1sID0gJzxkaXYgY2xhc3M9InhyZWYtYmFjayIgb25jbGljaz0iRHJpdmVF +ZGl0b3IuX3hyZWZTZWxlY3RlZERvYz1udWxsO2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKFwneHJl +ZlNlYXJjaElucHV0XCcpLnBsYWNlaG9sZGVyPVwnQXJ0aWtlbCBzdWNoZW4uLi5cJztEcml2ZUVk +aXRvci5fcmVuZGVyWHJlZkFydGljbGVzKFwnXCcpOyI+4oaQIFp1csO8Y2sgenVyIEFydGlrZWxs +aXN0ZTwvZGl2Pic7CiAgICAgICAgaHRtbCArPSAnPGRpdiBjbGFzcz0ieHJlZi1pdGVtIiBvbmNs +aWNrPSJEcml2ZUVkaXRvci5pbnNlcnRYcmVmKFwnJyArIERyaXZlUG9ydGFsLmVzY2FwZUF0dHIo +ZG9jLmlkKSArICdcJywgXCdcJykiPicgKwogICAgICAgICAgICAnPGRpdiBjbGFzcz0ieHJlZi10 +aXRsZSI+JyArIERyaXZlUG9ydGFsLmVzY2FwZUhUTUwoZG9jLnRpdGVsKSArICc8L2Rpdj4nICsK +ICAgICAgICAgICAgJzxkaXYgY2xhc3M9InhyZWYtY2F0Ij5HZXNhbXRlbiBBcnRpa2VsIHZlcmxp +bmtlbjwvZGl2PjwvZGl2Pic7CgogICAgICAgIHZhciBmaWx0ZXJlZCA9IGhlYWRpbmdzLmZpbHRl +cihmdW5jdGlvbihoKSB7CiAgICAgICAgICAgIHJldHVybiAhcSB8fCBoLnRleHQudG9Mb3dlckNh +c2UoKS5pbmNsdWRlcyhxKTsKICAgICAgICB9KTsKCiAgICAgICAgZmlsdGVyZWQuZm9yRWFjaChm +dW5jdGlvbihoKSB7CiAgICAgICAgICAgIHZhciBpbmRlbnQgPSAoaC5sZXZlbCAtIDEpICogMTI7 +CiAgICAgICAgICAgIGh0bWwgKz0gJzxkaXYgY2xhc3M9InhyZWYtaXRlbSBoZWFkaW5nIiBzdHls +ZT0icGFkZGluZy1sZWZ0OicgKyAoMTYgKyBpbmRlbnQpICsgJ3B4OyIgb25jbGljaz0iRHJpdmVF +ZGl0b3IuaW5zZXJ0WHJlZihcJycgKyBEcml2ZVBvcnRhbC5lc2NhcGVBdHRyKGRvYy5pZCkgKyAn +XCcsIFwnJyArIERyaXZlUG9ydGFsLmVzY2FwZUF0dHIoaC5zbHVnKSArICdcJykiPicgKwogICAg +ICAgICAgICAgICAgJzxkaXYgY2xhc3M9InhyZWYtdGl0bGUiPicgKyBEcml2ZVBvcnRhbC5lc2Nh +cGVIVE1MKGgudGV4dCkgKyAnPC9kaXY+PC9kaXY+JzsKICAgICAgICB9KTsKCiAgICAgICAgaWYg +KGhlYWRpbmdzLmxlbmd0aCA9PT0gMCkgewogICAgICAgICAgICBodG1sICs9ICc8ZGl2IHN0eWxl +PSJwYWRkaW5nOjEycHggMTZweDtmb250LXNpemU6MTJweDtjb2xvcjp2YXIoLS10ZXh0LW11dGVk +KTsiPktlaW5lIMOcYmVyc2NocmlmdGVuIGltIEFydGlrZWwgdm9yaGFuZGVuPC9kaXY+JzsKICAg +ICAgICB9CgogICAgICAgIGxpc3QuaW5uZXJIVE1MID0gaHRtbDsKICAgIH0sCgogICAgaW5zZXJ0 +WHJlZihkb2NJZCwgaGVhZGluZ1NsdWcpIHsKICAgICAgICB2YXIgZG9jID0gRHJpdmVGUy5kb2N1 +bWVudHMuZmluZChmdW5jdGlvbihkKSB7IHJldHVybiBkLmlkID09PSBkb2NJZDsgfSk7CiAgICAg +ICAgaWYgKCFkb2MpIHJldHVybjsKCiAgICAgICAgdGhpcy5jbG9zZVhyZWZEcm9wZG93bigpOwoK +ICAgICAgICAvLyBEYXMgIyBlbnRmZXJuZW4gZGFzIGRlbiBEcm9wZG93biBnZXRyaWdnZXJ0IGhh +dAogICAgICAgIHZhciBlZGl0b3IgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZWRpdG9ySW5w +dXQnKTsKICAgICAgICB2YXIgc2VsID0gd2luZG93LmdldFNlbGVjdGlvbigpOwoKICAgICAgICAv +LyBDdXJzb3ItUG9zaXRpb24gd2llZGVyaGVyc3RlbGxlbgogICAgICAgIGlmICh0aGlzLl94cmVm +UmFuZ2UpIHsKICAgICAgICAgICAgc2VsLnJlbW92ZUFsbFJhbmdlcygpOwogICAgICAgICAgICBz +ZWwuYWRkUmFuZ2UodGhpcy5feHJlZlJhbmdlKTsKICAgICAgICB9CgogICAgICAgIC8vIEVpbiBa +ZWljaGVuIHp1csO8Y2sgKGRhcyAjKSBsw7ZzY2hlbgogICAgICAgIGlmIChzZWwucmFuZ2VDb3Vu +dCkgewogICAgICAgICAgICB2YXIgcmFuZ2UgPSBzZWwuZ2V0UmFuZ2VBdCgwKTsKICAgICAgICAg +ICAgcmFuZ2Uuc2V0U3RhcnQocmFuZ2Uuc3RhcnRDb250YWluZXIsIE1hdGgubWF4KDAsIHJhbmdl +LnN0YXJ0T2Zmc2V0IC0gMSkpOwogICAgICAgICAgICByYW5nZS5kZWxldGVDb250ZW50cygpOwog +ICAgICAgIH0KCiAgICAgICAgLy8gQ3Jvc3NsaW5rLUVsZW1lbnQgZWluZsO8Z2VuCiAgICAgICAg +dmFyIGFuY2hvciA9IGhlYWRpbmdTbHVnID8gZG9jSWQgKyAnIycgKyBoZWFkaW5nU2x1ZyA6IGRv +Y0lkOwogICAgICAgIHZhciBsYWJlbCA9IGRvYy50aXRlbDsKICAgICAgICBpZiAoaGVhZGluZ1Ns +dWcpIHsKICAgICAgICAgICAgdmFyIGhlYWRpbmdzID0gdGhpcy5fZXh0cmFjdEhlYWRpbmdzKGRv +Yy5pbmhhbHQpOwogICAgICAgICAgICB2YXIgbWF0Y2ggPSBoZWFkaW5ncy5maW5kKGZ1bmN0aW9u +KGgpIHsgcmV0dXJuIGguc2x1ZyA9PT0gaGVhZGluZ1NsdWc7IH0pOwogICAgICAgICAgICBpZiAo +bWF0Y2gpIGxhYmVsID0gZG9jLnRpdGVsICsgJyDihpIgJyArIG1hdGNoLnRleHQ7CiAgICAgICAg +fQoKICAgICAgICB2YXIgeHJlZkh0bWwgPSAnPHNwYW4gY2xhc3M9ImRyaXZlLXhyZWYiIGRhdGEt +eHJlZi10YXJnZXQ9IicgKyBEcml2ZVBvcnRhbC5lc2NhcGVBdHRyKGFuY2hvcikgKyAnIiBjb250 +ZW50ZWRpdGFibGU9ImZhbHNlIj4nICsgRHJpdmVQb3J0YWwuZXNjYXBlSFRNTChsYWJlbCkgKyAn +PC9zcGFuPiZuYnNwOyc7CgogICAgICAgIGRvY3VtZW50LmV4ZWNDb21tYW5kKCdpbnNlcnRIVE1M +JywgZmFsc2UsIHhyZWZIdG1sKTsKICAgICAgICB0aGlzLnNhdmVTdGF0ZSgpOwogICAgfSwKCiAg +ICAvLyAtLS0gQWNjb3JkaW9uIChBdWZrbGFwcGJhcmVyIFRleHRiZXJlaWNoKSAtLS0KICAgIF9h +Y2NDb3VudGVyOiAwLAoKICAgIGluc2VydEFjY29yZGlvbigpIHsKICAgICAgICB2YXIgc2VsID0g +d2luZG93LmdldFNlbGVjdGlvbigpOwogICAgICAgIHRoaXMuX2FjY1JhbmdlID0gKHNlbCAmJiBz +ZWwucmFuZ2VDb3VudCkgPyBzZWwuZ2V0UmFuZ2VBdCgwKS5jbG9uZVJhbmdlKCkgOiBudWxsOwog +ICAgICAgIHRoaXMuX2FjY0NvdW50ZXIgPSAxOwogICAgICAgIHZhciBpbnB1dFN0eWxlID0gJ3dp +ZHRoOjEwMCU7cGFkZGluZzo2cHggMTBweDtib3JkZXI6MXB4IHNvbGlkIHZhcigtLWJvcmRlci1j +b2xvcik7Ym9yZGVyLXJhZGl1czo0cHg7Zm9udC1zaXplOjEzcHg7YmFja2dyb3VuZDp2YXIoLS1i +Zy1pbnB1dCk7Y29sb3I6dmFyKC0tdGV4dC1wcmltYXJ5KTsnOwoKICAgICAgICB2YXIgbW9kYWwg +PSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKICAgICAgICBtb2RhbC5zdHlsZS5jc3NU +ZXh0ID0gJ3Bvc2l0aW9uOmZpeGVkO3RvcDowO2xlZnQ6MDt3aWR0aDoxMDAlO2hlaWdodDoxMDAl +O2JhY2tncm91bmQ6cmdiYSgwLDAsMCwwLjUpO3otaW5kZXg6MTA1MDA7ZGlzcGxheTpmbGV4O2Fs +aWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyOyc7CiAgICAgICAgbW9kYWwu +b25jbGljayA9IGZ1bmN0aW9uKGUpIHsgaWYgKGUudGFyZ2V0ID09PSBtb2RhbCkgbW9kYWwucmVt +b3ZlKCk7IH07CiAgICAgICAgbW9kYWwuaW5uZXJIVE1MID0KICAgICAgICAgICAgJzxkaXYgc3R5 +bGU9ImJhY2tncm91bmQ6dmFyKC0tYmctY2FyZCk7Ym9yZGVyLXJhZGl1czoxMHB4O3BhZGRpbmc6 +MjBweCAyNHB4O21heC13aWR0aDo2MDBweDt3aWR0aDo5MCU7Ym94LXNoYWRvdzowIDhweCAzMnB4 +IHJnYmEoMCwwLDAsMC4zKTttYXgtaGVpZ2h0Ojg1dmg7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0 +aW9uOmNvbHVtbjsiPicgKwogICAgICAgICAgICAgICAgJzxoMyBzdHlsZT0iY29sb3I6dmFyKC0t +dGV4dC1oZWFkaW5nKTttYXJnaW4tYm90dG9tOjEwcHg7ZmxleC1zaHJpbms6MDsiPkF1ZmtsYXBw +YmFyZSBCZXJlaWNoZSBlaW5mw7xnZW48L2gzPicgKwogICAgICAgICAgICAgICAgJzxwIHN0eWxl +PSJmb250LXNpemU6MTJweDtjb2xvcjp2YXIoLS10ZXh0LW11dGVkKTttYXJnaW4tYm90dG9tOjEy +cHg7ZmxleC1zaHJpbms6MDsiPkplZGVyIEJlcmVpY2ggaGF0IGVpbmVuIFRpdGVsIChpbW1lciBz +aWNodGJhcikgdW5kIGVpbmVuIEluaGFsdCAod2lyZCBiZWltIEtsaWNrIGF1Zmdla2xhcHB0KS4g +RHUga2FubnN0IG1laHJlcmUgQmVyZWljaGUgYXVmIGVpbm1hbCBlaW5mw7xnZW4uPC9wPicgKwog +ICAgICAgICAgICAgICAgJzxkaXYgaWQ9ImFjY0luc2VydEl0ZW1zIiBzdHlsZT0ib3ZlcmZsb3ct +eTphdXRvO2ZsZXg6MTttaW4taGVpZ2h0OjA7cGFkZGluZy1yaWdodDo0cHg7Ij4nICsKICAgICAg +ICAgICAgICAgICAgICBEcml2ZUVkaXRvci5fYWNjSXRlbUh0bWwoMSkgKwogICAgICAgICAgICAg +ICAgJzwvZGl2PicgKwogICAgICAgICAgICAgICAgJzxkaXYgc3R5bGU9ImZsZXgtc2hyaW5rOjA7 +bWFyZ2luLXRvcDoxMHB4O3BhZGRpbmctdG9wOjEwcHg7Ym9yZGVyLXRvcDoxcHggc29saWQgdmFy +KC0tYm9yZGVyLWxpZ2h0KTsiPicgKwogICAgICAgICAgICAgICAgICAgICc8YnV0dG9uIG9uY2xp +Y2s9IkRyaXZlRWRpdG9yLl9hZGRBY2NJdGVtKCkiIHN0eWxlPSJ3aWR0aDoxMDAlO3BhZGRpbmc6 +OHB4O2JvcmRlcjoxcHggZGFzaGVkIHZhcigtLWJvcmRlci1jb2xvcik7YmFja2dyb3VuZDp2YXIo +LS1iZy1jYXJkLWFsdCk7Ym9yZGVyLXJhZGl1czo0cHg7Y3Vyc29yOnBvaW50ZXI7Y29sb3I6dmFy +KC0tdGV4dC1oZWFkaW5nKTtmb250LXdlaWdodDo2MDA7Zm9udC1zaXplOjEzcHg7Ij4rIFdlaXRl +cmVuIEJlcmVpY2ggaGluenVmw7xnZW48L2J1dHRvbj4nICsKICAgICAgICAgICAgICAgICc8L2Rp +dj4nICsKICAgICAgICAgICAgICAgICc8ZGl2IHN0eWxlPSJkaXNwbGF5OmZsZXg7Z2FwOjhweDtq +dXN0aWZ5LWNvbnRlbnQ6ZmxleC1lbmQ7bWFyZ2luLXRvcDoxMHB4O2ZsZXgtc2hyaW5rOjA7Ij4n +ICsKICAgICAgICAgICAgICAgICAgICAnPGJ1dHRvbiBvbmNsaWNrPSJ0aGlzLmNsb3Nlc3QoXCdk +aXZbc3R5bGVdXCcpLnBhcmVudEVsZW1lbnQucmVtb3ZlKCkiIHN0eWxlPSJwYWRkaW5nOjhweCAx +NnB4O2JvcmRlci1yYWRpdXM6NHB4O2JvcmRlcjoxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG9y +KTtiYWNrZ3JvdW5kOnZhcigtLWJnLWNhcmQpO2NvbG9yOnZhcigtLXRleHQtcHJpbWFyeSk7Y3Vy +c29yOnBvaW50ZXI7Ij5BYmJyZWNoZW48L2J1dHRvbj4nICsKICAgICAgICAgICAgICAgICAgICAn +PGJ1dHRvbiBvbmNsaWNrPSJEcml2ZUVkaXRvci5fY29uZmlybUFjY29yZGlvbigpIiBzdHlsZT0i +cGFkZGluZzo4cHggMTZweDtib3JkZXItcmFkaXVzOjRweDtib3JkZXI6bm9uZTtiYWNrZ3JvdW5k +OnZhcigtLXRleHQtaGVhZGluZyk7Y29sb3I6d2hpdGU7Y3Vyc29yOnBvaW50ZXI7Zm9udC13ZWln +aHQ6NjAwOyI+RWluZsO8Z2VuPC9idXR0b24+JyArCiAgICAgICAgICAgICAgICAnPC9kaXY+JyAr +CiAgICAgICAgICAgICc8L2Rpdj4nOwogICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQo +bW9kYWwpOwogICAgICAgIHRoaXMuX2FjY01vZGFsID0gbW9kYWw7CiAgICAgICAgc2V0VGltZW91 +dChmdW5jdGlvbigpIHsKICAgICAgICAgICAgdmFyIGZpcnN0ID0gZG9jdW1lbnQuZ2V0RWxlbWVu +dEJ5SWQoJ2FjY1RfMScpOwogICAgICAgICAgICBpZiAoZmlyc3QpIGZpcnN0LmZvY3VzKCk7CiAg +ICAgICAgfSwgNTApOwogICAgfSwKCiAgICBfYWNjTW9kYWw6IG51bGwsCgogICAgX2FjY0l0ZW1I +dG1sKG51bSkgewogICAgICAgIHZhciBpbnB1dFN0eWxlID0gJ3dpZHRoOjEwMCU7cGFkZGluZzo2 +cHggMTBweDtib3JkZXI6MXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvcik7Ym9yZGVyLXJhZGl1 +czo0cHg7Zm9udC1zaXplOjEzcHg7YmFja2dyb3VuZDp2YXIoLS1iZy1pbnB1dCk7Y29sb3I6dmFy +KC0tdGV4dC1wcmltYXJ5KTsnOwogICAgICAgIHJldHVybiAnPGRpdiBjbGFzcz0iYWNjLWluc2Vy +dC1pdGVtIiBzdHlsZT0ibWFyZ2luLWJvdHRvbToxMHB4O3BhZGRpbmc6MTBweCAxMnB4O2JhY2tn +cm91bmQ6dmFyKC0tYmctY2FyZC1hbHQpO2JvcmRlci1yYWRpdXM6NnB4O2JvcmRlcjoxcHggc29s +aWQgdmFyKC0tYm9yZGVyLWxpZ2h0KTsiPicgKwogICAgICAgICAgICAnPGRpdiBzdHlsZT0iZGlz +cGxheTpmbGV4O2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuO2FsaWduLWl0ZW1zOmNlbnRl +cjttYXJnaW4tYm90dG9tOjZweDsiPicgKwogICAgICAgICAgICAgICAgJzxsYWJlbCBzdHlsZT0i +Zm9udC1zaXplOjExcHg7Zm9udC13ZWlnaHQ6NjAwO2NvbG9yOnZhcigtLXRleHQtaGVhZGluZyk7 +Ij5CZXJlaWNoICcgKyBudW0gKyAnPC9sYWJlbD4nICsKICAgICAgICAgICAgICAgIChudW0gPiAx +ID8gJzxidXR0b24gb25jbGljaz0idGhpcy5jbG9zZXN0KFwnLmFjYy1pbnNlcnQtaXRlbVwnKS5y +ZW1vdmUoKSIgc3R5bGU9ImJhY2tncm91bmQ6bm9uZTtib3JkZXI6bm9uZTtjb2xvcjp2YXIoLS10 +ZXh0LW11dGVkKTtjdXJzb3I6cG9pbnRlcjtmb250LXNpemU6MTRweDsiIHRpdGxlPSJFbnRmZXJu +ZW4iPiZ0aW1lczs8L2J1dHRvbj4nIDogJycpICsKICAgICAgICAgICAgJzwvZGl2PicgKwogICAg +ICAgICAgICAnPGlucHV0IHR5cGU9InRleHQiIGlkPSJhY2NUXycgKyBudW0gKyAnIiBwbGFjZWhv +bGRlcj0iVGl0ZWwgKGltbWVyIHNpY2h0YmFyKS4uLiIgc3R5bGU9IicgKyBpbnB1dFN0eWxlICsg +J21hcmdpbi1ib3R0b206NnB4O2ZvbnQtd2VpZ2h0OjYwMDsiPicgKwogICAgICAgICAgICAnPHRl +eHRhcmVhIGlkPSJhY2NDXycgKyBudW0gKyAnIiBwbGFjZWhvbGRlcj0iSW5oYWx0ICh3aXJkIGF1 +Zmdla2xhcHB0KS4uLiIgcm93cz0iMyIgc3R5bGU9IicgKyBpbnB1dFN0eWxlICsgJ3Jlc2l6ZTp2 +ZXJ0aWNhbDtsaW5lLWhlaWdodDoxLjU7Ij48L3RleHRhcmVhPicgKwogICAgICAgICc8L2Rpdj4n +OwogICAgfSwKCiAgICBfYWRkQWNjSXRlbSgpIHsKICAgICAgICB0aGlzLl9hY2NDb3VudGVyKys7 +CiAgICAgICAgdmFyIGNvbnRhaW5lciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhY2NJbnNl +cnRJdGVtcycpOwogICAgICAgIGlmICghY29udGFpbmVyKSByZXR1cm47CiAgICAgICAgdmFyIGRp +diA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwogICAgICAgIGRpdi5pbm5lckhUTUwg +PSB0aGlzLl9hY2NJdGVtSHRtbCh0aGlzLl9hY2NDb3VudGVyKTsKICAgICAgICBjb250YWluZXIu +YXBwZW5kQ2hpbGQoZGl2LmZpcnN0Q2hpbGQpOwogICAgICAgIHZhciBuZXdUID0gZG9jdW1lbnQu +Z2V0RWxlbWVudEJ5SWQoJ2FjY1RfJyArIHRoaXMuX2FjY0NvdW50ZXIpOwogICAgICAgIGlmIChu +ZXdUKSB7IG5ld1QuZm9jdXMoKTsgbmV3VC5zY3JvbGxJbnRvVmlldyh7IGJlaGF2aW9yOiAnc21v +b3RoJywgYmxvY2s6ICduZWFyZXN0JyB9KTsgfQogICAgfSwKCiAgICBfY29uZmlybUFjY29yZGlv +bigpIHsKICAgICAgICB2YXIgaXRlbXMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcjYWNj +SW5zZXJ0SXRlbXMgLmFjYy1pbnNlcnQtaXRlbScpOwogICAgICAgIHZhciBlbnRyaWVzID0gW107 +CiAgICAgICAgaXRlbXMuZm9yRWFjaChmdW5jdGlvbihpdGVtKSB7CiAgICAgICAgICAgIHZhciB0 +SW5wdXQgPSBpdGVtLnF1ZXJ5U2VsZWN0b3IoJ2lucHV0W2lkXj0iYWNjVF8iXScpOwogICAgICAg +ICAgICB2YXIgY0lucHV0ID0gaXRlbS5xdWVyeVNlbGVjdG9yKCd0ZXh0YXJlYVtpZF49ImFjY0Nf +Il0nKTsKICAgICAgICAgICAgdmFyIHQgPSB0SW5wdXQgPyB0SW5wdXQudmFsdWUudHJpbSgpIDog +Jyc7CiAgICAgICAgICAgIHZhciBjID0gY0lucHV0ID8gY0lucHV0LnZhbHVlLnRyaW0oKSA6ICcn +OwogICAgICAgICAgICBpZiAodCkgZW50cmllcy5wdXNoKHsgdGl0bGU6IHQsIGNvbnRlbnQ6IGMg +fHwgJycgfSk7CiAgICAgICAgfSk7CiAgICAgICAgaWYgKGVudHJpZXMubGVuZ3RoID09PSAwKSB7 +CiAgICAgICAgICAgIHNob3dUb2FzdCgnQml0dGUgbWluZGVzdGVucyBlaW5lbiBUaXRlbCBlaW5n +ZWJlbicsICd3YXJuaW5nJyk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CgogICAgICAg +IGlmICh0aGlzLl9hY2NNb2RhbCkgeyB0aGlzLl9hY2NNb2RhbC5yZW1vdmUoKTsgdGhpcy5fYWNj +TW9kYWwgPSBudWxsOyB9CgogICAgICAgIHZhciBhY2NIdG1sID0gJyc7CiAgICAgICAgZW50cmll +cy5mb3JFYWNoKGZ1bmN0aW9uKGUpIHsKICAgICAgICAgICAgdmFyIGNvbnRlbnQgPSBEcml2ZVBv +cnRhbC5lc2NhcGVIVE1MKGUuY29udGVudCkucmVwbGFjZSgvXG4vZywgJzxicj4nKSB8fCAnPHA+ +PC9wPic7CiAgICAgICAgICAgIGFjY0h0bWwgKz0KICAgICAgICAgICAgICAgICc8ZGl2IGNsYXNz +PSJkcml2ZS1hY2NvcmRpb24iIGNvbnRlbnRlZGl0YWJsZT0iZmFsc2UiPicgKwogICAgICAgICAg +ICAgICAgICAgICc8ZGl2IGNsYXNzPSJkcml2ZS1hY2NvcmRpb24taGVhZGVyIj4nICsKICAgICAg +ICAgICAgICAgICAgICAgICAgJzxzcGFuIGNsYXNzPSJkcml2ZS1hY2NvcmRpb24tYXJyb3ciPjxp +bWcgc3JjPSJjc3MvaWNvbnMvQ2hldnJvbi5wbmciIHN0eWxlPSJ3aWR0aDoxMnB4O2hlaWdodDox +MnB4OyI+PC9zcGFuPicgKwogICAgICAgICAgICAgICAgICAgICAgICAnPHNwYW4+JyArIERyaXZl +UG9ydGFsLmVzY2FwZUhUTUwoZS50aXRsZSkgKyAnPC9zcGFuPicgKwogICAgICAgICAgICAgICAg +ICAgICc8L2Rpdj4nICsKICAgICAgICAgICAgICAgICAgICAnPGRpdiBjbGFzcz0iZHJpdmUtYWNj +b3JkaW9uLWJvZHkiPicgKyBjb250ZW50ICsgJzwvZGl2PicgKwogICAgICAgICAgICAgICAgJzwv +ZGl2Pic7CiAgICAgICAgfSk7CiAgICAgICAgYWNjSHRtbCArPSAnPGJyPic7CgogICAgICAgIHZh +ciBlZGl0b3IgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZWRpdG9ySW5wdXQnKTsKICAgICAg +ICBlZGl0b3IuZm9jdXMoKTsKICAgICAgICBpZiAodGhpcy5fYWNjUmFuZ2UpIHsKICAgICAgICAg +ICAgdmFyIHNlbCA9IHdpbmRvdy5nZXRTZWxlY3Rpb24oKTsKICAgICAgICAgICAgc2VsLnJlbW92 +ZUFsbFJhbmdlcygpOwogICAgICAgICAgICBzZWwuYWRkUmFuZ2UodGhpcy5fYWNjUmFuZ2UpOwog +ICAgICAgICAgICB0aGlzLl9hY2NSYW5nZSA9IG51bGw7CiAgICAgICAgfQogICAgICAgIGRvY3Vt +ZW50LmV4ZWNDb21tYW5kKCdpbnNlcnRIVE1MJywgZmFsc2UsIGFjY0h0bWwpOwogICAgICAgIHRo +aXMuc2F2ZVN0YXRlKCk7CiAgICB9LAoKICAgIC8vIC0tLSBGQVEtQmVyZWljaCAtLS0KICAgIF9m +YXFDb3VudGVyOiAwLAoKICAgIGluc2VydEZBUSgpIHsKICAgICAgICB0aGlzLl9mYXFDb3VudGVy +ID0gMTsKICAgICAgICAvLyBDdXJzb3ItUG9zaXRpb24gbWVya2VuCiAgICAgICAgdmFyIHNlbCA9 +IHdpbmRvdy5nZXRTZWxlY3Rpb24oKTsKICAgICAgICB0aGlzLl9mYXFSYW5nZSA9IChzZWwgJiYg +c2VsLnJhbmdlQ291bnQpID8gc2VsLmdldFJhbmdlQXQoMCkuY2xvbmVSYW5nZSgpIDogbnVsbDsK +ICAgICAgICB2YXIgaW5wdXRTdHlsZSA9ICd3aWR0aDoxMDAlO3BhZGRpbmc6NnB4IDEwcHg7Ym9y +ZGVyOjFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3IpO2JvcmRlci1yYWRpdXM6NHB4O2ZvbnQt +c2l6ZToxM3B4O2JhY2tncm91bmQ6dmFyKC0tYmctaW5wdXQpO2NvbG9yOnZhcigtLXRleHQtcHJp +bWFyeSk7JzsKICAgICAgICB2YXIgbW9kYWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYn +KTsKICAgICAgICBtb2RhbC5zdHlsZS5jc3NUZXh0ID0gJ3Bvc2l0aW9uOmZpeGVkO3RvcDowO2xl +ZnQ6MDt3aWR0aDoxMDAlO2hlaWdodDoxMDAlO2JhY2tncm91bmQ6cmdiYSgwLDAsMCwwLjUpO3ot +aW5kZXg6MTA1MDA7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRl +bnQ6Y2VudGVyOyc7CiAgICAgICAgbW9kYWwub25jbGljayA9IGZ1bmN0aW9uKGUpIHsgaWYgKGUu +dGFyZ2V0ID09PSBtb2RhbCkgbW9kYWwucmVtb3ZlKCk7IH07CiAgICAgICAgbW9kYWwuaW5uZXJI +VE1MID0KICAgICAgICAgICAgJzxkaXYgc3R5bGU9ImJhY2tncm91bmQ6dmFyKC0tYmctY2FyZCk7 +Ym9yZGVyLXJhZGl1czoxMHB4O3BhZGRpbmc6MjBweCAyNHB4O21heC13aWR0aDo2NDBweDt3aWR0 +aDo5MCU7Ym94LXNoYWRvdzowIDhweCAzMnB4IHJnYmEoMCwwLDAsMC4zKTttYXgtaGVpZ2h0Ojg1 +dmg7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjsiPicgKwogICAgICAgICAgICAg +ICAgJzxoMyBzdHlsZT0iY29sb3I6dmFyKC0tdGV4dC1oZWFkaW5nKTttYXJnaW4tYm90dG9tOjE0 +cHg7ZmxleC1zaHJpbms6MDsiPkZBUS1CZXJlaWNoIGVpbmbDvGdlbjwvaDM+JyArCiAgICAgICAg +ICAgICAgICAnPGRpdiBpZD0iZmFxSW5zZXJ0SXRlbXMiIHN0eWxlPSJvdmVyZmxvdy15OmF1dG87 +ZmxleDoxO21pbi1oZWlnaHQ6MDtwYWRkaW5nLXJpZ2h0OjRweDsiPicgKwogICAgICAgICAgICAg +ICAgICAgIERyaXZlRWRpdG9yLl9mYXFJdGVtSHRtbCgxKSArCiAgICAgICAgICAgICAgICAnPC9k +aXY+JyArCiAgICAgICAgICAgICAgICAnPGRpdiBzdHlsZT0iZmxleC1zaHJpbms6MDttYXJnaW4t +dG9wOjEwcHg7cGFkZGluZy10b3A6MTBweDtib3JkZXItdG9wOjFweCBzb2xpZCB2YXIoLS1ib3Jk +ZXItbGlnaHQpOyI+JyArCiAgICAgICAgICAgICAgICAgICAgJzxidXR0b24gb25jbGljaz0iRHJp +dmVFZGl0b3IuX2FkZEZhcUl0ZW0oKSIgc3R5bGU9IndpZHRoOjEwMCU7cGFkZGluZzo4cHg7Ym9y +ZGVyOjFweCBkYXNoZWQgdmFyKC0tYm9yZGVyLWNvbG9yKTtiYWNrZ3JvdW5kOnZhcigtLWJnLWNh +cmQtYWx0KTtib3JkZXItcmFkaXVzOjRweDtjdXJzb3I6cG9pbnRlcjtjb2xvcjp2YXIoLS10ZXh0 +LWhlYWRpbmcpO2ZvbnQtd2VpZ2h0OjYwMDtmb250LXNpemU6MTNweDsiPisgV2VpdGVyZSBGcmFn +ZSBoaW56dWbDvGdlbjwvYnV0dG9uPicgKwogICAgICAgICAgICAgICAgJzwvZGl2PicgKwogICAg +ICAgICAgICAgICAgJzxkaXYgc3R5bGU9ImRpc3BsYXk6ZmxleDtnYXA6OHB4O2p1c3RpZnktY29u +dGVudDpmbGV4LWVuZDttYXJnaW4tdG9wOjEwcHg7ZmxleC1zaHJpbms6MDsiPicgKwogICAgICAg +ICAgICAgICAgICAgICc8YnV0dG9uIG9uY2xpY2s9InRoaXMuY2xvc2VzdChcJ2RpdltzdHlsZV1c +JykucGFyZW50RWxlbWVudC5yZW1vdmUoKSIgc3R5bGU9InBhZGRpbmc6OHB4IDE2cHg7Ym9yZGVy +LXJhZGl1czo0cHg7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3IpO2JhY2tncm91 +bmQ6dmFyKC0tYmctY2FyZCk7Y29sb3I6dmFyKC0tdGV4dC1wcmltYXJ5KTtjdXJzb3I6cG9pbnRl +cjsiPkFiYnJlY2hlbjwvYnV0dG9uPicgKwogICAgICAgICAgICAgICAgICAgICc8YnV0dG9uIG9u +Y2xpY2s9IkRyaXZlRWRpdG9yLl9jb25maXJtRkFRKCkiIHN0eWxlPSJwYWRkaW5nOjhweCAxNnB4 +O2JvcmRlci1yYWRpdXM6NHB4O2JvcmRlcjpub25lO2JhY2tncm91bmQ6dmFyKC0tdGV4dC1oZWFk +aW5nKTtjb2xvcjp3aGl0ZTtjdXJzb3I6cG9pbnRlcjtmb250LXdlaWdodDo2MDA7Ij5FaW5mw7xn +ZW48L2J1dHRvbj4nICsKICAgICAgICAgICAgICAgICc8L2Rpdj4nICsKICAgICAgICAgICAgJzwv +ZGl2Pic7CiAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChtb2RhbCk7CiAgICAgICAg +dGhpcy5fZmFxTW9kYWwgPSBtb2RhbDsKICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewog +ICAgICAgICAgICB2YXIgZmlyc3QgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZmFxUV8xJyk7 +CiAgICAgICAgICAgIGlmIChmaXJzdCkgZmlyc3QuZm9jdXMoKTsKICAgICAgICB9LCA1MCk7CiAg +ICB9LAoKICAgIF9mYXFNb2RhbDogbnVsbCwKCiAgICBfZmFxSXRlbUh0bWwobnVtKSB7CiAgICAg +ICAgdmFyIGlucHV0U3R5bGUgPSAnd2lkdGg6MTAwJTtwYWRkaW5nOjZweCAxMHB4O2JvcmRlcjox +cHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG9yKTtib3JkZXItcmFkaXVzOjRweDtmb250LXNpemU6 +MTNweDtiYWNrZ3JvdW5kOnZhcigtLWJnLWlucHV0KTtjb2xvcjp2YXIoLS10ZXh0LXByaW1hcnkp +Oyc7CiAgICAgICAgcmV0dXJuICc8ZGl2IGNsYXNzPSJmYXEtaW5zZXJ0LWl0ZW0iIHN0eWxlPSJt +YXJnaW4tYm90dG9tOjEycHg7cGFkZGluZzoxMHB4IDEycHg7YmFja2dyb3VuZDp2YXIoLS1iZy1j +YXJkLWFsdCk7Ym9yZGVyLXJhZGl1czo2cHg7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1ib3JkZXIt +bGlnaHQpOyI+JyArCiAgICAgICAgICAgICc8ZGl2IHN0eWxlPSJkaXNwbGF5OmZsZXg7anVzdGlm +eS1jb250ZW50OnNwYWNlLWJldHdlZW47YWxpZ24taXRlbXM6Y2VudGVyO21hcmdpbi1ib3R0b206 +NnB4OyI+JyArCiAgICAgICAgICAgICAgICAnPGxhYmVsIHN0eWxlPSJmb250LXNpemU6MTFweDtm +b250LXdlaWdodDo2MDA7Y29sb3I6dmFyKC0tdGV4dC1oZWFkaW5nKTsiPkZyYWdlICcgKyBudW0g +KyAnPC9sYWJlbD4nICsKICAgICAgICAgICAgICAgIChudW0gPiAxID8gJzxidXR0b24gb25jbGlj +az0idGhpcy5jbG9zZXN0KFwnLmZhcS1pbnNlcnQtaXRlbVwnKS5yZW1vdmUoKSIgc3R5bGU9ImJh +Y2tncm91bmQ6bm9uZTtib3JkZXI6bm9uZTtjb2xvcjp2YXIoLS10ZXh0LW11dGVkKTtjdXJzb3I6 +cG9pbnRlcjtmb250LXNpemU6MTRweDsiIHRpdGxlPSJFbnRmZXJuZW4iPiZ0aW1lczs8L2J1dHRv +bj4nIDogJycpICsKICAgICAgICAgICAgJzwvZGl2PicgKwogICAgICAgICAgICAnPGlucHV0IHR5 +cGU9InRleHQiIGlkPSJmYXFRXycgKyBudW0gKyAnIiBwbGFjZWhvbGRlcj0iRnJhZ2UgZWluZ2Vi +ZW4uLi4iIHN0eWxlPSInICsgaW5wdXRTdHlsZSArICdtYXJnaW4tYm90dG9tOjZweDtmb250LXdl +aWdodDo2MDA7Ij4nICsKICAgICAgICAgICAgJzx0ZXh0YXJlYSBpZD0iZmFxQV8nICsgbnVtICsg +JyIgcGxhY2Vob2xkZXI9IkFudHdvcnQgZWluZ2ViZW4uLi4iIHJvd3M9IjMiIHN0eWxlPSInICsg +aW5wdXRTdHlsZSArICdyZXNpemU6dmVydGljYWw7bGluZS1oZWlnaHQ6MS41OyI+PC90ZXh0YXJl +YT4nICsKICAgICAgICAnPC9kaXY+JzsKICAgIH0sCgogICAgX2FkZEZhcUl0ZW0oKSB7CiAgICAg +ICAgdGhpcy5fZmFxQ291bnRlcisrOwogICAgICAgIHZhciBjb250YWluZXIgPSBkb2N1bWVudC5n +ZXRFbGVtZW50QnlJZCgnZmFxSW5zZXJ0SXRlbXMnKTsKICAgICAgICBpZiAoIWNvbnRhaW5lcikg +cmV0dXJuOwogICAgICAgIHZhciBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsK +ICAgICAgICBkaXYuaW5uZXJIVE1MID0gdGhpcy5fZmFxSXRlbUh0bWwodGhpcy5fZmFxQ291bnRl +cik7CiAgICAgICAgY29udGFpbmVyLmFwcGVuZENoaWxkKGRpdi5maXJzdENoaWxkKTsKICAgICAg +ICB2YXIgbmV3USA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdmYXFRXycgKyB0aGlzLl9mYXFD +b3VudGVyKTsKICAgICAgICBpZiAobmV3USkgeyBuZXdRLmZvY3VzKCk7IG5ld1Euc2Nyb2xsSW50 +b1ZpZXcoeyBiZWhhdmlvcjogJ3Ntb290aCcsIGJsb2NrOiAnbmVhcmVzdCcgfSk7IH0KICAgIH0s +CgogICAgX2NvbmZpcm1GQVEoKSB7CiAgICAgICAgdmFyIGl0ZW1zID0gZG9jdW1lbnQucXVlcnlT +ZWxlY3RvckFsbCgnI2ZhcUluc2VydEl0ZW1zIC5mYXEtaW5zZXJ0LWl0ZW0nKTsKICAgICAgICB2 +YXIgcGFpcnMgPSBbXTsKICAgICAgICBpdGVtcy5mb3JFYWNoKGZ1bmN0aW9uKGl0ZW0pIHsKICAg +ICAgICAgICAgdmFyIHFJbnB1dCA9IGl0ZW0ucXVlcnlTZWxlY3RvcignaW5wdXRbaWRePSJmYXFR +XyJdJyk7CiAgICAgICAgICAgIHZhciBhSW5wdXQgPSBpdGVtLnF1ZXJ5U2VsZWN0b3IoJ3RleHRh +cmVhW2lkXj0iZmFxQV8iXScpOwogICAgICAgICAgICB2YXIgcSA9IHFJbnB1dCA/IHFJbnB1dC52 +YWx1ZS50cmltKCkgOiAnJzsKICAgICAgICAgICAgdmFyIGEgPSBhSW5wdXQgPyBhSW5wdXQudmFs +dWUudHJpbSgpIDogJyc7CiAgICAgICAgICAgIGlmIChxKSBwYWlycy5wdXNoKHsgcTogcSwgYTog +YSB8fCAnQW50d29ydCBhdXNzdGVoZW5kLicgfSk7CiAgICAgICAgfSk7CiAgICAgICAgaWYgKHBh +aXJzLmxlbmd0aCA9PT0gMCkgewogICAgICAgICAgICBzaG93VG9hc3QoJ0JpdHRlIG1pbmRlc3Rl +bnMgZWluZSBGcmFnZSBlaW5nZWJlbicsICd3YXJuaW5nJyk7CiAgICAgICAgICAgIHJldHVybjsK +ICAgICAgICB9CgogICAgICAgIGlmICh0aGlzLl9mYXFNb2RhbCkgeyB0aGlzLl9mYXFNb2RhbC5y +ZW1vdmUoKTsgdGhpcy5fZmFxTW9kYWwgPSBudWxsOyB9CgogICAgICAgIC8vIFNwcnVuZ21hcmtl +OiBmYXEte2FydGlrZWx0aXRlbC1zbHVnfQogICAgICAgIHZhciBzbHVnID0gJ2ZhcSc7CiAgICAg +ICAgaWYgKHRoaXMuY3VycmVudERvYyAmJiB0aGlzLmN1cnJlbnREb2MudGl0ZWwpIHsKICAgICAg +ICAgICAgc2x1ZyA9ICdmYXEtJyArIHRoaXMuY3VycmVudERvYy50aXRlbC50b0xvd2VyQ2FzZSgp +CiAgICAgICAgICAgICAgICAucmVwbGFjZSgvw6QvZywnYWUnKS5yZXBsYWNlKC/Dti9nLCdvZScp +LnJlcGxhY2UoL8O8L2csJ3VlJykucmVwbGFjZSgvw58vZywnc3MnKQogICAgICAgICAgICAgICAg +LnJlcGxhY2UoL1teYS16MC05XSsvZywnLScpLnJlcGxhY2UoL14tfC0kL2csJycpOwogICAgICAg +IH0KCiAgICAgICAgdmFyIGZhcUh0bWwgPSAnPGRpdiBjbGFzcz0iZHJpdmUtZmFxIiBpZD0iJyAr +IERyaXZlUG9ydGFsLmVzY2FwZUF0dHIoc2x1ZykgKyAnIiBjb250ZW50ZWRpdGFibGU9ImZhbHNl +Ij4nOwogICAgICAgIGZhcUh0bWwgKz0gJzxkaXYgY2xhc3M9ImRyaXZlLWZhcS1oZWFkZXIiPjxp +bWcgc3JjPSJjc3MvaWNvbnMvZmFxLnBuZyIgc3R5bGU9IndpZHRoOjIwcHg7aGVpZ2h0OjIwcHg7 +ZmlsdGVyOmludmVydCgxKSBicmlnaHRuZXNzKDIpOyI+IEZBUTwvZGl2Pic7CiAgICAgICAgZmFx +SHRtbCArPSAnPGRpdiBjbGFzcz0iZHJpdmUtZmFxLWJvZHkiPic7CiAgICAgICAgcGFpcnMuZm9y +RWFjaChmdW5jdGlvbihwKSB7CiAgICAgICAgICAgIGZhcUh0bWwgKz0gJzxkaXYgY2xhc3M9ImRy +aXZlLWZhcS1pdGVtIj4nICsKICAgICAgICAgICAgICAgICc8ZGl2IGNsYXNzPSJkcml2ZS1mYXEt +cXVlc3Rpb24iPjxzcGFuIGNsYXNzPSJkcml2ZS1mYXEtYXJyb3ciPjxpbWcgc3JjPSJjc3MvaWNv +bnMvQ2hldnJvbi5wbmciIHN0eWxlPSJ3aWR0aDoxMHB4O2hlaWdodDoxMHB4OyI+PC9zcGFuPjxz +cGFuPicgKyBEcml2ZVBvcnRhbC5lc2NhcGVIVE1MKHAucSkgKyAnPC9zcGFuPjwvZGl2PicgKwog +ICAgICAgICAgICAgICAgJzxkaXYgY2xhc3M9ImRyaXZlLWZhcS1hbnN3ZXIiPicgKyBEcml2ZVBv +cnRhbC5lc2NhcGVIVE1MKHAuYSkucmVwbGFjZSgvXG4vZywgJzxicj4nKSArICc8L2Rpdj4nICsK +ICAgICAgICAgICAgJzwvZGl2Pic7CiAgICAgICAgfSk7CiAgICAgICAgZmFxSHRtbCArPSAnPC9k +aXY+PC9kaXY+PGJyPic7CgogICAgICAgIHZhciBlZGl0b3IgPSBkb2N1bWVudC5nZXRFbGVtZW50 +QnlJZCgnZWRpdG9ySW5wdXQnKTsKICAgICAgICBlZGl0b3IuZm9jdXMoKTsKICAgICAgICAvLyBD +dXJzb3ItUG9zaXRpb24gd2llZGVyaGVyc3RlbGxlbgogICAgICAgIGlmICh0aGlzLl9mYXFSYW5n +ZSkgewogICAgICAgICAgICB2YXIgc2VsID0gd2luZG93LmdldFNlbGVjdGlvbigpOwogICAgICAg +ICAgICBzZWwucmVtb3ZlQWxsUmFuZ2VzKCk7CiAgICAgICAgICAgIHNlbC5hZGRSYW5nZSh0aGlz +Ll9mYXFSYW5nZSk7CiAgICAgICAgICAgIHRoaXMuX2ZhcVJhbmdlID0gbnVsbDsKICAgICAgICB9 +CiAgICAgICAgZG9jdW1lbnQuZXhlY0NvbW1hbmQoJ2luc2VydEhUTUwnLCBmYWxzZSwgZmFxSHRt +bCk7CiAgICAgICAgdGhpcy5zYXZlU3RhdGUoKTsKICAgIH0sCgogICAgLy8gLS0tIFRhYmVsbGUg +ZWluZsO8Z2VuIC0tLQogICAgaW5zZXJ0VGFibGUoKSB7CiAgICAgICAgdmFyIHNlbCA9IHdpbmRv +dy5nZXRTZWxlY3Rpb24oKTsKICAgICAgICB0aGlzLl90YmxSYW5nZSA9IChzZWwgJiYgc2VsLnJh +bmdlQ291bnQpID8gc2VsLmdldFJhbmdlQXQoMCkuY2xvbmVSYW5nZSgpIDogbnVsbDsKICAgICAg +ICB2YXIgbGFiZWxTdHlsZSA9ICdmb250LXNpemU6MTJweDtmb250LXdlaWdodDo2MDA7Y29sb3I6 +dmFyKC0tdGV4dC1zZWNvbmRhcnkpO2Rpc3BsYXk6YmxvY2s7bWFyZ2luLWJvdHRvbTozcHg7JzsK +ICAgICAgICB2YXIgaW5wdXRTdHlsZSA9ICd3aWR0aDoxMDAlO3BhZGRpbmc6NnB4IDEwcHg7Ym9y +ZGVyOjFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3IpO2JvcmRlci1yYWRpdXM6NHB4O2ZvbnQt +c2l6ZToxNHB4O2JhY2tncm91bmQ6dmFyKC0tYmctaW5wdXQpO2NvbG9yOnZhcigtLXRleHQtcHJp +bWFyeSk7JzsKICAgICAgICB2YXIgY2JTdHlsZSA9ICdkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6 +Y2VudGVyO2dhcDo2cHg7Zm9udC1zaXplOjEzcHg7Y29sb3I6dmFyKC0tdGV4dC1wcmltYXJ5KTtj +dXJzb3I6cG9pbnRlcjsnOwoKICAgICAgICB2YXIgbW9kYWwgPSBkb2N1bWVudC5jcmVhdGVFbGVt +ZW50KCdkaXYnKTsKICAgICAgICBtb2RhbC5zdHlsZS5jc3NUZXh0ID0gJ3Bvc2l0aW9uOmZpeGVk +O3RvcDowO2xlZnQ6MDt3aWR0aDoxMDAlO2hlaWdodDoxMDAlO2JhY2tncm91bmQ6cmdiYSgwLDAs +MCwwLjUpO3otaW5kZXg6MTA1MDA7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0 +aWZ5LWNvbnRlbnQ6Y2VudGVyOyc7CiAgICAgICAgbW9kYWwub25jbGljayA9IGZ1bmN0aW9uKGUp +IHsgaWYgKGUudGFyZ2V0ID09PSBtb2RhbCkgbW9kYWwucmVtb3ZlKCk7IH07CiAgICAgICAgbW9k +YWwuaW5uZXJIVE1MID0KICAgICAgICAgICAgJzxkaXYgc3R5bGU9ImJhY2tncm91bmQ6dmFyKC0t +YmctY2FyZCk7Ym9yZGVyLXJhZGl1czoxMHB4O3BhZGRpbmc6MjBweCAyNHB4O21heC13aWR0aDo0 +NDBweDt3aWR0aDo5MCU7Ym94LXNoYWRvdzowIDhweCAzMnB4IHJnYmEoMCwwLDAsMC4zKTsiPicg +KwogICAgICAgICAgICAgICAgJzxoMyBzdHlsZT0iY29sb3I6dmFyKC0tdGV4dC1oZWFkaW5nKTtt +YXJnaW4tYm90dG9tOjE2cHg7Ij5UYWJlbGxlIGVpbmbDvGdlbjwvaDM+JyArCgogICAgICAgICAg +ICAgICAgJzxkaXYgc3R5bGU9ImRpc3BsYXk6Z3JpZDtncmlkLXRlbXBsYXRlLWNvbHVtbnM6MWZy +IDFmcjtnYXA6MTJweDttYXJnaW4tYm90dG9tOjE0cHg7Ij4nICsKICAgICAgICAgICAgICAgICAg +ICAnPGRpdj48bGFiZWwgc3R5bGU9IicgKyBsYWJlbFN0eWxlICsgJyI+U3BhbHRlbjwvbGFiZWw+ +JyArCiAgICAgICAgICAgICAgICAgICAgICAgICc8aW5wdXQgdHlwZT0ibnVtYmVyIiBpZD0idGJs +Q29scyIgdmFsdWU9IjMiIG1pbj0iMSIgbWF4PSIyMCIgc3R5bGU9IicgKyBpbnB1dFN0eWxlICsg +JyI+PC9kaXY+JyArCiAgICAgICAgICAgICAgICAgICAgJzxkaXY+PGxhYmVsIHN0eWxlPSInICsg +bGFiZWxTdHlsZSArICciPlplaWxlbjwvbGFiZWw+JyArCiAgICAgICAgICAgICAgICAgICAgICAg +ICc8aW5wdXQgdHlwZT0ibnVtYmVyIiBpZD0idGJsUm93cyIgdmFsdWU9IjQiIG1pbj0iMSIgbWF4 +PSI1MCIgc3R5bGU9IicgKyBpbnB1dFN0eWxlICsgJyI+PC9kaXY+JyArCiAgICAgICAgICAgICAg +ICAnPC9kaXY+JyArCgogICAgICAgICAgICAgICAgJzxkaXYgc3R5bGU9Im1hcmdpbi1ib3R0b206 +MTRweDtwYWRkaW5nOjEycHg7YmFja2dyb3VuZDp2YXIoLS1iZy1jYXJkLWFsdCk7Ym9yZGVyLXJh +ZGl1czo2cHg7Ij4nICsKICAgICAgICAgICAgICAgICAgICAnPGRpdiBzdHlsZT0iJyArIGxhYmVs +U3R5bGUgKyAnbWFyZ2luLWJvdHRvbTo4cHg7Ij7DnGJlcnNjaHJpZnRlbjwvZGl2PicgKwogICAg +ICAgICAgICAgICAgICAgICc8bGFiZWwgc3R5bGU9IicgKyBjYlN0eWxlICsgJ21hcmdpbi1ib3R0 +b206NnB4OyI+PGlucHV0IHR5cGU9ImNoZWNrYm94IiBpZD0idGJsQ29sSGVhZGVycyIgY2hlY2tl +ZD4gU3BhbHRlbsO8YmVyc2NocmlmdGVuIChlcnN0ZSBaZWlsZSBmZXR0KTwvbGFiZWw+JyArCiAg +ICAgICAgICAgICAgICAgICAgJzxsYWJlbCBzdHlsZT0iJyArIGNiU3R5bGUgKyAnIj48aW5wdXQg +dHlwZT0iY2hlY2tib3giIGlkPSJ0YmxSb3dIZWFkZXJzIj4gWmVpbGVuw7xiZXJzY2hyaWZ0ZW4g +KGVyc3RlIFNwYWx0ZSBmZXR0KTwvbGFiZWw+JyArCiAgICAgICAgICAgICAgICAnPC9kaXY+JyAr +CgogICAgICAgICAgICAgICAgJzxkaXYgc3R5bGU9Im1hcmdpbi1ib3R0b206MTZweDtwYWRkaW5n +OjEycHg7YmFja2dyb3VuZDp2YXIoLS1iZy1jYXJkLWFsdCk7Ym9yZGVyLXJhZGl1czo2cHg7Ij4n +ICsKICAgICAgICAgICAgICAgICAgICAnPGxhYmVsIHN0eWxlPSInICsgY2JTdHlsZSArICciPjxp +bnB1dCB0eXBlPSJjaGVja2JveCIgaWQ9InRibFNvcnRhYmxlIj4gU29ydGllcmJhciAoS2xpY2sg +YXVmIFNwYWx0ZW7DvGJlcnNjaHJpZnQgc29ydGllcnQpPC9sYWJlbD4nICsKICAgICAgICAgICAg +ICAgICc8L2Rpdj4nICsKCiAgICAgICAgICAgICAgICAnPGRpdiBzdHlsZT0iZGlzcGxheTpmbGV4 +O2dhcDo4cHg7anVzdGlmeS1jb250ZW50OmZsZXgtZW5kOyI+JyArCiAgICAgICAgICAgICAgICAg +ICAgJzxidXR0b24gb25jbGljaz0idGhpcy5jbG9zZXN0KFwnZGl2W3N0eWxlXVwnKS5wYXJlbnRF +bGVtZW50LnJlbW92ZSgpIiBzdHlsZT0icGFkZGluZzo4cHggMTZweDtib3JkZXItcmFkaXVzOjRw +eDtib3JkZXI6MXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvcik7YmFja2dyb3VuZDp2YXIoLS1i +Zy1jYXJkKTtjb2xvcjp2YXIoLS10ZXh0LXByaW1hcnkpO2N1cnNvcjpwb2ludGVyOyI+QWJicmVj +aGVuPC9idXR0b24+JyArCiAgICAgICAgICAgICAgICAgICAgJzxidXR0b24gb25jbGljaz0iRHJp +dmVFZGl0b3IuX2NvbmZpcm1UYWJsZSgpIiBzdHlsZT0icGFkZGluZzo4cHggMTZweDtib3JkZXIt +cmFkaXVzOjRweDtib3JkZXI6bm9uZTtiYWNrZ3JvdW5kOnZhcigtLXRleHQtaGVhZGluZyk7Y29s +b3I6d2hpdGU7Y3Vyc29yOnBvaW50ZXI7Zm9udC13ZWlnaHQ6NjAwOyI+RWluZsO8Z2VuPC9idXR0 +b24+JyArCiAgICAgICAgICAgICAgICAnPC9kaXY+JyArCiAgICAgICAgICAgICc8L2Rpdj4nOwog +ICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQobW9kYWwpOwogICAgICAgIHRoaXMuX3Ri +bE1vZGFsID0gbW9kYWw7CiAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsgZG9jdW1lbnQu +Z2V0RWxlbWVudEJ5SWQoJ3RibENvbHMnKS5mb2N1cygpOyB9LCA1MCk7CiAgICB9LAoKICAgIF90 +YmxNb2RhbDogbnVsbCwKCiAgICBfY29uZmlybVRhYmxlKCkgewogICAgICAgIHZhciBjb2xzID0g +cGFyc2VJbnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RibENvbHMnKS52YWx1ZSkgfHwgMzsK +ICAgICAgICB2YXIgcm93cyA9IHBhcnNlSW50KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0YmxS +b3dzJykudmFsdWUpIHx8IDQ7CiAgICAgICAgdmFyIGNvbEhlYWRlcnMgPSBkb2N1bWVudC5nZXRF +bGVtZW50QnlJZCgndGJsQ29sSGVhZGVycycpLmNoZWNrZWQ7CiAgICAgICAgdmFyIHJvd0hlYWRl +cnMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGJsUm93SGVhZGVycycpLmNoZWNrZWQ7CiAg +ICAgICAgdmFyIHNvcnRhYmxlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RibFNvcnRhYmxl +JykuY2hlY2tlZDsKCiAgICAgICAgY29scyA9IE1hdGgubWF4KDEsIE1hdGgubWluKDIwLCBjb2xz +KSk7CiAgICAgICAgcm93cyA9IE1hdGgubWF4KDEsIE1hdGgubWluKDUwLCByb3dzKSk7CgogICAg +ICAgIGlmICh0aGlzLl90YmxNb2RhbCkgeyB0aGlzLl90YmxNb2RhbC5yZW1vdmUoKTsgdGhpcy5f +dGJsTW9kYWwgPSBudWxsOyB9CgogICAgICAgIHZhciBzb3J0Q2xhc3MgPSBzb3J0YWJsZSA/ICcg +c29ydGFibGUnIDogJyc7CiAgICAgICAgdmFyIGh0bWwgPSAnPGRpdiBjbGFzcz0iZHJpdmUtdGFi +bGUtd3JhcCIgY29udGVudGVkaXRhYmxlPSJmYWxzZSI+PHRhYmxlIGNsYXNzPSJkcml2ZS10YWJs +ZSInICsgKHNvcnRhYmxlID8gJyBkYXRhLXNvcnRhYmxlPSJ0cnVlIicgOiAnJykgKyAnPic7Cgog +ICAgICAgIC8vIFNwYWx0ZW4tSGVhZGVyCiAgICAgICAgaWYgKGNvbEhlYWRlcnMpIHsKICAgICAg +ICAgICAgaHRtbCArPSAnPHRoZWFkPjx0cj4nOwogICAgICAgICAgICBmb3IgKHZhciBjID0gMDsg +YyA8IGNvbHM7IGMrKykgewogICAgICAgICAgICAgICAgaHRtbCArPSAnPHRoIGNsYXNzPSInICsg +c29ydENsYXNzICsgJyIgY29udGVudGVkaXRhYmxlPSJ0cnVlIj5TcGFsdGUgJyArIChjICsgMSkg +KyAnPC90aD4nOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGh0bWwgKz0gJzwvdHI+PC90aGVh +ZD4nOwogICAgICAgIH0KCiAgICAgICAgaHRtbCArPSAnPHRib2R5Pic7CiAgICAgICAgdmFyIGRh +dGFSb3dzID0gY29sSGVhZGVycyA/IHJvd3MgLSAxIDogcm93czsKICAgICAgICBmb3IgKHZhciBy +ID0gMDsgciA8IGRhdGFSb3dzOyByKyspIHsKICAgICAgICAgICAgaHRtbCArPSAnPHRyPic7CiAg +ICAgICAgICAgIGZvciAodmFyIGMgPSAwOyBjIDwgY29sczsgYysrKSB7CiAgICAgICAgICAgICAg +ICBpZiAoYyA9PT0gMCAmJiByb3dIZWFkZXJzKSB7CiAgICAgICAgICAgICAgICAgICAgaHRtbCAr +PSAnPHRkIGNsYXNzPSJyb3ctaGVhZGVyIiBjb250ZW50ZWRpdGFibGU9InRydWUiPlplaWxlICcg +KyAociArIDEpICsgJzwvdGQ+JzsKICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAg +ICAgICAgICAgaHRtbCArPSAnPHRkIGNvbnRlbnRlZGl0YWJsZT0idHJ1ZSI+PC90ZD4nOwogICAg +ICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIGh0bWwgKz0gJzwvdHI+JzsK +ICAgICAgICB9CiAgICAgICAgaHRtbCArPSAnPC90Ym9keT48L3RhYmxlPjwvZGl2Pjxicj4nOwoK +ICAgICAgICB2YXIgZWRpdG9yID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2VkaXRvcklucHV0 +Jyk7CiAgICAgICAgZWRpdG9yLmZvY3VzKCk7CiAgICAgICAgaWYgKHRoaXMuX3RibFJhbmdlKSB7 +CiAgICAgICAgICAgIHZhciBzZWwgPSB3aW5kb3cuZ2V0U2VsZWN0aW9uKCk7CiAgICAgICAgICAg +IHNlbC5yZW1vdmVBbGxSYW5nZXMoKTsKICAgICAgICAgICAgc2VsLmFkZFJhbmdlKHRoaXMuX3Ri +bFJhbmdlKTsKICAgICAgICAgICAgdGhpcy5fdGJsUmFuZ2UgPSBudWxsOwogICAgICAgIH0KICAg +ICAgICBkb2N1bWVudC5leGVjQ29tbWFuZCgnaW5zZXJ0SFRNTCcsIGZhbHNlLCBodG1sKTsKICAg +ICAgICB0aGlzLnNhdmVTdGF0ZSgpOwogICAgfSwKCiAgICAvLyAtLS0gVHJlbm5saW5pZSArIElu +Zm9ib3ggLS0tCiAgICAvLyAtLS0gUkFXLU1vZHVzIChIVE1MLVF1ZWxsdGV4dCkgLS0tCiAgICBf +cmF3TW9kZTogZmFsc2UsCgogICAgdG9nZ2xlUmF3KCkgewogICAgICAgIHZhciBlZGl0b3IgPSBk +b2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZWRpdG9ySW5wdXQnKTsKICAgICAgICB2YXIgYnRuID0g +ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2J0blJhd01vZGUnKTsKICAgICAgICBpZiAoIWVkaXRv +cikgcmV0dXJuOwoKICAgICAgICBpZiAodGhpcy5fcmF3TW9kZSkgewogICAgICAgICAgICAvLyBS +QVcg4oaSIFdZU0lXWUc6IHRleHRhcmVhLUluaGFsdCB6dXJ1ZWNrIGluIGRlbiBFZGl0b3IKICAg +ICAgICAgICAgdmFyIHRleHRhcmVhID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2VkaXRvclJh +d1RleHRhcmVhJyk7CiAgICAgICAgICAgIGlmICh0ZXh0YXJlYSkgewogICAgICAgICAgICAgICAg +ZWRpdG9yLmlubmVySFRNTCA9IHRleHRhcmVhLnZhbHVlOwogICAgICAgICAgICAgICAgdGV4dGFy +ZWEucmVtb3ZlKCk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWRpdG9yLnN0eWxlLmRpc3Bs +YXkgPSAnJzsKICAgICAgICAgICAgZWRpdG9yLmNvbnRlbnRFZGl0YWJsZSA9ICd0cnVlJzsKICAg +ICAgICAgICAgYnRuLnN0eWxlLm9wYWNpdHkgPSAnMC42JzsKICAgICAgICAgICAgYnRuLnN0eWxl +LmJhY2tncm91bmQgPSAnJzsKICAgICAgICAgICAgdGhpcy5fcmF3TW9kZSA9IGZhbHNlOwogICAg +ICAgIH0gZWxzZSB7CiAgICAgICAgICAgIC8vIFdZU0lXWUcg4oaSIFJBVzogRWRpdG9yLUhUTUwg +aW4gVGV4dGFyZWEgYW56ZWlnZW4KICAgICAgICAgICAgdmFyIHJhd0h0bWwgPSBlZGl0b3IuaW5u +ZXJIVE1MOwogICAgICAgICAgICBlZGl0b3Iuc3R5bGUuZGlzcGxheSA9ICdub25lJzsKICAgICAg +ICAgICAgdmFyIHRleHRhcmVhID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGV4dGFyZWEnKTsK +ICAgICAgICAgICAgdGV4dGFyZWEuaWQgPSAnZWRpdG9yUmF3VGV4dGFyZWEnOwogICAgICAgICAg +ICB0ZXh0YXJlYS52YWx1ZSA9IHJhd0h0bWw7CiAgICAgICAgICAgIHRleHRhcmVhLnN0eWxlLmNz +c1RleHQgPSAnd2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTttaW4taGVpZ2h0OjMwMHB4O3BhZGRpbmc6 +MTJweDtib3JkZXI6bm9uZTtmb250LWZhbWlseTptb25vc3BhY2U7Zm9udC1zaXplOjEycHg7bGlu +ZS1oZWlnaHQ6MS42O2JhY2tncm91bmQ6dmFyKC0tYmctaW5wdXQpO2NvbG9yOnZhcigtLXRleHQt +cHJpbWFyeSk7cmVzaXplOm5vbmU7ZmxleDoxOyc7CiAgICAgICAgICAgIGVkaXRvci5wYXJlbnRO +b2RlLmluc2VydEJlZm9yZSh0ZXh0YXJlYSwgZWRpdG9yLm5leHRTaWJsaW5nKTsKICAgICAgICAg +ICAgYnRuLnN0eWxlLm9wYWNpdHkgPSAnMSc7CiAgICAgICAgICAgIGJ0bi5zdHlsZS5iYWNrZ3Jv +dW5kID0gJ3ZhcigtLXRleHQtaGVhZGluZyknOwogICAgICAgICAgICBidG4uc3R5bGUuY29sb3Ig +PSAnd2hpdGUnOwogICAgICAgICAgICB0aGlzLl9yYXdNb2RlID0gdHJ1ZTsKICAgICAgICB9CiAg +ICB9LAoKICAgIGluc2VydERpdmlkZXIoKSB7CiAgICAgICAgdmFyIGVkaXRvciA9IGRvY3VtZW50 +LmdldEVsZW1lbnRCeUlkKCdlZGl0b3JJbnB1dCcpOwogICAgICAgIGVkaXRvci5mb2N1cygpOwog +ICAgICAgIGRvY3VtZW50LmV4ZWNDb21tYW5kKCdpbnNlcnRIVE1MJywgZmFsc2UsICc8aHIgY2xh +c3M9ImRyaXZlLWRpdmlkZXIiPjxicj4nKTsKICAgICAgICB0aGlzLnNhdmVTdGF0ZSgpOwogICAg +fSwKCiAgICBpbnNlcnRJbmZvYm94KCkgewogICAgICAgIHZhciBzZWwgPSB3aW5kb3cuZ2V0U2Vs +ZWN0aW9uKCk7CiAgICAgICAgdGhpcy5faW5mb2JveFJhbmdlID0gKHNlbCAmJiBzZWwucmFuZ2VD +b3VudCkgPyBzZWwuZ2V0UmFuZ2VBdCgwKS5jbG9uZVJhbmdlKCkgOiBudWxsOwoKICAgICAgICB2 +YXIgYnRuU3R5bGUgPSAnYmFja2dyb3VuZDpub25lO2JvcmRlcjoxcHggc29saWQgdmFyKC0tYm9y +ZGVyLWNvbG9yKTtib3JkZXItcmFkaXVzOjNweDtwYWRkaW5nOjNweCA4cHg7Y3Vyc29yOnBvaW50 +ZXI7Zm9udC1zaXplOjEycHg7Y29sb3I6dmFyKC0tdGV4dC1wcmltYXJ5KTttaW4td2lkdGg6Mjhw +eDsnOwogICAgICAgIHZhciBidG5TdHlsZUJvbGQgPSBidG5TdHlsZSArICdmb250LXdlaWdodDo3 +MDA7JzsKICAgICAgICB2YXIgYnRuU3R5bGVJdGFsaWMgPSBidG5TdHlsZSArICdmb250LXN0eWxl +Oml0YWxpYzsnOwogICAgICAgIHZhciBidG5TdHlsZVVuZGVybGluZSA9IGJ0blN0eWxlICsgJ3Rl +eHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7JzsKICAgICAgICB2YXIgc2VsZWN0U3R5bGUgPSAnYmFj +a2dyb3VuZDp2YXIoLS1iZy1pbnB1dCk7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29s +b3IpO2JvcmRlci1yYWRpdXM6M3B4O3BhZGRpbmc6M3B4IDRweDtmb250LXNpemU6MTFweDtjb2xv +cjp2YXIoLS10ZXh0LXByaW1hcnkpO2N1cnNvcjpwb2ludGVyOyc7CgogICAgICAgIHZhciBtb2Rh +bCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwogICAgICAgIG1vZGFsLnN0eWxlLmNz +c1RleHQgPSAncG9zaXRpb246Zml4ZWQ7dG9wOjA7bGVmdDowO3dpZHRoOjEwMCU7aGVpZ2h0OjEw +MCU7YmFja2dyb3VuZDpyZ2JhKDAsMCwwLDAuNSk7ei1pbmRleDoxMDUwMDtkaXNwbGF5OmZsZXg7 +YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7JzsKICAgICAgICBtb2Rh +bC5vbmNsaWNrID0gZnVuY3Rpb24oZSkgeyBpZiAoZS50YXJnZXQgPT09IG1vZGFsKSBtb2RhbC5y +ZW1vdmUoKTsgfTsKICAgICAgICBtb2RhbC5pbm5lckhUTUwgPQogICAgICAgICAgICAnPGRpdiBz +dHlsZT0iYmFja2dyb3VuZDp2YXIoLS1iZy1jYXJkKTtib3JkZXItcmFkaXVzOjEwcHg7cGFkZGlu +ZzoyMHB4IDI0cHg7bWF4LXdpZHRoOjUyMHB4O3dpZHRoOjk0JTtib3gtc2hhZG93OjAgOHB4IDMy +cHggcmdiYSgwLDAsMCwwLjMpOyI+JyArCiAgICAgICAgICAgICAgICAnPGgzIHN0eWxlPSJjb2xv +cjp2YXIoLS10ZXh0LWhlYWRpbmcpO21hcmdpbi1ib3R0b206MTRweDsiPkluZm9ibG9jayBlaW5m +w7xnZW48L2gzPicgKwoKICAgICAgICAgICAgICAgICc8bGFiZWwgc3R5bGU9ImZvbnQtc2l6ZTox +MnB4O2ZvbnQtd2VpZ2h0OjYwMDtjb2xvcjp2YXIoLS10ZXh0LXNlY29uZGFyeSk7ZGlzcGxheTpi +bG9jazttYXJnaW4tYm90dG9tOjRweDsiPsOcYmVyc2NocmlmdDwvbGFiZWw+JyArCiAgICAgICAg +ICAgICAgICAnPGlucHV0IHR5cGU9InRleHQiIGlkPSJpbmZvYm94VGl0bGUiIHZhbHVlPSJIaW53 +ZWlzIiBwbGFjZWhvbGRlcj0iei5CLiBIaW53ZWlzLCBXaWNodGlnLCBUaXBwLi4uIiAnICsKICAg +ICAgICAgICAgICAgICdzdHlsZT0id2lkdGg6MTAwJTtwYWRkaW5nOjhweCAxMHB4O2JvcmRlcjox +cHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG9yKTtib3JkZXItcmFkaXVzOjRweDtmb250LXNpemU6 +MTRweDtiYWNrZ3JvdW5kOnZhcigtLWJnLWlucHV0KTtjb2xvcjp2YXIoLS10ZXh0LXByaW1hcnkp +O21hcmdpbi1ib3R0b206MTRweDsiPicgKwoKICAgICAgICAgICAgICAgICc8bGFiZWwgc3R5bGU9 +ImZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjYwMDtjb2xvcjp2YXIoLS10ZXh0LXNlY29uZGFy +eSk7ZGlzcGxheTpibG9jazttYXJnaW4tYm90dG9tOjRweDsiPkluaGFsdDwvbGFiZWw+JyArCiAg +ICAgICAgICAgICAgICAnPGRpdiBzdHlsZT0iYm9yZGVyOjFweCBzb2xpZCB2YXIoLS1ib3JkZXIt +Y29sb3IpO2JvcmRlci1yYWRpdXM6NHB4O292ZXJmbG93OmhpZGRlbjttYXJnaW4tYm90dG9tOjE0 +cHg7Ij4nICsKICAgICAgICAgICAgICAgICAgICAnPGRpdiBpZD0iaW5mb2JveFRvb2xiYXIiIHN0 +eWxlPSJkaXNwbGF5OmZsZXg7Z2FwOjRweDtmbGV4LXdyYXA6d3JhcDthbGlnbi1pdGVtczpjZW50 +ZXI7cGFkZGluZzo2cHggOHB4O2JvcmRlci1ib3R0b206MXB4IHNvbGlkIHZhcigtLWJvcmRlci1j +b2xvcik7YmFja2dyb3VuZDp2YXIoLS1iZy1jYXJkLWFsdCwjZjZmOGZhKTsiPicgKwogICAgICAg +ICAgICAgICAgICAgICAgICAnPGJ1dHRvbiBvbmNsaWNrPSJEcml2ZUVkaXRvci5faW5mb2JveENt +ZChcJ3VuZG9cJykiIHRpdGxlPSJSw7xja2fDpG5naWciIHN0eWxlPSInICsgYnRuU3R5bGUgKyAn +Ij4mIzg2MzA7PC9idXR0b24+JyArCiAgICAgICAgICAgICAgICAgICAgICAgICc8YnV0dG9uIG9u +Y2xpY2s9IkRyaXZlRWRpdG9yLl9pbmZvYm94Q21kKFwncmVkb1wnKSIgdGl0bGU9IldpZWRlcmhv +bGVuIiBzdHlsZT0iJyArIGJ0blN0eWxlICsgJyI+JiM4NjMxOzwvYnV0dG9uPicgKwogICAgICAg +ICAgICAgICAgICAgICAgICAnPHNwYW4gc3R5bGU9IndpZHRoOjFweDtoZWlnaHQ6MThweDtiYWNr +Z3JvdW5kOnZhcigtLWJvcmRlci1jb2xvcik7bWFyZ2luOjAgMnB4OyI+PC9zcGFuPicgKwogICAg +ICAgICAgICAgICAgICAgICAgICAnPGJ1dHRvbiBvbmNsaWNrPSJEcml2ZUVkaXRvci5faW5mb2Jv +eENtZChcJ2JvbGRcJykiIHRpdGxlPSJGZXR0IiBzdHlsZT0iJyArIGJ0blN0eWxlQm9sZCArICci +PkI8L2J1dHRvbj4nICsKICAgICAgICAgICAgICAgICAgICAgICAgJzxidXR0b24gb25jbGljaz0i +RHJpdmVFZGl0b3IuX2luZm9ib3hDbWQoXCdpdGFsaWNcJykiIHRpdGxlPSJLdXJzaXYiIHN0eWxl +PSInICsgYnRuU3R5bGVJdGFsaWMgKyAnIj5JPC9idXR0b24+JyArCiAgICAgICAgICAgICAgICAg +ICAgICAgICc8YnV0dG9uIG9uY2xpY2s9IkRyaXZlRWRpdG9yLl9pbmZvYm94Q21kKFwndW5kZXJs +aW5lXCcpIiB0aXRsZT0iVW50ZXJzdHJpY2hlbiIgc3R5bGU9IicgKyBidG5TdHlsZVVuZGVybGlu +ZSArICciPlU8L2J1dHRvbj4nICsKICAgICAgICAgICAgICAgICAgICAgICAgJzxzcGFuIHN0eWxl +PSJ3aWR0aDoxcHg7aGVpZ2h0OjE4cHg7YmFja2dyb3VuZDp2YXIoLS1ib3JkZXItY29sb3IpO21h +cmdpbjowIDJweDsiPjwvc3Bhbj4nICsKICAgICAgICAgICAgICAgICAgICAgICAgJzxidXR0b24g +b25jbGljaz0iRHJpdmVFZGl0b3IuX2luZm9ib3hDbWQoXCdpbnNlcnRVbm9yZGVyZWRMaXN0XCcp +IiB0aXRsZT0iQXVmesOkaGx1bmciIHN0eWxlPSInICsgYnRuU3R5bGUgKyAnIj4mIzgyMjY7IExp +c3RlPC9idXR0b24+JyArCiAgICAgICAgICAgICAgICAgICAgICAgICc8YnV0dG9uIG9uY2xpY2s9 +IkRyaXZlRWRpdG9yLl9pbmZvYm94Q21kKFwnaW5zZXJ0T3JkZXJlZExpc3RcJykiIHRpdGxlPSJO +dW1tZXJpZXJ1bmciIHN0eWxlPSInICsgYnRuU3R5bGUgKyAnIj4xLiBMaXN0ZTwvYnV0dG9uPicg +KwogICAgICAgICAgICAgICAgICAgICAgICAnPHNwYW4gc3R5bGU9IndpZHRoOjFweDtoZWlnaHQ6 +MThweDtiYWNrZ3JvdW5kOnZhcigtLWJvcmRlci1jb2xvcik7bWFyZ2luOjAgMnB4OyI+PC9zcGFu +PicgKwogICAgICAgICAgICAgICAgICAgICAgICAnPHNlbGVjdCBvbmNoYW5nZT0iRHJpdmVFZGl0 +b3IuX2luZm9ib3hDbWQoXCdmb250U2l6ZVwnLHRoaXMudmFsdWUpO3RoaXMuc2VsZWN0ZWRJbmRl +eD0wOyIgdGl0bGU9IlNjaHJpZnRncsO2w59lIiBzdHlsZT0iJyArIHNlbGVjdFN0eWxlICsgJyI+ +JyArCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnPG9wdGlvbiB2YWx1ZT0iIiBkaXNhYmxl +ZCBzZWxlY3RlZD5HcsO2w59lPC9vcHRpb24+JyArCiAgICAgICAgICAgICAgICAgICAgICAgICAg +ICAnPG9wdGlvbiB2YWx1ZT0iMSI+S2xlaW48L29wdGlvbj4nICsKICAgICAgICAgICAgICAgICAg +ICAgICAgICAgICc8b3B0aW9uIHZhbHVlPSIzIj5Ob3JtYWw8L29wdGlvbj4nICsKICAgICAgICAg +ICAgICAgICAgICAgICAgICAgICc8b3B0aW9uIHZhbHVlPSI0Ij5Hcm/Dnzwvb3B0aW9uPicgKwog +ICAgICAgICAgICAgICAgICAgICAgICAgICAgJzxvcHRpb24gdmFsdWU9IjUiPlNlaHIgZ3Jvw588 +L29wdGlvbj4nICsKICAgICAgICAgICAgICAgICAgICAgICAgJzwvc2VsZWN0PicgKwogICAgICAg +ICAgICAgICAgICAgICAgICAnPHNlbGVjdCBvbmNoYW5nZT0iRHJpdmVFZGl0b3IuX2luZm9ib3hD +bWQoXCdmb3JlQ29sb3JcJyx0aGlzLnZhbHVlKTt0aGlzLnNlbGVjdGVkSW5kZXg9MDsiIHRpdGxl +PSJUZXh0ZmFyYmUiIHN0eWxlPSInICsgc2VsZWN0U3R5bGUgKyAnIj4nICsKICAgICAgICAgICAg +ICAgICAgICAgICAgICAgICc8b3B0aW9uIHZhbHVlPSIiIGRpc2FibGVkIHNlbGVjdGVkPkZhcmJl +PC9vcHRpb24+JyArCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnPG9wdGlvbiB2YWx1ZT0i +IzAwMDAwMCIgc3R5bGU9ImNvbG9yOiMwMDAwMDA7Ij5TY2h3YXJ6PC9vcHRpb24+JyArCiAgICAg +ICAgICAgICAgICAgICAgICAgICAgICAnPG9wdGlvbiB2YWx1ZT0iIzJFNEE2MiIgc3R5bGU9ImNv +bG9yOiMyRTRBNjI7Ij5Qb2xpemVpLUJsYXU8L29wdGlvbj4nICsKICAgICAgICAgICAgICAgICAg +ICAgICAgICAgICc8b3B0aW9uIHZhbHVlPSIjM2E3YWEzIiBzdHlsZT0iY29sb3I6IzNhN2FhMzsi +PkJsYXU8L29wdGlvbj4nICsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICc8b3B0aW9uIHZh +bHVlPSIjOGIzYTYyIiBzdHlsZT0iY29sb3I6IzhiM2E2MjsiPkJvcmRlYXV4PC9vcHRpb24+JyAr +CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnPG9wdGlvbiB2YWx1ZT0iI2ZmMDAwMCIgc3R5 +bGU9ImNvbG9yOiNmZjAwMDA7Ij5Sb3Q8L29wdGlvbj4nICsKICAgICAgICAgICAgICAgICAgICAg +ICAgJzwvc2VsZWN0PicgKwogICAgICAgICAgICAgICAgICAgICAgICAnPHNwYW4gc3R5bGU9Indp +ZHRoOjFweDtoZWlnaHQ6MThweDtiYWNrZ3JvdW5kOnZhcigtLWJvcmRlci1jb2xvcik7bWFyZ2lu +OjAgMnB4OyI+PC9zcGFuPicgKwogICAgICAgICAgICAgICAgICAgICAgICAnPGJ1dHRvbiBvbmNs +aWNrPSJEcml2ZUVkaXRvci5faW5mb2JveENtZChcJ2luc2VydEhvcml6b250YWxSdWxlXCcpIiB0 +aXRsZT0iVHJlbm5saW5pZSIgc3R5bGU9IicgKyBidG5TdHlsZSArICciPuKAlSBMaW5pZTwvYnV0 +dG9uPicgKwogICAgICAgICAgICAgICAgICAgICc8L2Rpdj4nICsKICAgICAgICAgICAgICAgICAg +ICAnPGRpdiBpZD0iaW5mb2JveENvbnRlbnQiIGNvbnRlbnRlZGl0YWJsZT0idHJ1ZSIgJyArCiAg +ICAgICAgICAgICAgICAgICAgJ3N0eWxlPSJwYWRkaW5nOjEwcHggMTJweDttaW4taGVpZ2h0OjEw +MHB4O21heC1oZWlnaHQ6MjUwcHg7b3ZlcmZsb3cteTphdXRvO2ZvbnQtc2l6ZToxNHB4O2xpbmUt +aGVpZ2h0OjEuNjtjb2xvcjp2YXIoLS10ZXh0LXByaW1hcnkpO2JhY2tncm91bmQ6dmFyKC0tYmct +aW5wdXQpO291dGxpbmU6bm9uZTsiPjwvZGl2PicgKwogICAgICAgICAgICAgICAgJzwvZGl2Picg +KwoKICAgICAgICAgICAgICAgICc8ZGl2IHN0eWxlPSJkaXNwbGF5OmZsZXg7Z2FwOjhweDtqdXN0 +aWZ5LWNvbnRlbnQ6ZmxleC1lbmQ7Ij4nICsKICAgICAgICAgICAgICAgICAgICAnPGJ1dHRvbiBv +bmNsaWNrPSJ0aGlzLmNsb3Nlc3QoXCdkaXZbc3R5bGVdXCcpLnBhcmVudEVsZW1lbnQucmVtb3Zl +KCkiIHN0eWxlPSJwYWRkaW5nOjhweCAxNnB4O2JvcmRlci1yYWRpdXM6NHB4O2JvcmRlcjoxcHgg +c29saWQgdmFyKC0tYm9yZGVyLWNvbG9yKTtiYWNrZ3JvdW5kOnZhcigtLWJnLWNhcmQpO2NvbG9y +OnZhcigtLXRleHQtcHJpbWFyeSk7Y3Vyc29yOnBvaW50ZXI7Ij5BYmJyZWNoZW48L2J1dHRvbj4n +ICsKICAgICAgICAgICAgICAgICAgICAnPGJ1dHRvbiBvbmNsaWNrPSJEcml2ZUVkaXRvci5fY29u +ZmlybUluZm9ib3goKSIgc3R5bGU9InBhZGRpbmc6OHB4IDE2cHg7Ym9yZGVyLXJhZGl1czo0cHg7 +Ym9yZGVyOm5vbmU7YmFja2dyb3VuZDp2YXIoLS10ZXh0LWhlYWRpbmcpO2NvbG9yOndoaXRlO2N1 +cnNvcjpwb2ludGVyO2ZvbnQtd2VpZ2h0OjYwMDsiPkVpbmbDvGdlbjwvYnV0dG9uPicgKwogICAg +ICAgICAgICAgICAgJzwvZGl2PicgKwogICAgICAgICAgICAnPC9kaXY+JzsKICAgICAgICB0aGlz +Ll9pbmZvYm94TW9kYWwgPSBtb2RhbDsKICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxk +KG1vZGFsKTsKICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewogICAgICAgICAgICBkb2N1 +bWVudC5nZXRFbGVtZW50QnlJZCgnaW5mb2JveFRpdGxlJykuc2VsZWN0KCk7CiAgICAgICAgICAg +IC8vIEZva3VzLUhhbmRsaW5nOiBUb29sYmFyLUJ1dHRvbnMgc29sbGVuIEZva3VzIGltIENvbnRl +bnQgbGFzc2VuCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbmZvYm94VG9v +bGJhcicpLmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlZG93bicsIGZ1bmN0aW9uKGUpIHsKICAgICAg +ICAgICAgICAgIGlmIChlLnRhcmdldC50YWdOYW1lID09PSAnQlVUVE9OJykgZS5wcmV2ZW50RGVm +YXVsdCgpOwogICAgICAgICAgICB9KTsKICAgICAgICB9LCA1MCk7CiAgICB9LAoKICAgIF9pbmZv +Ym94TW9kYWw6IG51bGwsCgogICAgLy8gRm9ybWF0aWVydW5nc2JlZmVobCBpbSBJbmZvYm94LUNv +bnRlbnRlZGl0YWJsZSBhdXNmdWVocmVuCiAgICBfaW5mb2JveENtZChjbWQsIHZhbHVlKSB7CiAg +ICAgICAgdmFyIGNvbnRlbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5mb2JveENvbnRl +bnQnKTsKICAgICAgICBpZiAoIWNvbnRlbnQpIHJldHVybjsKICAgICAgICBjb250ZW50LmZvY3Vz +KCk7CiAgICAgICAgZG9jdW1lbnQuZXhlY0NvbW1hbmQoY21kLCBmYWxzZSwgdmFsdWUgfHwgbnVs +bCk7CiAgICB9LAoKICAgIF9jb25maXJtSW5mb2JveCgpIHsKICAgICAgICB2YXIgdGl0bGVJbnB1 +dCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbmZvYm94VGl0bGUnKTsKICAgICAgICB2YXIg +Y29udGVudEVsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2luZm9ib3hDb250ZW50Jyk7CiAg +ICAgICAgdmFyIHRpdGxlID0gdGl0bGVJbnB1dCA/IHRpdGxlSW5wdXQudmFsdWUudHJpbSgpIDog +J0hpbndlaXMnOwogICAgICAgIGlmICghdGl0bGUpIHRpdGxlID0gJ0hpbndlaXMnOwogICAgICAg +IHZhciBjb250ZW50ID0gY29udGVudEVsID8gY29udGVudEVsLmlubmVySFRNTC50cmltKCkgOiAn +JzsKICAgICAgICBpZiAoIWNvbnRlbnQgfHwgY29udGVudCA9PT0gJzxicj4nKSBjb250ZW50ID0g +JzxwPlRleHQgaGllciBlaW5nZWJlbi4uLjwvcD4nOwoKICAgICAgICAvLyBNb2RhbCBzY2hsaWVz +c2VuCiAgICAgICAgaWYgKHRoaXMuX2luZm9ib3hNb2RhbCkgeyB0aGlzLl9pbmZvYm94TW9kYWwu +cmVtb3ZlKCk7IHRoaXMuX2luZm9ib3hNb2RhbCA9IG51bGw7IH0KCiAgICAgICAgdmFyIGh0bWwg +PSAnPGRpdiBjbGFzcz0iZHJpdmUtaW5mb2JveCI+PGgzPicgKyBEcml2ZVBvcnRhbC5lc2NhcGVI +VE1MKHRpdGxlKSArICc8L2gzPicgKyBjb250ZW50ICsgJzwvZGl2PjxwPjxicj48L3A+JzsKCiAg +ICAgICAgdmFyIGVkaXRvciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdlZGl0b3JJbnB1dCcp +OwogICAgICAgIGVkaXRvci5mb2N1cygpOwogICAgICAgIGlmICh0aGlzLl9pbmZvYm94UmFuZ2Up +IHsKICAgICAgICAgICAgdmFyIHNlbCA9IHdpbmRvdy5nZXRTZWxlY3Rpb24oKTsKICAgICAgICAg +ICAgc2VsLnJlbW92ZUFsbFJhbmdlcygpOwogICAgICAgICAgICBzZWwuYWRkUmFuZ2UodGhpcy5f +aW5mb2JveFJhbmdlKTsKICAgICAgICAgICAgdGhpcy5faW5mb2JveFJhbmdlID0gbnVsbDsKICAg +ICAgICB9CiAgICAgICAgZG9jdW1lbnQuZXhlY0NvbW1hbmQoJ2luc2VydEhUTUwnLCBmYWxzZSwg +aHRtbCk7CiAgICAgICAgdGhpcy5zYXZlU3RhdGUoKTsKICAgIH0sCgogICAgLy8gLS0tIFdpY2h0 +aWctQmxvY2sgZWluZnVlZ2VuIC0tLQogICAgX2ltcG9ydGFudE1vZGFsOiBudWxsLAoKICAgIGlu +c2VydEltcG9ydGFudCgpIHsKICAgICAgICB2YXIgc2VsID0gd2luZG93LmdldFNlbGVjdGlvbigp +OwogICAgICAgIHRoaXMuX2ltcG9ydGFudFJhbmdlID0gKHNlbCAmJiBzZWwucmFuZ2VDb3VudCkg +PyBzZWwuZ2V0UmFuZ2VBdCgwKS5jbG9uZVJhbmdlKCkgOiBudWxsOwoKICAgICAgICB2YXIgbW9k +YWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKICAgICAgICBtb2RhbC5zdHlsZS5j +c3NUZXh0ID0gJ3Bvc2l0aW9uOmZpeGVkO3RvcDowO2xlZnQ6MDt3aWR0aDoxMDAlO2hlaWdodDox +MDAlO2JhY2tncm91bmQ6cmdiYSgwLDAsMCwwLjUpO3otaW5kZXg6MTA1MDA7ZGlzcGxheTpmbGV4 +O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyOyc7CiAgICAgICAgbW9k +YWwub25jbGljayA9IGZ1bmN0aW9uKGUpIHsgaWYgKGUudGFyZ2V0ID09PSBtb2RhbCkgbW9kYWwu +cmVtb3ZlKCk7IH07CiAgICAgICAgbW9kYWwuaW5uZXJIVE1MID0KICAgICAgICAgICAgJzxkaXYg +c3R5bGU9ImJhY2tncm91bmQ6dmFyKC0tYmctY2FyZCk7Ym9yZGVyLXJhZGl1czoxMHB4O3BhZGRp +bmc6MjBweCAyNHB4O21heC13aWR0aDo1MjBweDt3aWR0aDo5NCU7Ym94LXNoYWRvdzowIDhweCAz +MnB4IHJnYmEoMCwwLDAsMC4zKTsiPicgKwogICAgICAgICAgICAgICAgJzxkaXYgc3R5bGU9ImRp +c3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjEwcHg7bWFyZ2luLWJvdHRvbToxNHB4 +OyI+JyArCiAgICAgICAgICAgICAgICAgICAgJzxpbWcgc3JjPSJjc3MvaWNvbnMvaW1wb3J0YW50 +LnBuZyIgc3R5bGU9IndpZHRoOjIycHg7aGVpZ2h0OjIycHg7Ij4nICsKICAgICAgICAgICAgICAg +ICAgICAnPGgzIHN0eWxlPSJjb2xvcjp2YXIoLS10ZXh0LWhlYWRpbmcpO21hcmdpbjowOyI+V2lj +aHRpZ2VuIEhpbndlaXMgZWluZnVlZ2VuPC9oMz4nICsKICAgICAgICAgICAgICAgICc8L2Rpdj4n +ICsKICAgICAgICAgICAgICAgICc8cCBzdHlsZT0iZm9udC1zaXplOjEycHg7Y29sb3I6dmFyKC0t +dGV4dC1tdXRlZCk7bWFyZ2luLWJvdHRvbToxMnB4OyI+RGVyIFRleHQgd2lyZCBhbHMgYXVmZmFl +bGxpZ2VyIEJsb2NrIGltIEFydGlrZWwgZGFyZ2VzdGVsbHQsIHVtIGF1ZiBiZXNvbmRlcnMgd2lj +aHRpZ2UgSW5mb3JtYXRpb25lbiBoaW56dXdlaXNlbi48L3A+JyArCiAgICAgICAgICAgICAgICAn +PGxhYmVsIHN0eWxlPSJmb250LXNpemU6MTJweDtmb250LXdlaWdodDo2MDA7Y29sb3I6dmFyKC0t +dGV4dC1zZWNvbmRhcnkpO2Rpc3BsYXk6YmxvY2s7bWFyZ2luLWJvdHRvbTo0cHg7Ij5IaW53ZWlz +dGV4dDwvbGFiZWw+JyArCiAgICAgICAgICAgICAgICAnPHRleHRhcmVhIGlkPSJpbXBvcnRhbnRU +ZXh0IiByb3dzPSI0IiBwbGFjZWhvbGRlcj0iei5CLiBCaXR0ZSBiZWFjaHRlbiBTaWUsIGRhc3Mu +Li4iICcgKwogICAgICAgICAgICAgICAgJ3N0eWxlPSJ3aWR0aDoxMDAlO3BhZGRpbmc6MTBweCAx +MnB4O2JvcmRlcjoxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG9yKTtib3JkZXItcmFkaXVzOjRw +eDtmb250LXNpemU6MTRweDtsaW5lLWhlaWdodDoxLjY7YmFja2dyb3VuZDp2YXIoLS1iZy1pbnB1 +dCk7Y29sb3I6dmFyKC0tdGV4dC1wcmltYXJ5KTtyZXNpemU6dmVydGljYWw7Ij48L3RleHRhcmVh +PicgKwogICAgICAgICAgICAgICAgJzxkaXYgc3R5bGU9ImRpc3BsYXk6ZmxleDtnYXA6OHB4O2p1 +c3RpZnktY29udGVudDpmbGV4LWVuZDttYXJnaW4tdG9wOjE0cHg7Ij4nICsKICAgICAgICAgICAg +ICAgICAgICAnPGJ1dHRvbiBvbmNsaWNrPSJ0aGlzLmNsb3Nlc3QoXCdkaXZbc3R5bGVdXCcpLnBh +cmVudEVsZW1lbnQucmVtb3ZlKCkiIHN0eWxlPSJwYWRkaW5nOjhweCAxNnB4O2JvcmRlci1yYWRp +dXM6NHB4O2JvcmRlcjoxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG9yKTtiYWNrZ3JvdW5kOnZh +cigtLWJnLWNhcmQpO2NvbG9yOnZhcigtLXRleHQtcHJpbWFyeSk7Y3Vyc29yOnBvaW50ZXI7Ij5B +YmJyZWNoZW48L2J1dHRvbj4nICsKICAgICAgICAgICAgICAgICAgICAnPGJ1dHRvbiBvbmNsaWNr +PSJEcml2ZUVkaXRvci5fY29uZmlybUltcG9ydGFudCgpIiBzdHlsZT0icGFkZGluZzo4cHggMTZw +eDtib3JkZXItcmFkaXVzOjRweDtib3JkZXI6bm9uZTtiYWNrZ3JvdW5kOiMxYTIzMzI7Y29sb3I6 +d2hpdGU7Y3Vyc29yOnBvaW50ZXI7Zm9udC13ZWlnaHQ6NjAwOyI+RWluZnVlZ2VuPC9idXR0b24+ +JyArCiAgICAgICAgICAgICAgICAnPC9kaXY+JyArCiAgICAgICAgICAgICc8L2Rpdj4nOwogICAg +ICAgIHRoaXMuX2ltcG9ydGFudE1vZGFsID0gbW9kYWw7CiAgICAgICAgZG9jdW1lbnQuYm9keS5h +cHBlbmRDaGlsZChtb2RhbCk7CiAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKICAgICAg +ICAgICAgdmFyIHRhID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2ltcG9ydGFudFRleHQnKTsK +ICAgICAgICAgICAgaWYgKHRhKSB0YS5mb2N1cygpOwogICAgICAgIH0sIDUwKTsKICAgIH0sCgog +ICAgX2NvbmZpcm1JbXBvcnRhbnQoKSB7CiAgICAgICAgdmFyIHRleHRFbCA9IGRvY3VtZW50Lmdl +dEVsZW1lbnRCeUlkKCdpbXBvcnRhbnRUZXh0Jyk7CiAgICAgICAgdmFyIHRleHQgPSB0ZXh0RWwg +PyB0ZXh0RWwudmFsdWUudHJpbSgpIDogJyc7CiAgICAgICAgaWYgKCF0ZXh0KSB7CiAgICAgICAg +ICAgIHNob3dUb2FzdCgnQml0dGUgZWluZW4gSGlud2Vpc3RleHQgZWluZ2ViZW4nLCAnd2Fybmlu +ZycpOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQoKICAgICAgICAvLyBNb2RhbCBzY2hs +aWVzc2VuCiAgICAgICAgaWYgKHRoaXMuX2ltcG9ydGFudE1vZGFsKSB7IHRoaXMuX2ltcG9ydGFu +dE1vZGFsLnJlbW92ZSgpOyB0aGlzLl9pbXBvcnRhbnRNb2RhbCA9IG51bGw7IH0KCiAgICAgICAg +dmFyIGNvbnRlbnQgPSBEcml2ZVBvcnRhbC5lc2NhcGVIVE1MKHRleHQpLnJlcGxhY2UoL1xuL2cs +ICc8YnI+Jyk7CiAgICAgICAgdmFyIGh0bWwgPSAnPGRpdiBjbGFzcz0iZHJpdmUtaW1wb3J0YW50 +IiBjb250ZW50ZWRpdGFibGU9ImZhbHNlIj4nICsKICAgICAgICAgICAgJzxkaXYgY2xhc3M9ImRy +aXZlLWltcG9ydGFudC1oZWFkZXIiPjxpbWcgc3JjPSJjc3MvaWNvbnMvaW1wb3J0YW50LnBuZyI+ +IFdpY2h0aWc8L2Rpdj4nICsKICAgICAgICAgICAgJzxkaXYgY2xhc3M9ImRyaXZlLWltcG9ydGFu +dC1ib2R5Ij4nICsgY29udGVudCArICc8L2Rpdj4nICsKICAgICAgICAnPC9kaXY+PHA+PGJyPjwv +cD4nOwoKICAgICAgICB2YXIgZWRpdG9yID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2VkaXRv +cklucHV0Jyk7CiAgICAgICAgZWRpdG9yLmZvY3VzKCk7CiAgICAgICAgaWYgKHRoaXMuX2ltcG9y +dGFudFJhbmdlKSB7CiAgICAgICAgICAgIHZhciBzZWwgPSB3aW5kb3cuZ2V0U2VsZWN0aW9uKCk7 +CiAgICAgICAgICAgIHNlbC5yZW1vdmVBbGxSYW5nZXMoKTsKICAgICAgICAgICAgc2VsLmFkZFJh +bmdlKHRoaXMuX2ltcG9ydGFudFJhbmdlKTsKICAgICAgICAgICAgdGhpcy5faW1wb3J0YW50UmFu +Z2UgPSBudWxsOwogICAgICAgIH0KICAgICAgICBkb2N1bWVudC5leGVjQ29tbWFuZCgnaW5zZXJ0 +SFRNTCcsIGZhbHNlLCBodG1sKTsKICAgICAgICB0aGlzLnNhdmVTdGF0ZSgpOwogICAgfSwKCiAg +ICAvLyAtLS0gRm9ybWF0aWVydW5nc2JlZmVobGUgLS0tCiAgICBoZWFkaW5nKHRhZykgewogICAg +ICAgIGNvbnN0IGlucHV0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2VkaXRvcklucHV0Jyk7 +CiAgICAgICAgaW5wdXQuZm9jdXMoKTsKICAgICAgICBjb25zdCBzZWwgPSB3aW5kb3cuZ2V0U2Vs +ZWN0aW9uKCk7CiAgICAgICAgaWYgKCFzZWwucmFuZ2VDb3VudCkgcmV0dXJuOwogICAgICAgIGNv +bnN0IHJhbmdlID0gc2VsLmdldFJhbmdlQXQoMCk7CgogICAgICAgIC8vIEFrdHVlbGxlbiBCbG9j +ayBmaW5kZW4gKFAsIERJViBvZGVyIGJlcmVpdHMgZWluIEhlYWRpbmcpCiAgICAgICAgbGV0IGJs +b2NrID0gcmFuZ2Uuc3RhcnRDb250YWluZXI7CiAgICAgICAgd2hpbGUgKGJsb2NrICYmIGJsb2Nr +ICE9PSBpbnB1dCAmJiAhWydQJywnRElWJywnSDEnLCdIMicsJ0gzJywnSDQnLCdINScsJ0g2J10u +aW5jbHVkZXMoYmxvY2subm9kZU5hbWUpKSB7CiAgICAgICAgICAgIGJsb2NrID0gYmxvY2sucGFy +ZW50Tm9kZTsKICAgICAgICB9CgogICAgICAgIGlmICghdGFnKSB7CiAgICAgICAgICAgIC8vICJB +YnNhdHoiIGdld2FlaGx0OiBIZWFkaW5nIHp1cnVlY2sgaW4gPHA+IHVtd2FuZGVsbgogICAgICAg +ICAgICBpZiAoYmxvY2sgJiYgYmxvY2sgIT09IGlucHV0ICYmIFsnSDEnLCdIMicsJ0gzJywnSDQn +LCdINScsJ0g2J10uaW5jbHVkZXMoYmxvY2subm9kZU5hbWUpKSB7CiAgICAgICAgICAgICAgICBj +b25zdCBwID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgncCcpOwogICAgICAgICAgICAgICAgcC5p +bm5lckhUTUwgPSBibG9jay5pbm5lckhUTUw7CiAgICAgICAgICAgICAgICBibG9jay5wYXJlbnRO +b2RlLnJlcGxhY2VDaGlsZChwLCBibG9jayk7CiAgICAgICAgICAgICAgICBjb25zdCBuZXdSYW5n +ZSA9IGRvY3VtZW50LmNyZWF0ZVJhbmdlKCk7CiAgICAgICAgICAgICAgICBuZXdSYW5nZS5zZWxl +Y3ROb2RlQ29udGVudHMocCk7CiAgICAgICAgICAgICAgICBuZXdSYW5nZS5jb2xsYXBzZShmYWxz +ZSk7CiAgICAgICAgICAgICAgICBzZWwucmVtb3ZlQWxsUmFuZ2VzKCk7CiAgICAgICAgICAgICAg +ICBzZWwuYWRkUmFuZ2UobmV3UmFuZ2UpOwogICAgICAgICAgICAgICAgdGhpcy5zYXZlU3RhdGUo +KTsKICAgICAgICAgICAgfQogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQoKICAgICAgICBp +ZiAoYmxvY2sgJiYgYmxvY2sgIT09IGlucHV0KSB7CiAgICAgICAgICAgIC8vIEJlc3RlaGVuZGVu +IEJsb2NrIGluIEhlYWRpbmcgdW13YW5kZWxuCiAgICAgICAgICAgIGNvbnN0IGhlYWRpbmcgPSBk +b2N1bWVudC5jcmVhdGVFbGVtZW50KHRhZyk7CiAgICAgICAgICAgIGhlYWRpbmcuaW5uZXJIVE1M +ID0gYmxvY2suaW5uZXJIVE1MOwogICAgICAgICAgICBibG9jay5wYXJlbnROb2RlLnJlcGxhY2VD +aGlsZChoZWFkaW5nLCBibG9jayk7CiAgICAgICAgICAgIC8vIEN1cnNvciBhbnMgRW5kZSBzZXR6 +ZW4KICAgICAgICAgICAgY29uc3QgbmV3UmFuZ2UgPSBkb2N1bWVudC5jcmVhdGVSYW5nZSgpOwog +ICAgICAgICAgICBuZXdSYW5nZS5zZWxlY3ROb2RlQ29udGVudHMoaGVhZGluZyk7CiAgICAgICAg +ICAgIG5ld1JhbmdlLmNvbGxhcHNlKGZhbHNlKTsKICAgICAgICAgICAgc2VsLnJlbW92ZUFsbFJh +bmdlcygpOwogICAgICAgICAgICBzZWwuYWRkUmFuZ2UobmV3UmFuZ2UpOwogICAgICAgIH0gZWxz +ZSB7CiAgICAgICAgICAgIC8vIEtlaW4gQmxvY2s6IE5ldWVzIEhlYWRpbmcgZWluZnVlZ2VuCiAg +ICAgICAgICAgIGNvbnN0IGhlYWRpbmcgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KHRhZyk7CiAg +ICAgICAgICAgIGhlYWRpbmcudGV4dENvbnRlbnQgPSBzZWwudG9TdHJpbmcoKSB8fCAnw5xiZXJz +Y2hyaWZ0JzsKICAgICAgICAgICAgcmFuZ2UuZGVsZXRlQ29udGVudHMoKTsKICAgICAgICAgICAg +cmFuZ2UuaW5zZXJ0Tm9kZShoZWFkaW5nKTsKICAgICAgICAgICAgLy8gQ3Vyc29yIGFucyBFbmRl +CiAgICAgICAgICAgIGNvbnN0IG5ld1JhbmdlID0gZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKTsKICAg +ICAgICAgICAgbmV3UmFuZ2Uuc2VsZWN0Tm9kZUNvbnRlbnRzKGhlYWRpbmcpOwogICAgICAgICAg +ICBuZXdSYW5nZS5jb2xsYXBzZShmYWxzZSk7CiAgICAgICAgICAgIHNlbC5yZW1vdmVBbGxSYW5n +ZXMoKTsKICAgICAgICAgICAgc2VsLmFkZFJhbmdlKG5ld1JhbmdlKTsKICAgICAgICB9CiAgICAg +ICAgdGhpcy5zYXZlU3RhdGUoKTsKICAgIH0sCgogICAgY29tbWFuZChjbWQpIHsKICAgICAgICBj +b25zdCBpbnB1dCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdlZGl0b3JJbnB1dCcpOwogICAg +ICAgIGlucHV0LmZvY3VzKCk7CiAgICAgICAgY29uc3Qgc2VsID0gd2luZG93LmdldFNlbGVjdGlv +bigpOwogICAgICAgIGlmICghc2VsLnJhbmdlQ291bnQpIHJldHVybjsKCiAgICAgICAgc3dpdGNo +IChjbWQpIHsKICAgICAgICAgICAgY2FzZSAnYm9sZCc6IHRoaXMud3JhcFNlbGVjdGlvbignc3Ry +b25nJyk7IGJyZWFrOwogICAgICAgICAgICBjYXNlICdpdGFsaWMnOiB0aGlzLndyYXBTZWxlY3Rp +b24oJ2VtJyk7IGJyZWFrOwogICAgICAgICAgICBjYXNlICd1bmRlcmxpbmUnOiB0aGlzLndyYXBT +ZWxlY3Rpb24oJ3UnKTsgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgJ2luc2VydFVub3JkZXJlZExp +c3QnOiB0aGlzLmluc2VydExpc3QoJ3VsJyk7IGJyZWFrOwogICAgICAgICAgICBjYXNlICdpbnNl +cnRPcmRlcmVkTGlzdCc6IHRoaXMuaW5zZXJ0TGlzdCgnb2wnKTsgYnJlYWs7CiAgICAgICAgfQog +ICAgICAgIGlucHV0LmZvY3VzKCk7CiAgICB9LAoKICAgIHdyYXBTZWxlY3Rpb24odGFnTmFtZSkg +ewogICAgICAgIGNvbnN0IHNlbCA9IHdpbmRvdy5nZXRTZWxlY3Rpb24oKTsKICAgICAgICBpZiAo +IXNlbC5yYW5nZUNvdW50KSByZXR1cm47CiAgICAgICAgY29uc3QgcmFuZ2UgPSBzZWwuZ2V0UmFu +Z2VBdCgwKTsKICAgICAgICBpZiAocmFuZ2UuY29sbGFwc2VkKSByZXR1cm47CiAgICAgICAgY29u +c3QgVEFHID0gdGFnTmFtZS50b1VwcGVyQ2FzZSgpOwoKICAgICAgICB0cnkgewogICAgICAgICAg +ICAvLyBQcnVlZmVuIG9iIGRpZSBnZXNhbXRlIFNlbGVrdGlvbiBiZXJlaXRzIGluIGRpZXNlbSBU +YWcgbGllZ3QKICAgICAgICAgICAgbGV0IG5vZGUgPSByYW5nZS5jb21tb25BbmNlc3RvckNvbnRh +aW5lcjsKICAgICAgICAgICAgbGV0IGV4aXN0aW5nID0gbnVsbDsKICAgICAgICAgICAgd2hpbGUg +KG5vZGUgJiYgbm9kZS5ub2RlVHlwZSAhPT0gTm9kZS5ET0NVTUVOVF9OT0RFKSB7CiAgICAgICAg +ICAgICAgICBpZiAobm9kZS5ub2RlVHlwZSA9PT0gTm9kZS5FTEVNRU5UX05PREUgJiYgbm9kZS50 +YWdOYW1lID09PSBUQUcpIHsKICAgICAgICAgICAgICAgICAgICBleGlzdGluZyA9IG5vZGU7CiAg +ICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg +ICBub2RlID0gbm9kZS5wYXJlbnROb2RlOwogICAgICAgICAgICB9CgogICAgICAgICAgICBpZiAo +ZXhpc3RpbmcpIHsKICAgICAgICAgICAgICAgIC8vIFRvZ2dsZSBPRkY6IFRhZyBlbnRmZXJuZW4s +IEtpbmRlciBiZWliZWhhbHRlbgogICAgICAgICAgICAgICAgY29uc3QgcGFyZW50ID0gZXhpc3Rp +bmcucGFyZW50Tm9kZTsKICAgICAgICAgICAgICAgIGNvbnN0IGNoaWxkcmVuID0gQXJyYXkuZnJv +bShleGlzdGluZy5jaGlsZE5vZGVzKTsKICAgICAgICAgICAgICAgIGNvbnN0IGZpcnN0ID0gY2hp +bGRyZW5bMF0sIGxhc3QgPSBjaGlsZHJlbltjaGlsZHJlbi5sZW5ndGggLSAxXTsKICAgICAgICAg +ICAgICAgIHdoaWxlIChleGlzdGluZy5maXJzdENoaWxkKSBwYXJlbnQuaW5zZXJ0QmVmb3JlKGV4 +aXN0aW5nLmZpcnN0Q2hpbGQsIGV4aXN0aW5nKTsKICAgICAgICAgICAgICAgIHBhcmVudC5yZW1v +dmVDaGlsZChleGlzdGluZyk7CiAgICAgICAgICAgICAgICBpZiAoZmlyc3QgJiYgbGFzdCkgewog +ICAgICAgICAgICAgICAgICAgIHJhbmdlLnNldFN0YXJ0QmVmb3JlKGZpcnN0KTsKICAgICAgICAg +ICAgICAgICAgICByYW5nZS5zZXRFbmRBZnRlcihsYXN0KTsKICAgICAgICAgICAgICAgICAgICBz +ZWwucmVtb3ZlQWxsUmFuZ2VzKCk7CiAgICAgICAgICAgICAgICAgICAgc2VsLmFkZFJhbmdlKHJh +bmdlKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAg +ICAgIGNvbnN0IGZyYWcgPSByYW5nZS5leHRyYWN0Q29udGVudHMoKTsKICAgICAgICAgICAgICAg +IC8vIEJlcmVpdHMgdm9yaGFuZGVuZSBnbGVpY2hlIFRhZ3MgaW0gRnJhZ21lbnQgYXVmbG9lc2Vu +ICh2ZXJoaW5kZXJ0IFZlcnNjaGFjaHRlbHVuZykKICAgICAgICAgICAgICAgIGZyYWcucXVlcnlT +ZWxlY3RvckFsbCh0YWdOYW1lKS5mb3JFYWNoKGZ1bmN0aW9uKGlubmVyKSB7CiAgICAgICAgICAg +ICAgICAgICAgd2hpbGUgKGlubmVyLmZpcnN0Q2hpbGQpIGlubmVyLnBhcmVudE5vZGUuaW5zZXJ0 +QmVmb3JlKGlubmVyLmZpcnN0Q2hpbGQsIGlubmVyKTsKICAgICAgICAgICAgICAgICAgICBpbm5l +ci5yZW1vdmUoKTsKICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgY29uc3Qgd3Jh +cHBlciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQodGFnTmFtZSk7CiAgICAgICAgICAgICAgICB3 +cmFwcGVyLmFwcGVuZENoaWxkKGZyYWcpOwogICAgICAgICAgICAgICAgcmFuZ2UuaW5zZXJ0Tm9k +ZSh3cmFwcGVyKTsKICAgICAgICAgICAgICAgIHJhbmdlLnNlbGVjdE5vZGVDb250ZW50cyh3cmFw +cGVyKTsKICAgICAgICAgICAgICAgIHNlbC5yZW1vdmVBbGxSYW5nZXMoKTsKICAgICAgICAgICAg +ICAgIHNlbC5hZGRSYW5nZShyYW5nZSk7CiAgICAgICAgICAgIH0KICAgICAgICB9IGNhdGNoIChl +KSB7CiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ1dyYXAgZXJyb3I6JywgZSk7CiAgICAgICAg +fQogICAgfSwKCiAgICBpbnNlcnRMaXN0KGxpc3RUeXBlKSB7CiAgICAgICAgY29uc3Qgc2VsID0g +d2luZG93LmdldFNlbGVjdGlvbigpOwogICAgICAgIGlmICghc2VsLnJhbmdlQ291bnQpIHJldHVy +bjsKICAgICAgICBjb25zdCByYW5nZSA9IHNlbC5nZXRSYW5nZUF0KDApOwogICAgICAgIGNvbnN0 +IGxpc3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KGxpc3RUeXBlKTsKCiAgICAgICAgaWYgKCFy +YW5nZS5jb2xsYXBzZWQpIHsKICAgICAgICAgICAgY29uc3QgZnJhZyA9IHJhbmdlLmV4dHJhY3RD +b250ZW50cygpOwogICAgICAgICAgICAvLyBUZXh0IGF1ZiBaZWlsZW51bWJydWVjaGUgYXVmdGVp +bGVuIGZ1ZXIgc2VwYXJhdGUgTEktRWxlbWVudGUKICAgICAgICAgICAgY29uc3QgdGVtcERpdiA9 +IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwogICAgICAgICAgICB0ZW1wRGl2LmFwcGVu +ZENoaWxkKGZyYWcpOwogICAgICAgICAgICBjb25zdCB0ZXh0ID0gdGVtcERpdi5pbm5lckhUTUw7 +CiAgICAgICAgICAgIC8vIFNwbGl0IGF1ZiA8YnI+LCBcbiBvZGVyIEJsb2NrLUVsZW1lbnRlCiAg +ICAgICAgICAgIGNvbnN0IGxpbmVzID0gdGV4dC5zcGxpdCgvPGJyXHMqXC8/Pi9naSkubWFwKGZ1 +bmN0aW9uKGwpIHsgcmV0dXJuIGwudHJpbSgpOyB9KS5maWx0ZXIoZnVuY3Rpb24obCkgeyByZXR1 +cm4gbC5sZW5ndGggPiAwOyB9KTsKICAgICAgICAgICAgaWYgKGxpbmVzLmxlbmd0aCA+IDEpIHsK +ICAgICAgICAgICAgICAgIGxpbmVzLmZvckVhY2goZnVuY3Rpb24obGluZSkgewogICAgICAgICAg +ICAgICAgICAgIGNvbnN0IGxpID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnbGknKTsKICAgICAg +ICAgICAgICAgICAgICBsaS5pbm5lckhUTUwgPSBsaW5lOwogICAgICAgICAgICAgICAgICAgIGxp +c3QuYXBwZW5kQ2hpbGQobGkpOwogICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIH0gZWxz +ZSB7CiAgICAgICAgICAgICAgICBjb25zdCBsaSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2xp +Jyk7CiAgICAgICAgICAgICAgICBsaS5hcHBlbmRDaGlsZCh0ZW1wRGl2LmZpcnN0Q2hpbGQgfHwg +ZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUodGVtcERpdi50ZXh0Q29udGVudCkpOwogICAgICAgICAg +ICAgICAgd2hpbGUgKHRlbXBEaXYuZmlyc3RDaGlsZCkgbGkuYXBwZW5kQ2hpbGQodGVtcERpdi5m +aXJzdENoaWxkKTsKICAgICAgICAgICAgICAgIGxpc3QuYXBwZW5kQ2hpbGQobGkpOwogICAgICAg +ICAgICB9CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgY29uc3QgbGkgPSBkb2N1bWVudC5j +cmVhdGVFbGVtZW50KCdsaScpOwogICAgICAgICAgICBsaS5hcHBlbmRDaGlsZChkb2N1bWVudC5j +cmVhdGVUZXh0Tm9kZSgnXHUwMEEwJykpOwogICAgICAgICAgICBsaXN0LmFwcGVuZENoaWxkKGxp +KTsKICAgICAgICB9CgogICAgICAgIHJhbmdlLmRlbGV0ZUNvbnRlbnRzKCk7CiAgICAgICAgcmFu +Z2UuaW5zZXJ0Tm9kZShsaXN0KTsKICAgICAgICBjb25zdCBsYXN0TGkgPSBsaXN0LnF1ZXJ5U2Vs +ZWN0b3IoJ2xpOmxhc3QtY2hpbGQnKTsKICAgICAgICBpZiAobGFzdExpKSB7CiAgICAgICAgICAg +IHJhbmdlLnNlbGVjdE5vZGVDb250ZW50cyhsYXN0TGkpOwogICAgICAgICAgICByYW5nZS5jb2xs +YXBzZShmYWxzZSk7CiAgICAgICAgfQogICAgICAgIHNlbC5yZW1vdmVBbGxSYW5nZXMoKTsKICAg +ICAgICBzZWwuYWRkUmFuZ2UocmFuZ2UpOwogICAgfSwKCiAgICBmb250U2l6ZShzaXplKSB7CiAg +ICAgICAgaWYgKCFzaXplKSByZXR1cm47CiAgICAgICAgY29uc3QgaW5wdXQgPSBkb2N1bWVudC5n +ZXRFbGVtZW50QnlJZCgnZWRpdG9ySW5wdXQnKTsKICAgICAgICBpbnB1dC5mb2N1cygpOwogICAg +ICAgIGNvbnN0IHNlbCA9IHdpbmRvdy5nZXRTZWxlY3Rpb24oKTsKICAgICAgICBpZiAoIXNlbC5y +YW5nZUNvdW50KSByZXR1cm47CiAgICAgICAgY29uc3QgcmFuZ2UgPSBzZWwuZ2V0UmFuZ2VBdCgw +KTsKICAgICAgICBpZiAocmFuZ2UuY29sbGFwc2VkKSByZXR1cm47CgogICAgICAgIGNvbnN0IGZy +YWcgPSByYW5nZS5leHRyYWN0Q29udGVudHMoKTsKICAgICAgICAvLyBCZXN0ZWhlbmRlIGZvbnRT +aXplLVNwYW5zIGltIEZyYWdtZW50IGF1ZmxvZXNlbgogICAgICAgIGZyYWcucXVlcnlTZWxlY3Rv +ckFsbCgnc3BhbicpLmZvckVhY2goZnVuY3Rpb24ocykgewogICAgICAgICAgICBpZiAocy5zdHls +ZS5mb250U2l6ZSAmJiBzLnN0eWxlLmxlbmd0aCA8PSAxKSB7CiAgICAgICAgICAgICAgICAvLyBT +cGFuIGhhdCBudXIgZm9udC1zaXplIC0+IGR1cmNoIEluaGFsdCBlcnNldHplbgogICAgICAgICAg +ICAgICAgd2hpbGUgKHMuZmlyc3RDaGlsZCkgcy5wYXJlbnROb2RlLmluc2VydEJlZm9yZShzLmZp +cnN0Q2hpbGQsIHMpOwogICAgICAgICAgICAgICAgcy5yZW1vdmUoKTsKICAgICAgICAgICAgfSBl +bHNlIGlmIChzLnN0eWxlLmZvbnRTaXplKSB7CiAgICAgICAgICAgICAgICBzLnN0eWxlLnJlbW92 +ZVByb3BlcnR5KCdmb250LXNpemUnKTsKICAgICAgICAgICAgfQogICAgICAgIH0pOwogICAgICAg +IGNvbnN0IHdyYXBwZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJyk7CiAgICAgICAg +d3JhcHBlci5zdHlsZS5mb250U2l6ZSA9IHNpemUgKyAncHgnOwogICAgICAgIHdyYXBwZXIuYXBw +ZW5kQ2hpbGQoZnJhZyk7CiAgICAgICAgcmFuZ2UuaW5zZXJ0Tm9kZSh3cmFwcGVyKTsKICAgICAg +ICByYW5nZS5zZWxlY3ROb2RlQ29udGVudHMod3JhcHBlcik7CiAgICAgICAgc2VsLnJlbW92ZUFs +bFJhbmdlcygpOwogICAgICAgIHNlbC5hZGRSYW5nZShyYW5nZSk7CgogICAgICAgIGRvY3VtZW50 +LmdldEVsZW1lbnRCeUlkKCdmb250U2l6ZVNlbGVjdCcpLnZhbHVlID0gJyc7CiAgICAgICAgaW5w +dXQuZm9jdXMoKTsKICAgIH0sCgogICAgY29sb3IoY29sb3IpIHsKICAgICAgICBjb25zdCBpbnB1 +dCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdlZGl0b3JJbnB1dCcpOwogICAgICAgIGNvbnN0 +IHNlbCA9IHdpbmRvdy5nZXRTZWxlY3Rpb24oKTsKICAgICAgICBsZXQgc2F2ZWRSYW5nZSA9IG51 +bGw7CiAgICAgICAgaWYgKHNlbC5yYW5nZUNvdW50ID4gMCkgc2F2ZWRSYW5nZSA9IHNlbC5nZXRS +YW5nZUF0KDApLmNsb25lUmFuZ2UoKTsKCiAgICAgICAgaW5wdXQuZm9jdXMoKTsKCiAgICAgICAg +aWYgKHNhdmVkUmFuZ2UgJiYgIXNhdmVkUmFuZ2UuY29sbGFwc2VkKSB7CiAgICAgICAgICAgIHNl +bC5yZW1vdmVBbGxSYW5nZXMoKTsKICAgICAgICAgICAgc2VsLmFkZFJhbmdlKHNhdmVkUmFuZ2Up +OwogICAgICAgICAgICBjb25zdCBmcmFnID0gc2F2ZWRSYW5nZS5leHRyYWN0Q29udGVudHMoKTsK +ICAgICAgICAgICAgLy8gQmVzdGVoZW5kZSBjb2xvci1TcGFucyBpbSBGcmFnbWVudCBhdWZsb2Vz +ZW4KICAgICAgICAgICAgZnJhZy5xdWVyeVNlbGVjdG9yQWxsKCdzcGFuJykuZm9yRWFjaChmdW5j +dGlvbihzKSB7CiAgICAgICAgICAgICAgICBpZiAocy5zdHlsZS5jb2xvciAmJiBzLnN0eWxlLmxl +bmd0aCA8PSAxKSB7CiAgICAgICAgICAgICAgICAgICAgd2hpbGUgKHMuZmlyc3RDaGlsZCkgcy5w +YXJlbnROb2RlLmluc2VydEJlZm9yZShzLmZpcnN0Q2hpbGQsIHMpOwogICAgICAgICAgICAgICAg +ICAgIHMucmVtb3ZlKCk7CiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHMuc3R5bGUuY29sb3Ip +IHsKICAgICAgICAgICAgICAgICAgICBzLnN0eWxlLnJlbW92ZVByb3BlcnR5KCdjb2xvcicpOwog +ICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9KTsKICAgICAgICAgICAgY29uc3Qgd3JhcHBl +ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKTsKICAgICAgICAgICAgd3JhcHBlci5z +dHlsZS5jb2xvciA9IGNvbG9yOwogICAgICAgICAgICB3cmFwcGVyLmFwcGVuZENoaWxkKGZyYWcp +OwogICAgICAgICAgICBzYXZlZFJhbmdlLmluc2VydE5vZGUod3JhcHBlcik7CiAgICAgICAgICAg +IHNhdmVkUmFuZ2Uuc2VsZWN0Tm9kZUNvbnRlbnRzKHdyYXBwZXIpOwogICAgICAgICAgICBzZWwu +cmVtb3ZlQWxsUmFuZ2VzKCk7CiAgICAgICAgICAgIHNlbC5hZGRSYW5nZShzYXZlZFJhbmdlKTsK +ICAgICAgICB9CiAgICAgICAgaW5wdXQuZm9jdXMoKTsKICAgIH0sCgogICAgLy8gLS0tIE1lZGlh +IFR5cGUgRGV0ZWN0aW9uIC0tLQogICAgLy8gLS0tIFBhc3RlOiBFeHRlcm5lIEJpbGRlciBsb2th +bCBzcGVpY2hlcm4gLS0tCgogICAgX3Bhc3RlVXBsb2FkSW5Qcm9ncmVzczogZmFsc2UsCgogICAg +YXN5bmMgX3Bhc3RlSW1hZ2VCbG9iKGJsb2IpIHsKICAgICAgICBpZiAoIXRoaXMuY3VycmVudERv +YyB8fCAhRHJpdmVGUy5jb25uZWN0ZWQpIHJldHVybjsKICAgICAgICBpZiAodGhpcy5fcGFzdGVV +cGxvYWRJblByb2dyZXNzKSByZXR1cm47IC8vIERvcHBlbC1FaW5mdWVnZW4gdmVyaGluZGVybgog +ICAgICAgIHRoaXMuX3Bhc3RlVXBsb2FkSW5Qcm9ncmVzcyA9IHRydWU7CiAgICAgICAgY29uc3Qg +ZG9jSWQgPSB0aGlzLmN1cnJlbnREb2MuaWQ7CiAgICAgICAgY29uc3QgZXh0ID0gYmxvYi50eXBl +LnNwbGl0KCcvJylbMV0gfHwgJ3BuZyc7CiAgICAgICAgY29uc3QgdHMgPSBEYXRlLm5vdygpOwog +ICAgICAgIGNvbnN0IGZpbGVuYW1lID0gJ3Bhc3RlXycgKyB0cyArICcuJyArIGV4dDsKICAgICAg +ICBjb25zdCBmaWxlID0gbmV3IEZpbGUoW2Jsb2JdLCBmaWxlbmFtZSwgeyB0eXBlOiBibG9iLnR5 +cGUgfSk7CgogICAgICAgIHRyeSB7CiAgICAgICAgICAgIHNob3dUb2FzdCgnQmlsZCB3aXJkIGdl +c3BlaWNoZXJ0Li4uJywgJ2luZm8nLCAzMDAwKTsKICAgICAgICAgICAgY29uc3QgcmVsUGF0aCA9 +IGF3YWl0IERyaXZlRlMudXBsb2FkTWVkaWEoZG9jSWQsIGZpbGUpOwogICAgICAgICAgICBjb25z +dCBtZWRpYUlkID0gdGhpcy5nZW5lcmF0ZU1lZGlhSWQoKTsKCiAgICAgICAgICAgIGlmICghdGhp +cy5jdXJyZW50RG9jLm1lZGlhcykgdGhpcy5jdXJyZW50RG9jLm1lZGlhcyA9IFtdOwogICAgICAg +ICAgICB0aGlzLmN1cnJlbnREb2MubWVkaWFzLnB1c2goewogICAgICAgICAgICAgICAgdHlwZTog +J2ltYWdlJywgdXJsOiByZWxQYXRoLCB0aXRsZTogZmlsZW5hbWUsCiAgICAgICAgICAgICAgICBk +ZXNjcmlwdGlvbjogJycsIGRpc3BsYXlNb2RlOiAnaW5saW5lJywKICAgICAgICAgICAgICAgIGFs +aWdubWVudDogJ2NlbnRlcicsIHNpemU6ICdsYXJnZScsIG1lZGlhSWQ6IG1lZGlhSWQKICAgICAg +ICAgICAgfSk7CgogICAgICAgICAgICBjb25zdCBmaWd1cmUgPSBkb2N1bWVudC5jcmVhdGVFbGVt +ZW50KCdmaWd1cmUnKTsKICAgICAgICAgICAgZmlndXJlLmNsYXNzTmFtZSA9ICdkcml2ZS1tZWRp +YSBtZWRpYS1sYXJnZSBtZWRpYS1jZW50ZXInOwogICAgICAgICAgICBmaWd1cmUuc2V0QXR0cmli +dXRlKCdkYXRhLW1lZGlhLWlkJywgbWVkaWFJZCk7CiAgICAgICAgICAgIGZpZ3VyZS5jb250ZW50 +RWRpdGFibGUgPSAnZmFsc2UnOwogICAgICAgICAgICBjb25zdCBpbWcgPSBkb2N1bWVudC5jcmVh +dGVFbGVtZW50KCdpbWcnKTsKICAgICAgICAgICAgaW1nLnNyYyA9IHJlbFBhdGg7CiAgICAgICAg +ICAgIGltZy5hbHQgPSBmaWxlbmFtZTsKICAgICAgICAgICAgZmlndXJlLmFwcGVuZENoaWxkKGlt +Zyk7CiAgICAgICAgICAgIGRvY3VtZW50LmV4ZWNDb21tYW5kKCdpbnNlcnRIVE1MJywgZmFsc2Us +IGZpZ3VyZS5vdXRlckhUTUwpOwogICAgICAgICAgICB0aGlzLl9yZW5kZXJNZWRpYUxpc3QoKTsK +ICAgICAgICAgICAgc2hvd1RvYXN0KCdCaWxkIGVpbmdlZsO8Z3QnLCAnc3VjY2VzcycpOwogICAg +ICAgIH0gY2F0Y2ggKGVycikgewogICAgICAgICAgICBzaG93VG9hc3QoJ0JpbGQga29ubnRlIG5p +Y2h0IGdlc3BlaWNoZXJ0IHdlcmRlbjogJyArIGVyci5tZXNzYWdlLCAnZXJyb3InKTsKICAgICAg +ICB9IGZpbmFsbHkgewogICAgICAgICAgICB0aGlzLl9wYXN0ZVVwbG9hZEluUHJvZ3Jlc3MgPSBm +YWxzZTsKICAgICAgICB9CiAgICB9LAoKICAgIGFzeW5jIF9wYXN0ZUh0bWxXaXRoRXh0ZXJuYWxJ +bWFnZXMoYm9keUVsLCBleHRlcm5hbEltZ3MpIHsKICAgICAgICBjb25zdCBkb2NJZCA9IHRoaXMu +Y3VycmVudERvYy5pZDsKICAgICAgICBpZiAoIXRoaXMuY3VycmVudERvYy5tZWRpYXMpIHRoaXMu +Y3VycmVudERvYy5tZWRpYXMgPSBbXTsKCiAgICAgICAgc2hvd1RvYXN0KCdFeHRlcm5lIEJpbGRl +ciB3ZXJkZW4gaGVydW50ZXJnZWxhZGVuICgnICsgZXh0ZXJuYWxJbWdzLmxlbmd0aCArICcpLi4u +JywgJ2luZm8nLCA0MDAwKTsKICAgICAgICBsZXQgc2F2ZWQgPSAwOwoKICAgICAgICBmb3IgKGNv +bnN0IGltZyBvZiBleHRlcm5hbEltZ3MpIHsKICAgICAgICAgICAgY29uc3Qgc3JjID0gaW1nLnNy +YzsKICAgICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgICAgIC8vIEJpbGQgaGVydW50ZXJsYWRl +bjogSW0gU2VydmVyLU1vZHVzIHVlYmVyIFByb3h5ICh1bWdlaHQgQ09SUykKICAgICAgICAgICAg +ICAgIGxldCByZXNwb25zZTsKICAgICAgICAgICAgICAgIGlmIChEcml2ZUZTLm1vZGUgPT09ICdz +ZXJ2ZXInKSB7CiAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaCgnL2Fw +aS9mZXRjaC1pbWFnZScsIHsKICAgICAgICAgICAgICAgICAgICAgICAgbWV0aG9kOiAnUE9TVCcs +CiAgICAgICAgICAgICAgICAgICAgICAgIGhlYWRlcnM6IHsgJ0NvbnRlbnQtVHlwZSc6ICdhcHBs +aWNhdGlvbi9qc29uJyB9LAogICAgICAgICAgICAgICAgICAgICAgICBib2R5OiBKU09OLnN0cmlu +Z2lmeSh7IHVybDogc3JjIH0pCiAgICAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAg +ICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgIHJlc3BvbnNlID0gYXdhaXQgZmV0Y2goc3Jj +LCB7IG1vZGU6ICdjb3JzJyB9KTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGlm +ICghcmVzcG9uc2Uub2spIHsgaW1nLnJlbW92ZSgpOyBjb250aW51ZTsgfQogICAgICAgICAgICAg +ICAgY29uc3QgYmxvYiA9IGF3YWl0IHJlc3BvbnNlLmJsb2IoKTsKCiAgICAgICAgICAgICAgICAv +LyBOdXIgZWNodGUgQmlsZGVyIHZlcmFyYmVpdGVuIChrZWluZSAwLUJ5dGUgdHJhY2tpbmctcGl4 +ZWwgb2RlciBGZWhsZXIpCiAgICAgICAgICAgICAgICBpZiAoIWJsb2IudHlwZS5zdGFydHNXaXRo +KCdpbWFnZS8nKSB8fCBibG9iLnNpemUgPCAxMDApIHsKICAgICAgICAgICAgICAgICAgICBpbWcu +cmVtb3ZlKCk7CiAgICAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICAgICB9 +CgogICAgICAgICAgICAgICAgY29uc3QgZXh0ID0gYmxvYi50eXBlLnNwbGl0KCcvJylbMV0gfHwg +J3BuZyc7CiAgICAgICAgICAgICAgICBjb25zdCB0cyA9IERhdGUubm93KCkgKyAnXycgKyBzYXZl +ZDsKICAgICAgICAgICAgICAgIGNvbnN0IGZpbGVuYW1lID0gJ3dlYl8nICsgdHMgKyAnLicgKyBl +eHQ7CiAgICAgICAgICAgICAgICBjb25zdCBmaWxlID0gbmV3IEZpbGUoW2Jsb2JdLCBmaWxlbmFt +ZSwgeyB0eXBlOiBibG9iLnR5cGUgfSk7CgogICAgICAgICAgICAgICAgY29uc3QgcmVsUGF0aCA9 +IGF3YWl0IERyaXZlRlMudXBsb2FkTWVkaWEoZG9jSWQsIGZpbGUpOwogICAgICAgICAgICAgICAg +Y29uc3QgbWVkaWFJZCA9IHRoaXMuZ2VuZXJhdGVNZWRpYUlkKCk7CgogICAgICAgICAgICAgICAg +dGhpcy5jdXJyZW50RG9jLm1lZGlhcy5wdXNoKHsKICAgICAgICAgICAgICAgICAgICB0eXBlOiAn +aW1hZ2UnLCB1cmw6IHJlbFBhdGgsIHRpdGxlOiBmaWxlbmFtZSwKICAgICAgICAgICAgICAgICAg +ICBkZXNjcmlwdGlvbjogJycsIGRpc3BsYXlNb2RlOiAnaW5saW5lJywKICAgICAgICAgICAgICAg +ICAgICBhbGlnbm1lbnQ6ICcnLCBzaXplOiAnbGFyZ2UnLCBtZWRpYUlkOiBtZWRpYUlkCiAgICAg +ICAgICAgICAgICB9KTsKCiAgICAgICAgICAgICAgICAvLyBmaWd1cmUtRWxlbWVudCBlcnN0ZWxs +ZW4gZGFtaXQgZXMgb2ZmbGluZSBmdW5rdGlvbmllcnQKICAgICAgICAgICAgICAgIGNvbnN0IGZp +Z3VyZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2ZpZ3VyZScpOwogICAgICAgICAgICAgICAg +ZmlndXJlLmNsYXNzTmFtZSA9ICdkcml2ZS1tZWRpYSBtZWRpYS1sYXJnZSc7CiAgICAgICAgICAg +ICAgICBmaWd1cmUuc2V0QXR0cmlidXRlKCdkYXRhLW1lZGlhLWlkJywgbWVkaWFJZCk7CiAgICAg +ICAgICAgICAgICBmaWd1cmUuY29udGVudEVkaXRhYmxlID0gJ2ZhbHNlJzsKICAgICAgICAgICAg +ICAgIGNvbnN0IG5ld0ltZyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2ltZycpOwogICAgICAg +ICAgICAgICAgbmV3SW1nLnNyYyA9IHJlbFBhdGg7CiAgICAgICAgICAgICAgICBuZXdJbWcuYWx0 +ID0gaW1nLmFsdCB8fCBmaWxlbmFtZTsKICAgICAgICAgICAgICAgIGZpZ3VyZS5hcHBlbmRDaGls +ZChuZXdJbWcpOwoKICAgICAgICAgICAgICAgIC8vIE9yaWdpbmFsIGltZyBkdXJjaCBmaWd1cmUg +ZXJzZXR6ZW4KICAgICAgICAgICAgICAgIGltZy5wYXJlbnROb2RlLnJlcGxhY2VDaGlsZChmaWd1 +cmUsIGltZyk7CiAgICAgICAgICAgICAgICBzYXZlZCsrOwogICAgICAgICAgICB9IGNhdGNoIHsK +ICAgICAgICAgICAgICAgIC8vIEJpbGQga29ubnRlIG5pY2h0IGdlbGFkZW4gd2VyZGVuIC0gZW50 +ZmVybmVuIHN0YXR0IGthcHV0dGUgUmVmZXJlbnoKICAgICAgICAgICAgICAgIGltZy5yZW1vdmUo +KTsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgLy8gQmVyZWluaWd0ZXMgSFRNTCBl +aW5mdWVnZW4KICAgICAgICBkb2N1bWVudC5leGVjQ29tbWFuZCgnaW5zZXJ0SFRNTCcsIGZhbHNl +LCBib2R5RWwuaW5uZXJIVE1MKTsKICAgICAgICB0aGlzLl9yZW5kZXJNZWRpYUxpc3QoKTsKICAg +ICAgICBpZiAoc2F2ZWQgPiAwKSB7CiAgICAgICAgICAgIHNob3dUb2FzdChzYXZlZCArICcgQmls +ZCcgKyAoc2F2ZWQgPiAxID8gJ2VyJyA6ICcnKSArICcgbG9rYWwgZ2VzcGVpY2hlcnQnLCAnc3Vj +Y2VzcycpOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIHNob3dUb2FzdCgnS2VpbmUgQmls +ZGVyIGtvbm50ZW4gaGVydW50ZXJnZWxhZGVuIHdlcmRlbiAoZXZ0bC4gQ09SUy1TY2h1dHopJywg +J3dhcm5pbmcnKTsKICAgICAgICB9CiAgICB9LAoKICAgIGRldGVjdE1lZGlhVHlwZShmaWxlKSB7 +CiAgICAgICAgaWYgKGZpbGUudHlwZS5zdGFydHNXaXRoKCdpbWFnZS8nKSkgcmV0dXJuICdpbWFn +ZSc7CiAgICAgICAgaWYgKGZpbGUudHlwZS5zdGFydHNXaXRoKCd2aWRlby8nKSkgcmV0dXJuICd2 +aWRlbyc7CiAgICAgICAgaWYgKGZpbGUudHlwZS5zdGFydHNXaXRoKCdhdWRpby8nKSkgcmV0dXJu +ICdhdWRpbyc7CiAgICAgICAgaWYgKGZpbGUudHlwZSA9PT0gJ2FwcGxpY2F0aW9uL3BkZicpIHJl +dHVybiAncGRmJzsKICAgICAgICBjb25zdCBleHQgPSBmaWxlLm5hbWUuc3BsaXQoJy4nKS5wb3Ao +KS50b0xvd2VyQ2FzZSgpOwogICAgICAgIGlmIChleHQgPT09ICdkb2N4JykgcmV0dXJuICdkb2N4 +JzsKICAgICAgICBpZiAoZXh0ID09PSAneGxzeCcpIHJldHVybiAneGxzeCc7CiAgICAgICAgaWYg +KGV4dCA9PT0gJ3BwdHgnKSByZXR1cm4gJ3BwdHgnOwogICAgICAgIHJldHVybiAnZmlsZSc7CiAg +ICB9LAoKICAgIGdlbmVyYXRlTWVkaWFJZCgpIHsKICAgICAgICBpZiAoIXRoaXMuY3VycmVudERv +YyB8fCAhdGhpcy5jdXJyZW50RG9jLm1lZGlhcykgcmV0dXJuICdtMDAxJzsKICAgICAgICBsZXQg +bWF4ID0gMDsKICAgICAgICB0aGlzLmN1cnJlbnREb2MubWVkaWFzLmZvckVhY2gobSA9PiB7CiAg +ICAgICAgICAgIGlmIChtLm1lZGlhSWQpIHsKICAgICAgICAgICAgICAgIGNvbnN0IG4gPSBwYXJz +ZUludChtLm1lZGlhSWQucmVwbGFjZSgnbScsICcnKSwgMTApOwogICAgICAgICAgICAgICAgaWYg +KG4gPiBtYXgpIG1heCA9IG47CiAgICAgICAgICAgIH0KICAgICAgICB9KTsKICAgICAgICByZXR1 +cm4gJ20nICsgU3RyaW5nKG1heCArIDEpLnBhZFN0YXJ0KDMsICcwJyk7CiAgICB9LAoKICAgIC8v +IC0tLSBVcGxvYWQgRGlhbG9nIC0tLQogICAgX3BlbmRpbmdGaWxlczogW10sCiAgICBfcGVuZGlu +Z0luZGV4OiAwLAogICAgX3VwbG9hZE9wdGlvbnM6IHsgZGlzcGxheU1vZGU6ICdhdHRhY2htZW50 +JywgYWxpZ246ICdjZW50ZXInLCBzaXplOiAndGh1bWJuYWlsJyB9LAogICAgX3NhdmVkRWRpdG9y +UmFuZ2U6IG51bGwsCgogICAgLy8gVXBsb2FkLUVpbnN0aWVncy1Nb2RhbCBtaXQgRHJhZyZEcm9w +IHVuZCBFcmtsYWVydW5nIG9lZmZuZW4KICAgIHNob3dVcGxvYWRNb2RhbCgpIHsKICAgICAgICBp +ZiAoIXRoaXMuY3VycmVudERvYyB8fCAhRHJpdmVGUy5jb25uZWN0ZWQpIHsKICAgICAgICAgICAg +c2hvd1RvYXN0KCdCaXR0ZSB6dWVyc3QgZWluIERva3VtZW50IMO2ZmZuZW4nLCAnd2FybmluZycp +OwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgICAgIC8vIEN1cnNvci1Qb3NpdGlv +biBtZXJrZW4KICAgICAgICBjb25zdCBzZWwgPSB3aW5kb3cuZ2V0U2VsZWN0aW9uKCk7CiAgICAg +ICAgaWYgKHNlbC5yYW5nZUNvdW50ID4gMCkgewogICAgICAgICAgICB0aGlzLl9zYXZlZEVkaXRv +clJhbmdlID0gc2VsLmdldFJhbmdlQXQoMCkuY2xvbmVSYW5nZSgpOwogICAgICAgIH0KICAgICAg +ICBjb25zdCBtb2RhbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdtZWRpYVVwbG9hZFN0YXJ0 +TW9kYWwnKTsKICAgICAgICBtb2RhbC5jbGFzc0xpc3QuYWRkKCdhY3RpdmUnKTsKCiAgICAgICAg +Ly8gRHJhZyAmIERyb3AgU2V0dXAgKG51ciBlaW5tYWwpCiAgICAgICAgY29uc3QgZHJvcFpvbmUg +PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndXBsb2FkRHJvcFpvbmUnKTsKICAgICAgICBpZiAo +IWRyb3Bab25lLl9kcmFnU2V0dXApIHsKICAgICAgICAgICAgZHJvcFpvbmUuX2RyYWdTZXR1cCA9 +IHRydWU7CiAgICAgICAgICAgIGRyb3Bab25lLmFkZEV2ZW50TGlzdGVuZXIoJ2RyYWdvdmVyJywg +KGUpID0+IHsgZS5wcmV2ZW50RGVmYXVsdCgpOyBkcm9wWm9uZS5jbGFzc0xpc3QuYWRkKCdkcmFn +LW92ZXInKTsgfSk7CiAgICAgICAgICAgIGRyb3Bab25lLmFkZEV2ZW50TGlzdGVuZXIoJ2RyYWds +ZWF2ZScsICgpID0+IHsgZHJvcFpvbmUuY2xhc3NMaXN0LnJlbW92ZSgnZHJhZy1vdmVyJyk7IH0p +OwogICAgICAgICAgICBkcm9wWm9uZS5hZGRFdmVudExpc3RlbmVyKCdkcm9wJywgKGUpID0+IHsK +ICAgICAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTsKICAgICAgICAgICAgICAgIGRyb3Ba +b25lLmNsYXNzTGlzdC5yZW1vdmUoJ2RyYWctb3ZlcicpOwogICAgICAgICAgICAgICAgY29uc3Qg +ZmlsZXMgPSBBcnJheS5mcm9tKGUuZGF0YVRyYW5zZmVyLmZpbGVzKS5maWx0ZXIoZiA9PiB7CiAg +ICAgICAgICAgICAgICAgICAgY29uc3QgZXh0ID0gZi5uYW1lLnNwbGl0KCcuJykucG9wKCkudG9M +b3dlckNhc2UoKTsKICAgICAgICAgICAgICAgICAgICByZXR1cm4gZi50eXBlLnN0YXJ0c1dpdGgo +J2ltYWdlLycpIHx8IGYudHlwZS5zdGFydHNXaXRoKCd2aWRlby8nKSB8fCBmLnR5cGUuc3RhcnRz +V2l0aCgnYXVkaW8vJykgfHwKICAgICAgICAgICAgICAgICAgICAgICAgZi50eXBlID09PSAnYXBw +bGljYXRpb24vcGRmJyB8fCBbJ2RvY3gnLCd4bHN4JywncHB0eCddLmluY2x1ZGVzKGV4dCk7CiAg +ICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgIGlmIChmaWxlcy5sZW5ndGggPT09IDAp +IHsKICAgICAgICAgICAgICAgICAgICBzaG93VG9hc3QoJ0RhdGVpdHlwIG5pY2h0IHVudGVyc3TD +vHR6dCcsICd3YXJuaW5nJyk7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAg +ICAgICAgfQogICAgICAgICAgICAgICAgRHJpdmVFZGl0b3IuX3N0YXJ0RmlsZXNVcGxvYWQoZmls +ZXMpOwogICAgICAgICAgICB9KTsKICAgICAgICAgICAgLy8gS2xpY2sgYXVmIFpvbmUgPSBEYXRl +aWF1c3dhaGwKICAgICAgICAgICAgZHJvcFpvbmUuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCAo +ZSkgPT4gewogICAgICAgICAgICAgICAgaWYgKGUudGFyZ2V0LnRhZ05hbWUgIT09ICdCVVRUT04n +KSBEcml2ZUVkaXRvci51cGxvYWRNZWRpYSgpOwogICAgICAgICAgICB9KTsKICAgICAgICB9CiAg +ICB9LAoKICAgIGNsb3NlVXBsb2FkU3RhcnRNb2RhbCgpIHsKICAgICAgICBkb2N1bWVudC5nZXRF +bGVtZW50QnlJZCgnbWVkaWFVcGxvYWRTdGFydE1vZGFsJykuY2xhc3NMaXN0LnJlbW92ZSgnYWN0 +aXZlJyk7CiAgICB9LAoKICAgIC8vIERhdGVpYXVzd2FobC1EaWFsb2cgKG5hdGl2KSBvZWZmbmVu +CiAgICB1cGxvYWRNZWRpYSgpIHsKICAgICAgICBpZiAoIXRoaXMuY3VycmVudERvYyB8fCAhRHJp +dmVGUy5jb25uZWN0ZWQpIHsKICAgICAgICAgICAgc2hvd1RvYXN0KCdCaXR0ZSB6dWVyc3QgZWlu +IERva3VtZW50IMO2ZmZuZW4nLCAnd2FybmluZycpOwogICAgICAgICAgICByZXR1cm47CiAgICAg +ICAgfQoKICAgICAgICBjb25zdCBmaWxlSW5wdXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdp +bnB1dCcpOwogICAgICAgIGZpbGVJbnB1dC50eXBlID0gJ2ZpbGUnOwogICAgICAgIGZpbGVJbnB1 +dC5hY2NlcHQgPSAnaW1hZ2UvKix2aWRlby8qLGF1ZGlvLyosLnBkZiwuZG9jeCwueGxzeCwucHB0 +eCc7CiAgICAgICAgZmlsZUlucHV0Lm11bHRpcGxlID0gdHJ1ZTsKCiAgICAgICAgZmlsZUlucHV0 +Lm9uY2hhbmdlID0gKGUpID0+IHsKICAgICAgICAgICAgY29uc3QgZmlsZXMgPSBBcnJheS5mcm9t +KGUudGFyZ2V0LmZpbGVzKTsKICAgICAgICAgICAgaWYgKGZpbGVzLmxlbmd0aCA9PT0gMCkgcmV0 +dXJuOwogICAgICAgICAgICB0aGlzLl9zdGFydEZpbGVzVXBsb2FkKGZpbGVzKTsKICAgICAgICB9 +OwoKICAgICAgICBmaWxlSW5wdXQuY2xpY2soKTsKICAgIH0sCgogICAgLy8gR2VtZWluc2FtZXIg +RWluc3RpZWc6IERhdGVpZW4gaW4gRm9ybWF0aWVydW5ncy1RdWV1ZSBzdGVsbGVuCiAgICBfc3Rh +cnRGaWxlc1VwbG9hZChmaWxlcykgewogICAgICAgIC8vIEN1cnNvci1Qb3NpdGlvbiBtZXJrZW4g +ZmFsbHMgbm9jaCBuaWNodCBnZXNjaGVoZW4KICAgICAgICBpZiAoIXRoaXMuX3NhdmVkRWRpdG9y +UmFuZ2UpIHsKICAgICAgICAgICAgY29uc3Qgc2VsID0gd2luZG93LmdldFNlbGVjdGlvbigpOwog +ICAgICAgICAgICBpZiAoc2VsLnJhbmdlQ291bnQgPiAwKSB7CiAgICAgICAgICAgICAgICB0aGlz +Ll9zYXZlZEVkaXRvclJhbmdlID0gc2VsLmdldFJhbmdlQXQoMCkuY2xvbmVSYW5nZSgpOwogICAg +ICAgICAgICB9CiAgICAgICAgfQogICAgICAgIHRoaXMuX3BlbmRpbmdGaWxlcyA9IGZpbGVzOwog +ICAgICAgIHRoaXMuX3BlbmRpbmdJbmRleCA9IDA7CiAgICAgICAgLy8gRWluc3RpZWdzLU1vZGFs +IHNjaGxpZXNzZW4sIEZvcm1hdGllcnVuZ3MtRGlhbG9nIG9lZmZuZW4KICAgICAgICB0aGlzLmNs +b3NlVXBsb2FkU3RhcnRNb2RhbCgpOwogICAgICAgIHRoaXMuc2hvd1VwbG9hZERpYWxvZygpOwog +ICAgfSwKCiAgICBzaG93VXBsb2FkRGlhbG9nKCkgewogICAgICAgIGlmICh0aGlzLl9wZW5kaW5n +SW5kZXggPj0gdGhpcy5fcGVuZGluZ0ZpbGVzLmxlbmd0aCkgewogICAgICAgICAgICB0aGlzLmNs +b3NlVXBsb2FkRGlhbG9nKCk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CgogICAgICAg +IGNvbnN0IGZpbGUgPSB0aGlzLl9wZW5kaW5nRmlsZXNbdGhpcy5fcGVuZGluZ0luZGV4XTsKICAg +ICAgICBjb25zdCB0eXBlID0gdGhpcy5kZXRlY3RNZWRpYVR5cGUoZmlsZSk7CiAgICAgICAgY29u +c3QgcmVtYWluaW5nID0gdGhpcy5fcGVuZGluZ0ZpbGVzLmxlbmd0aCAtIHRoaXMuX3BlbmRpbmdJ +bmRleDsKCiAgICAgICAgLy8gUmVzZXQgb3B0aW9ucwogICAgICAgIHRoaXMuX3VwbG9hZE9wdGlv +bnMgPSB7IGRpc3BsYXlNb2RlOiAnYXR0YWNobWVudCcsIGFsaWduOiAnY2VudGVyJywgc2l6ZTog +J3RodW1ibmFpbCcgfTsKCiAgICAgICAgLy8gSGVhZGVyIG1pdCBGb3J0c2Nocml0dAogICAgICAg +IGNvbnN0IHRpdGxlRWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndXBsb2FkRGlhbG9nVGl0 +bGUnKTsKICAgICAgICBpZiAodGhpcy5fcGVuZGluZ0ZpbGVzLmxlbmd0aCA+IDEpIHsKICAgICAg +ICAgICAgdGl0bGVFbC5pbm5lckhUTUwgPSAnRGF0ZWkga29uZmlndXJpZXJlbiA8c3BhbiBzdHls +ZT0iZm9udC13ZWlnaHQ6NDAwO2ZvbnQtc2l6ZToxM3B4O29wYWNpdHk6MC44OyI+KCcgKyAodGhp +cy5fcGVuZGluZ0luZGV4ICsgMSkgKyAnIHZvbiAnICsgdGhpcy5fcGVuZGluZ0ZpbGVzLmxlbmd0 +aCArICcpPC9zcGFuPic7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgdGl0bGVFbC50ZXh0 +Q29udGVudCA9ICdEYXRlaSBrb25maWd1cmllcmVuJzsKICAgICAgICB9CgogICAgICAgIC8vIFBy +ZXZpZXcgbWl0IERhdGVpaW5mbwogICAgICAgIGNvbnN0IHByZXZpZXcgPSBkb2N1bWVudC5nZXRF +bGVtZW50QnlJZCgndXBsb2FkUHJldmlldycpOwogICAgICAgIGNvbnN0IGZpbGVTaXplTUIgPSAo +ZmlsZS5zaXplIC8gKDEwMjQgKiAxMDI0KSkudG9GaXhlZCgxKTsKICAgICAgICBjb25zdCBmaWxl +U2l6ZVRleHQgPSBmaWxlLnNpemUgPCAxMDI0KjEwMjQKICAgICAgICAgICAgPyBNYXRoLnJvdW5k +KGZpbGUuc2l6ZSAvIDEwMjQpICsgJyBLQicKICAgICAgICAgICAgOiBmaWxlU2l6ZU1CICsgJyBN +Qic7CiAgICAgICAgY29uc3QgZmlsZUluZm9IdG1sID0gJzxwIHN0eWxlPSJtYXJnaW4tdG9wOjhw +eDtjb2xvcjp2YXIoLS10ZXh0LW11dGVkKTtmb250LXNpemU6MTJweDsiPicgKwogICAgICAgICAg +ICBEcml2ZVBvcnRhbC5lc2NhcGVIVE1MKGZpbGUubmFtZSkgKyAnICgnICsgZmlsZVNpemVUZXh0 +ICsgJyk8L3A+JzsKCiAgICAgICAgaWYgKHR5cGUgPT09ICdpbWFnZScpIHsKICAgICAgICAgICAg +Y29uc3QgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTsKICAgICAgICAgICAgcmVhZGVyLm9ubG9h +ZCA9IChlKSA9PiB7IHByZXZpZXcuaW5uZXJIVE1MID0gJzxpbWcgc3JjPSInICsgZS50YXJnZXQu +cmVzdWx0ICsgJyI+JyArIGZpbGVJbmZvSHRtbDsgfTsKICAgICAgICAgICAgcmVhZGVyLnJlYWRB +c0RhdGFVUkwoZmlsZSk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgY29uc3QgaWNvbkNs +YXNzID0gdHlwZTsKICAgICAgICAgICAgY29uc3QgbGFiZWwgPSB0eXBlLnRvVXBwZXJDYXNlKCk7 +CiAgICAgICAgICAgIHByZXZpZXcuaW5uZXJIVE1MID0gJzxzcGFuIGNsYXNzPSJkcml2ZS1maWxl +LWljb24gJyArIGljb25DbGFzcyArICciIHN0eWxlPSJ3aWR0aDo2MHB4O2hlaWdodDo2MHB4O2Zv +bnQtc2l6ZToxOHB4O21hcmdpbjoxMHB4IGF1dG87Ij4nICsgbGFiZWwgKyAnPC9zcGFuPicgKyBm +aWxlSW5mb0h0bWw7CiAgICAgICAgfQoKICAgICAgICAvLyBUaXRsZSArIENhcHRpb24KICAgICAg +ICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndXBsb2FkVGl0bGUnKS52YWx1ZSA9IGZpbGUubmFt +ZS5yZXBsYWNlKC9cLlteLl0rJC8sICcnKTsKICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJ +ZCgndXBsb2FkQ2FwdGlvbicpLnZhbHVlID0gJyc7CgogICAgICAgIC8vIERpc3BsYXkgbW9kZSBv +cHRpb25zICh0eXBlLWRlcGVuZGVudCkKICAgICAgICBjb25zdCBkaXNwbGF5R3JvdXAgPSBkb2N1 +bWVudC5nZXRFbGVtZW50QnlJZCgndXBsb2FkRGlzcGxheU9wdGlvbnMnKTsKICAgICAgICBsZXQg +b3B0aW9ucyA9ICc8YnV0dG9uIGNsYXNzPSJ1cGxvYWQtb3B0aW9uLWJ0biBhY3RpdmUiIGRhdGEt +ZGlzcGxheT0iYXR0YWNobWVudCIgb25jbGljaz0iRHJpdmVFZGl0b3Iuc2V0VXBsb2FkT3B0aW9u +KFwnZGlzcGxheVwnLHRoaXMpIj5Bbmhhbmc8L2J1dHRvbj4nOwoKICAgICAgICBpZiAodHlwZSA9 +PT0gJ2ltYWdlJykgewogICAgICAgICAgICBvcHRpb25zICs9ICc8YnV0dG9uIGNsYXNzPSJ1cGxv +YWQtb3B0aW9uLWJ0biIgZGF0YS1kaXNwbGF5PSJpbmxpbmUiIG9uY2xpY2s9IkRyaXZlRWRpdG9y +LnNldFVwbG9hZE9wdGlvbihcJ2Rpc3BsYXlcJyx0aGlzKSI+SW0gQXJ0aWtlbDwvYnV0dG9uPic7 +CiAgICAgICAgfSBlbHNlIGlmICh0eXBlID09PSAncGRmJykgewogICAgICAgICAgICBvcHRpb25z +ICs9ICc8YnV0dG9uIGNsYXNzPSJ1cGxvYWQtb3B0aW9uLWJ0biIgZGF0YS1kaXNwbGF5PSJwZGYt +bGluayIgb25jbGljaz0iRHJpdmVFZGl0b3Iuc2V0VXBsb2FkT3B0aW9uKFwnZGlzcGxheVwnLHRo +aXMpIj5QREYtTGluayBpbSBBcnRpa2VsPC9idXR0b24+JzsKICAgICAgICAgICAgb3B0aW9ucyAr +PSAnPGJ1dHRvbiBjbGFzcz0idXBsb2FkLW9wdGlvbi1idG4iIGRhdGEtZGlzcGxheT0icGRmLWlm +cmFtZSIgb25jbGljaz0iRHJpdmVFZGl0b3Iuc2V0VXBsb2FkT3B0aW9uKFwnZGlzcGxheVwnLHRo +aXMpIj5QREYgZWluZ2ViZXR0ZXQ8L2J1dHRvbj4nOwogICAgICAgIH0gZWxzZSBpZiAodHlwZSA9 +PT0gJ3ZpZGVvJyB8fCB0eXBlID09PSAnYXVkaW8nKSB7CiAgICAgICAgICAgIG9wdGlvbnMgKz0g +JzxidXR0b24gY2xhc3M9InVwbG9hZC1vcHRpb24tYnRuIiBkYXRhLWRpc3BsYXk9Im1lZGlhLWlu +bGluZSIgb25jbGljaz0iRHJpdmVFZGl0b3Iuc2V0VXBsb2FkT3B0aW9uKFwnZGlzcGxheVwnLHRo +aXMpIj5JbSBBcnRpa2VsPC9idXR0b24+JzsKICAgICAgICB9IGVsc2UgaWYgKHR5cGUgPT09ICdk +b2N4JyB8fCB0eXBlID09PSAneGxzeCcgfHwgdHlwZSA9PT0gJ3BwdHgnKSB7CiAgICAgICAgICAg +IG9wdGlvbnMgKz0gJzxidXR0b24gY2xhc3M9InVwbG9hZC1vcHRpb24tYnRuIiBkYXRhLWRpc3Bs +YXk9Im9mZmljZS1pbmxpbmUiIG9uY2xpY2s9IkRyaXZlRWRpdG9yLnNldFVwbG9hZE9wdGlvbihc +J2Rpc3BsYXlcJyx0aGlzKSI+SW0gQXJ0aWtlbDwvYnV0dG9uPic7CiAgICAgICAgfQoKICAgICAg +ICBkaXNwbGF5R3JvdXAuaW5uZXJIVE1MID0gb3B0aW9uczsKCiAgICAgICAgLy8gSGlkZSBpbWFn +ZS1zcGVjaWZpYyBvcHRpb25zIGluaXRpYWxseQogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRC +eUlkKCd1cGxvYWRBbGlnbkdyb3VwJykuc3R5bGUuZGlzcGxheSA9ICdub25lJzsKICAgICAgICBk +b2N1bWVudC5nZXRFbGVtZW50QnlJZCgndXBsb2FkU2l6ZUdyb3VwJykuc3R5bGUuZGlzcGxheSA9 +ICdub25lJzsKCiAgICAgICAgLy8gQ29uZmlybS1CdXR0b24gQmVzY2hyaWZ0dW5nCiAgICAgICAg +Y29uc3QgY29uZmlybUJ0biA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1cGxvYWRDb25maXJt +QnRuJyk7CiAgICAgICAgaWYgKHRoaXMuX3BlbmRpbmdJbmRleCA8IHRoaXMuX3BlbmRpbmdGaWxl +cy5sZW5ndGggLSAxKSB7CiAgICAgICAgICAgIGNvbmZpcm1CdG4udGV4dENvbnRlbnQgPSAnRWlu +ZsO8Z2VuICYgbsOkY2hzdGUgRGF0ZWknOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIGNv +bmZpcm1CdG4udGV4dENvbnRlbnQgPSAnRWluZsO8Z2VuJzsKICAgICAgICB9CgogICAgICAgIC8v +IFNob3cgZGlhbG9nCiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ21lZGlhVXBsb2Fk +RGlhbG9nJykuY2xhc3NMaXN0LmFkZCgnYWN0aXZlJyk7CiAgICB9LAoKICAgIHNldFVwbG9hZE9w +dGlvbihncm91cCwgYnRuKSB7CiAgICAgICAgLy8gVG9nZ2xlIGFjdGl2ZSBpbiBncm91cAogICAg +ICAgIGJ0bi5wYXJlbnRFbGVtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy51cGxvYWQtb3B0aW9uLWJ0 +bicpLmZvckVhY2goYiA9PiBiLmNsYXNzTGlzdC5yZW1vdmUoJ2FjdGl2ZScpKTsKICAgICAgICBi +dG4uY2xhc3NMaXN0LmFkZCgnYWN0aXZlJyk7CgogICAgICAgIGlmIChncm91cCA9PT0gJ2Rpc3Bs +YXknKSB7CiAgICAgICAgICAgIGNvbnN0IG1vZGUgPSBidG4uZ2V0QXR0cmlidXRlKCdkYXRhLWRp +c3BsYXknKTsKICAgICAgICAgICAgdGhpcy5fdXBsb2FkT3B0aW9ucy5kaXNwbGF5TW9kZSA9IG1v +ZGU7CiAgICAgICAgICAgIGNvbnN0IGlzSW5saW5lSW1hZ2UgPSAobW9kZSA9PT0gJ2lubGluZScp +OwogICAgICAgICAgICBjb25zdCBpc0lubGluZVBkZiA9IChtb2RlID09PSAncGRmLWxpbmsnIHx8 +IG1vZGUgPT09ICdwZGYtaWZyYW1lJyk7CiAgICAgICAgICAgIGNvbnN0IGlzSW5saW5lTWVkaWEg +PSAobW9kZSA9PT0gJ21lZGlhLWlubGluZScgfHwgbW9kZSA9PT0gJ29mZmljZS1pbmxpbmUnKTsK +ICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3VwbG9hZEFsaWduR3JvdXAnKS5z +dHlsZS5kaXNwbGF5ID0gKGlzSW5saW5lSW1hZ2UgfHwgaXNJbmxpbmVQZGYgfHwgaXNJbmxpbmVN +ZWRpYSkgPyAnJyA6ICdub25lJzsKICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo +J3VwbG9hZFNpemVHcm91cCcpLnN0eWxlLmRpc3BsYXkgPSBpc0lubGluZUltYWdlID8gJycgOiAn +bm9uZSc7CiAgICAgICAgfSBlbHNlIGlmIChncm91cCA9PT0gJ2FsaWduJykgewogICAgICAgICAg +ICB0aGlzLl91cGxvYWRPcHRpb25zLmFsaWduID0gYnRuLmdldEF0dHJpYnV0ZSgnZGF0YS1hbGln +bicpOwogICAgICAgIH0gZWxzZSBpZiAoZ3JvdXAgPT09ICdzaXplJykgewogICAgICAgICAgICB0 +aGlzLl91cGxvYWRPcHRpb25zLnNpemUgPSBidG4uZ2V0QXR0cmlidXRlKCdkYXRhLXNpemUnKTsK +ICAgICAgICB9CiAgICB9LAoKICAgIGNsb3NlVXBsb2FkRGlhbG9nKCkgewogICAgICAgIGlmICh0 +aGlzLl91cGxvYWRJblByb2dyZXNzKSByZXR1cm47IC8vIExhdWZlbmRlbiBVcGxvYWQgbmljaHQg +YWJicmVjaGVuCiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ21lZGlhVXBsb2FkRGlh +bG9nJykuY2xhc3NMaXN0LnJlbW92ZSgnYWN0aXZlJyk7CiAgICAgICAgdGhpcy5fcGVuZGluZ0Zp +bGVzID0gW107CiAgICAgICAgdGhpcy5fcGVuZGluZ0luZGV4ID0gMDsKICAgICAgICB0aGlzLl9z +aG93VXBsb2FkUHJvZ3Jlc3MoZmFsc2UpOwogICAgfSwKCiAgICBfdXBsb2FkSW5Qcm9ncmVzczog +ZmFsc2UsCgogICAgX2Zvcm1hdEJ5dGVzKGJ5dGVzKSB7CiAgICAgICAgaWYgKGJ5dGVzIDwgMTAy +NCkgcmV0dXJuIGJ5dGVzICsgJyBCJzsKICAgICAgICBpZiAoYnl0ZXMgPCAxMDI0ICogMTAyNCkg +cmV0dXJuIChieXRlcyAvIDEwMjQpLnRvRml4ZWQoMCkgKyAnIEtCJzsKICAgICAgICByZXR1cm4g +KGJ5dGVzIC8gKDEwMjQgKiAxMDI0KSkudG9GaXhlZCgxKSArICcgTUInOwogICAgfSwKCiAgICBf +c2hvd1VwbG9hZFByb2dyZXNzKHNob3cpIHsKICAgICAgICB2YXIgY29udGFpbmVyID0gZG9jdW1l +bnQuZ2V0RWxlbWVudEJ5SWQoJ3VwbG9hZFByb2dyZXNzQ29udGFpbmVyJyk7CiAgICAgICAgdmFy +IGJ0biA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1cGxvYWRDb25maXJtQnRuJyk7CiAgICAg +ICAgaWYgKGNvbnRhaW5lcikgY29udGFpbmVyLnN0eWxlLmRpc3BsYXkgPSBzaG93ID8gJycgOiAn +bm9uZSc7CiAgICAgICAgaWYgKGJ0bikgewogICAgICAgICAgICBidG4uZGlzYWJsZWQgPSBzaG93 +OwogICAgICAgICAgICBidG4udGV4dENvbnRlbnQgPSBzaG93ID8gJ1dpcmQgaG9jaGdlbGFkZW4u +Li4nIDogJ0VpbmbDvGdlbic7CiAgICAgICAgICAgIGJ0bi5zdHlsZS5vcGFjaXR5ID0gc2hvdyA/ +ICcwLjUnIDogJyc7CiAgICAgICAgICAgIGJ0bi5zdHlsZS5jdXJzb3IgPSBzaG93ID8gJ25vdC1h +bGxvd2VkJyA6ICcnOwogICAgICAgIH0KICAgICAgICBpZiAoc2hvdykgewogICAgICAgICAgICB2 +YXIgYmFyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3VwbG9hZFByb2dyZXNzQmFyJyk7CiAg +ICAgICAgICAgIHZhciBwY3QgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndXBsb2FkUHJvZ3Jl +c3NQY3QnKTsKICAgICAgICAgICAgdmFyIHNpemVFbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlk +KCd1cGxvYWRQcm9ncmVzc1NpemUnKTsKICAgICAgICAgICAgaWYgKGJhcikgYmFyLnN0eWxlLndp +ZHRoID0gJzAlJzsKICAgICAgICAgICAgaWYgKHBjdCkgcGN0LnRleHRDb250ZW50ID0gJzAlJzsK +ICAgICAgICAgICAgaWYgKHNpemVFbCkgc2l6ZUVsLnRleHRDb250ZW50ID0gJyc7CiAgICAgICAg +fQogICAgfSwKCiAgICBhc3luYyBjb25maXJtVXBsb2FkKCkgewogICAgICAgIGNvbnN0IGZpbGUg +PSB0aGlzLl9wZW5kaW5nRmlsZXNbdGhpcy5fcGVuZGluZ0luZGV4XTsKICAgICAgICBpZiAoIWZp +bGUgfHwgdGhpcy5fdXBsb2FkSW5Qcm9ncmVzcykgcmV0dXJuOwoKICAgICAgICBjb25zdCB0eXBl +ID0gdGhpcy5kZXRlY3RNZWRpYVR5cGUoZmlsZSk7CiAgICAgICAgY29uc3QgdGl0bGUgPSBkb2N1 +bWVudC5nZXRFbGVtZW50QnlJZCgndXBsb2FkVGl0bGUnKS52YWx1ZS50cmltKCkgfHwgZmlsZS5u +YW1lOwogICAgICAgIGNvbnN0IGNhcHRpb24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndXBs +b2FkQ2FwdGlvbicpLnZhbHVlLnRyaW0oKTsKICAgICAgICBjb25zdCBvcHRzID0gdGhpcy5fdXBs +b2FkT3B0aW9uczsKICAgICAgICBjb25zdCBtZWRpYUlkID0gdGhpcy5nZW5lcmF0ZU1lZGlhSWQo +KTsKICAgICAgICB2YXIgc2VsZiA9IHRoaXM7CgogICAgICAgIC8vIFVwbG9hZC1VSTogQnV0dG9u +IGRlYWt0aXZpZXJlbiArIEZvcnRzY2hyaXR0c2JhbGtlbiBhbnplaWdlbgogICAgICAgIHRoaXMu +X3VwbG9hZEluUHJvZ3Jlc3MgPSB0cnVlOwogICAgICAgIHRoaXMuX3Nob3dVcGxvYWRQcm9ncmVz +cyh0cnVlKTsKCiAgICAgICAgdHJ5IHsKICAgICAgICAgICAgLy8gVXBsb2FkIGZpbGUgbWl0IEZv +cnRzY2hyaXR0c2FuemVpZ2UKICAgICAgICAgICAgY29uc3QgcmVsUGF0aCA9IGF3YWl0IERyaXZl +RlMudXBsb2FkTWVkaWEodGhpcy5jdXJyZW50RG9jLmlkLCBmaWxlLCBmdW5jdGlvbihwY3QsIGxv +YWRlZCwgdG90YWwpIHsKICAgICAgICAgICAgICAgIHZhciBiYXIgPSBkb2N1bWVudC5nZXRFbGVt +ZW50QnlJZCgndXBsb2FkUHJvZ3Jlc3NCYXInKTsKICAgICAgICAgICAgICAgIHZhciBwY3RFbCA9 +IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1cGxvYWRQcm9ncmVzc1BjdCcpOwogICAgICAgICAg +ICAgICAgdmFyIHNpemVFbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1cGxvYWRQcm9ncmVz +c1NpemUnKTsKICAgICAgICAgICAgICAgIHZhciBsYWJlbCA9IGRvY3VtZW50LmdldEVsZW1lbnRC +eUlkKCd1cGxvYWRQcm9ncmVzc0xhYmVsJyk7CiAgICAgICAgICAgICAgICBpZiAoYmFyKSBiYXIu +c3R5bGUud2lkdGggPSBwY3QgKyAnJSc7CiAgICAgICAgICAgICAgICBpZiAocGN0RWwpIHBjdEVs +LnRleHRDb250ZW50ID0gcGN0ICsgJyUnOwogICAgICAgICAgICAgICAgaWYgKHNpemVFbCkgc2l6 +ZUVsLnRleHRDb250ZW50ID0gc2VsZi5fZm9ybWF0Qnl0ZXMobG9hZGVkKSArICcgLyAnICsgc2Vs +Zi5fZm9ybWF0Qnl0ZXModG90YWwpOwogICAgICAgICAgICAgICAgaWYgKGxhYmVsICYmIHBjdCA+ +PSAxMDApIGxhYmVsLnRleHRDb250ZW50ID0gJ1dpcmQgdmVyYXJiZWl0ZXQuLi4nOwogICAgICAg +ICAgICB9KTsKCiAgICAgICAgICAgIC8vIEFkZCB0byBkb2N1bWVudCBtZWRpYSBsaXN0CiAgICAg +ICAgICAgIGlmICghdGhpcy5jdXJyZW50RG9jLm1lZGlhcykgdGhpcy5jdXJyZW50RG9jLm1lZGlh +cyA9IFtdOwogICAgICAgICAgICB0aGlzLmN1cnJlbnREb2MubWVkaWFzLnB1c2goewogICAgICAg +ICAgICAgICAgdHlwZTogdHlwZSwKICAgICAgICAgICAgICAgIHVybDogcmVsUGF0aCwKICAgICAg +ICAgICAgICAgIHRpdGxlOiB0aXRsZSwKICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBjYXB0 +aW9uLAogICAgICAgICAgICAgICAgZGlzcGxheU1vZGU6IG9wdHMuZGlzcGxheU1vZGUsCiAgICAg +ICAgICAgICAgICBhbGlnbm1lbnQ6IG9wdHMuYWxpZ24sCiAgICAgICAgICAgICAgICBzaXplOiBv +cHRzLnNpemUsCiAgICAgICAgICAgICAgICBtZWRpYUlkOiBtZWRpYUlkCiAgICAgICAgICAgIH0p +OwoKICAgICAgICAgICAgLy8gSW5zZXJ0IGlubGluZSBIVE1MIGlmIHJlcXVlc3RlZAogICAgICAg +ICAgICBpZiAob3B0cy5kaXNwbGF5TW9kZSAhPT0gJ2F0dGFjaG1lbnQnKSB7CiAgICAgICAgICAg +ICAgICB0aGlzLmluc2VydElubGluZU1lZGlhKHJlbFBhdGgsIHR5cGUsIHRpdGxlLCBjYXB0aW9u +LCBvcHRzLCBtZWRpYUlkKTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgdGhpcy5fcmVuZGVy +TWVkaWFMaXN0KCk7CiAgICAgICAgICAgIHNob3dUb2FzdCh0aXRsZSArICcgaGluenVnZWbDvGd0 +JywgJ3N1Y2Nlc3MnKTsKICAgICAgICB9IGNhdGNoIChlcnIpIHsKICAgICAgICAgICAgc2hvd1Rv +YXN0KCdGZWhsZXI6ICcgKyBlcnIubWVzc2FnZSwgJ2Vycm9yJyk7CiAgICAgICAgfQoKICAgICAg +ICAvLyBVcGxvYWQgYWJnZXNjaGxvc3NlbiAtIFVJIHp1cnVlY2tzZXR6ZW4KICAgICAgICB0aGlz +Ll91cGxvYWRJblByb2dyZXNzID0gZmFsc2U7CiAgICAgICAgdGhpcy5fc2hvd1VwbG9hZFByb2dy +ZXNzKGZhbHNlKTsKCiAgICAgICAgLy8gUHJvY2VzcyBuZXh0IGZpbGUgb3IgY2xvc2UKICAgICAg +ICB0aGlzLl9wZW5kaW5nSW5kZXgrKzsKICAgICAgICBpZiAodGhpcy5fcGVuZGluZ0luZGV4IDwg +dGhpcy5fcGVuZGluZ0ZpbGVzLmxlbmd0aCkgewogICAgICAgICAgICB0aGlzLnNob3dVcGxvYWRE +aWFsb2coKTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICB0aGlzLmNsb3NlVXBsb2FkRGlh +bG9nKCk7CiAgICAgICAgfQogICAgfSwKCiAgICBpbnNlcnRJbmxpbmVNZWRpYSh1cmwsIHR5cGUs +IHRpdGxlLCBjYXB0aW9uLCBvcHRzLCBtZWRpYUlkKSB7CiAgICAgICAgY29uc3QgZWRpdG9ySW5w +dXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZWRpdG9ySW5wdXQnKTsKICAgICAgICBsZXQg +ZWxlbWVudDsKCiAgICAgICAgaWYgKHR5cGUgPT09ICdpbWFnZScgJiYgb3B0cy5kaXNwbGF5TW9k +ZSA9PT0gJ2lubGluZScpIHsKICAgICAgICAgICAgLy8gSW1hZ2UgZmlndXJlCiAgICAgICAgICAg +IGNvbnN0IHNpemVDbGFzcyA9IG9wdHMuc2l6ZSA9PT0gJ2xhcmdlJyA/ICdkcml2ZS1tZWRpYS1s +YXJnZScgOiAnZHJpdmUtbWVkaWEtdGh1bWJuYWlsJzsKICAgICAgICAgICAgY29uc3QgYWxpZ25D +bGFzcyA9ICdkcml2ZS1hbGlnbi0nICsgb3B0cy5hbGlnbjsKCiAgICAgICAgICAgIGVsZW1lbnQg +PSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdmaWd1cmUnKTsKICAgICAgICAgICAgZWxlbWVudC5j +bGFzc05hbWUgPSAnZHJpdmUtbWVkaWEgJyArIHNpemVDbGFzcyArICcgJyArIGFsaWduQ2xhc3M7 +CiAgICAgICAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKCdkYXRhLW1lZGlhLWlkJywgbWVkaWFJ +ZCk7CiAgICAgICAgICAgIGVsZW1lbnQuY29udGVudEVkaXRhYmxlID0gJ2ZhbHNlJzsKCiAgICAg +ICAgICAgIGNvbnN0IGltZyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2ltZycpOwogICAgICAg +ICAgICBpbWcuc3JjID0gdXJsOwogICAgICAgICAgICBpbWcuYWx0ID0gdGl0bGU7CiAgICAgICAg +ICAgIGltZy5zdHlsZS5jdXJzb3IgPSAncG9pbnRlcic7CiAgICAgICAgICAgIGltZy5vbmNsaWNr +ID0gZnVuY3Rpb24oZSkgeyBlLnByZXZlbnREZWZhdWx0KCk7IGUuc3RvcFByb3BhZ2F0aW9uKCk7 +IG9wZW5NZWRpYU1vZGFsKHVybCwgJ2ltYWdlJywgdGl0bGUpOyB9OwogICAgICAgICAgICBlbGVt +ZW50LmFwcGVuZENoaWxkKGltZyk7CgogICAgICAgICAgICBpZiAoY2FwdGlvbikgewogICAgICAg +ICAgICAgICAgY29uc3QgZmlnID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZmlnY2FwdGlvbicp +OwogICAgICAgICAgICAgICAgZmlnLnRleHRDb250ZW50ID0gY2FwdGlvbjsKICAgICAgICAgICAg +ICAgIGVsZW1lbnQuYXBwZW5kQ2hpbGQoZmlnKTsKICAgICAgICAgICAgfQogICAgICAgIH0gZWxz +ZSBpZiAodHlwZSA9PT0gJ3BkZicgJiYgb3B0cy5kaXNwbGF5TW9kZSA9PT0gJ3BkZi1saW5rJykg +ewogICAgICAgICAgICBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CiAg +ICAgICAgICAgIGVsZW1lbnQuY2xhc3NOYW1lID0gJ2RyaXZlLW1lZGlhIGRyaXZlLW1lZGlhLXBk +Zi1saW5rIGRyaXZlLWFsaWduLScgKyBvcHRzLmFsaWduOwogICAgICAgICAgICBlbGVtZW50LnNl +dEF0dHJpYnV0ZSgnZGF0YS1tZWRpYS1pZCcsIG1lZGlhSWQpOwogICAgICAgICAgICBlbGVtZW50 +LmNvbnRlbnRFZGl0YWJsZSA9ICdmYWxzZSc7CiAgICAgICAgICAgIGVsZW1lbnQuaW5uZXJIVE1M +ID0gJzxzcGFuIGNsYXNzPSJkcml2ZS1wZGYtaWNvbiI+UERGPC9zcGFuPicgKwogICAgICAgICAg +ICAgICAgJzxzcGFuIGNsYXNzPSJwZGYtdGl0bGUiPicgKyBEcml2ZVBvcnRhbC5lc2NhcGVIVE1M +KHRpdGxlKSArICc8L3NwYW4+JzsKICAgICAgICAgICAgZWxlbWVudC5vbmNsaWNrID0gZnVuY3Rp +b24oZSkgeyBlLnByZXZlbnREZWZhdWx0KCk7IGUuc3RvcFByb3BhZ2F0aW9uKCk7IG9wZW5NZWRp +YU1vZGFsKHVybCwgJ3BkZicsIHRpdGxlKTsgfTsKICAgICAgICB9IGVsc2UgaWYgKHR5cGUgPT09 +ICdwZGYnICYmIG9wdHMuZGlzcGxheU1vZGUgPT09ICdwZGYtaWZyYW1lJykgewogICAgICAgICAg +ICBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CiAgICAgICAgICAgIGVs +ZW1lbnQuY2xhc3NOYW1lID0gJ2RyaXZlLW1lZGlhIGRyaXZlLW1lZGlhLXBkZi1pZnJhbWUgZHJp +dmUtYWxpZ24tJyArIG9wdHMuYWxpZ247CiAgICAgICAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRl +KCdkYXRhLW1lZGlhLWlkJywgbWVkaWFJZCk7CiAgICAgICAgICAgIGVsZW1lbnQuY29udGVudEVk +aXRhYmxlID0gJ2ZhbHNlJzsKICAgICAgICAgICAgZWxlbWVudC5pbm5lckhUTUwgPSAnPGlmcmFt +ZSBzcmM9IicgKyBEcml2ZVBvcnRhbC5lc2NhcGVBdHRyKHVybCkgKyAnIj48L2lmcmFtZT4nICsK +ICAgICAgICAgICAgICAgIChjYXB0aW9uID8gJzxwIGNsYXNzPSJkcml2ZS1tZWRpYS1jYXB0aW9u +Ij4nICsgRHJpdmVQb3J0YWwuZXNjYXBlSFRNTChjYXB0aW9uKSArICc8L3A+JyA6ICcnKTsKICAg +ICAgICAgICAgZWxlbWVudC5vbmNsaWNrID0gZnVuY3Rpb24oZSkgeyBlLnByZXZlbnREZWZhdWx0 +KCk7IGUuc3RvcFByb3BhZ2F0aW9uKCk7IG9wZW5NZWRpYU1vZGFsKHVybCwgJ3BkZicsIHRpdGxl +KTsgfTsKICAgICAgICB9IGVsc2UgaWYgKG9wdHMuZGlzcGxheU1vZGUgPT09ICdtZWRpYS1pbmxp +bmUnICYmICh0eXBlID09PSAndmlkZW8nIHx8IHR5cGUgPT09ICdhdWRpbycpKSB7CiAgICAgICAg +ICAgIC8vIFZpZGVvL0F1ZGlvIGFscyBrbGlja2JhcmVzIEljb24tRWxlbWVudCBpbSBBcnRpa2Vs +CiAgICAgICAgICAgIHZhciBpY29uID0gdHlwZSA9PT0gJ3ZpZGVvJyA/ICcmIzEyNzkxMDsnIDog +JyYjMTI3OTI1Oyc7CiAgICAgICAgICAgIHZhciBsYWJlbCA9IHR5cGUgPT09ICd2aWRlbycgPyAn +VmlkZW8nIDogJ0F1ZGlvJzsKICAgICAgICAgICAgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVs +ZW1lbnQoJ2RpdicpOwogICAgICAgICAgICBlbGVtZW50LmNsYXNzTmFtZSA9ICdkcml2ZS1tZWRp +YSBkcml2ZS1tZWRpYS1lbWJlZCBkcml2ZS1hbGlnbi0nICsgb3B0cy5hbGlnbjsKICAgICAgICAg +ICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoJ2RhdGEtbWVkaWEtaWQnLCBtZWRpYUlkKTsKICAgICAg +ICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoJ2RhdGEtbWVkaWEtdHlwZScsIHR5cGUpOwogICAg +ICAgICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgnZGF0YS1tZWRpYS11cmwnLCB1cmwpOwogICAg +ICAgICAgICBlbGVtZW50LmNvbnRlbnRFZGl0YWJsZSA9ICdmYWxzZSc7CiAgICAgICAgICAgIGVs +ZW1lbnQudGl0bGUgPSBsYWJlbCArICcgYWJzcGllbGVuOiAnICsgdGl0bGU7CiAgICAgICAgICAg +IGVsZW1lbnQuaW5uZXJIVE1MID0gJzxzcGFuIGNsYXNzPSJkcml2ZS1lbWJlZC1pY29uIGljb24t +JyArIHR5cGUgKyAnIj48L3NwYW4+JyArCiAgICAgICAgICAgICAgICAnPHNwYW4gY2xhc3M9ImRy +aXZlLWVtYmVkLWxhYmVsIj4nICsgRHJpdmVQb3J0YWwuZXNjYXBlSFRNTCh0aXRsZSkgKyAnPC9z +cGFuPic7CiAgICAgICAgICAgIGVsZW1lbnQub25jbGljayA9IGZ1bmN0aW9uKGUpIHsgZS5wcmV2 +ZW50RGVmYXVsdCgpOyBlLnN0b3BQcm9wYWdhdGlvbigpOyBvcGVuTWVkaWFNb2RhbCh1cmwsIHR5 +cGUsIHRpdGxlKTsgfTsKICAgICAgICB9IGVsc2UgaWYgKG9wdHMuZGlzcGxheU1vZGUgPT09ICdv +ZmZpY2UtaW5saW5lJyAmJiAodHlwZSA9PT0gJ2RvY3gnIHx8IHR5cGUgPT09ICd4bHN4JyB8fCB0 +eXBlID09PSAncHB0eCcpKSB7CiAgICAgICAgICAgIC8vIE9mZmljZS1EYXRlaWVuIGFscyBrbGlj +a2JhcmVzIEljb24tRWxlbWVudCBpbSBBcnRpa2VsCiAgICAgICAgICAgIGVsZW1lbnQgPSBkb2N1 +bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKICAgICAgICAgICAgZWxlbWVudC5jbGFzc05hbWUg +PSAnZHJpdmUtbWVkaWEgZHJpdmUtbWVkaWEtZW1iZWQgZHJpdmUtYWxpZ24tJyArIG9wdHMuYWxp +Z247CiAgICAgICAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKCdkYXRhLW1lZGlhLWlkJywgbWVk +aWFJZCk7CiAgICAgICAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKCdkYXRhLW1lZGlhLXR5cGUn +LCB0eXBlKTsKICAgICAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoJ2RhdGEtbWVkaWEtdXJs +JywgdXJsKTsKICAgICAgICAgICAgZWxlbWVudC5jb250ZW50RWRpdGFibGUgPSAnZmFsc2UnOwog +ICAgICAgICAgICBlbGVtZW50LnRpdGxlID0gdHlwZS50b1VwcGVyQ2FzZSgpICsgJyBoZXJ1bnRl +cmxhZGVuOiAnICsgdGl0bGU7CiAgICAgICAgICAgIGVsZW1lbnQuaW5uZXJIVE1MID0gJzxzcGFu +IGNsYXNzPSJkcml2ZS1lbWJlZC1pY29uIGljb24tJyArIHR5cGUgKyAnIj48L3NwYW4+JyArCiAg +ICAgICAgICAgICAgICAnPHNwYW4gY2xhc3M9ImRyaXZlLWVtYmVkLWxhYmVsIj4nICsgRHJpdmVQ +b3J0YWwuZXNjYXBlSFRNTCh0aXRsZSkgKyAnPC9zcGFuPic7CiAgICAgICAgICAgIGVsZW1lbnQu +b25jbGljayA9IGZ1bmN0aW9uKGUpIHsgZS5wcmV2ZW50RGVmYXVsdCgpOyBlLnN0b3BQcm9wYWdh +dGlvbigpOyBvcGVuTWVkaWFNb2RhbCh1cmwsIHR5cGUsIHRpdGxlKTsgfTsKICAgICAgICB9Cgog +ICAgICAgIGlmICghZWxlbWVudCkgcmV0dXJuOwoKICAgICAgICAvLyBJbnNlcnQgYXQgY3Vyc29y +IHBvc2l0aW9uIG9yIGFwcGVuZAogICAgICAgIGNvbnN0IHNlbCA9IHdpbmRvdy5nZXRTZWxlY3Rp +b24oKTsKICAgICAgICBpZiAodGhpcy5fc2F2ZWRFZGl0b3JSYW5nZSAmJiBlZGl0b3JJbnB1dC5j +b250YWlucyh0aGlzLl9zYXZlZEVkaXRvclJhbmdlLmNvbW1vbkFuY2VzdG9yQ29udGFpbmVyKSkg +ewogICAgICAgICAgICBzZWwucmVtb3ZlQWxsUmFuZ2VzKCk7CiAgICAgICAgICAgIHNlbC5hZGRS +YW5nZSh0aGlzLl9zYXZlZEVkaXRvclJhbmdlKTsKICAgICAgICAgICAgY29uc3QgcmFuZ2UgPSBz +ZWwuZ2V0UmFuZ2VBdCgwKTsKICAgICAgICAgICAgcmFuZ2UuZGVsZXRlQ29udGVudHMoKTsKICAg +ICAgICAgICAgcmFuZ2UuaW5zZXJ0Tm9kZShlbGVtZW50KTsKICAgICAgICAgICAgLy8gUGxhY2Ug +Y3Vyc29yIGFmdGVyIGVsZW1lbnQKICAgICAgICAgICAgcmFuZ2Uuc2V0U3RhcnRBZnRlcihlbGVt +ZW50KTsKICAgICAgICAgICAgcmFuZ2UuY29sbGFwc2UodHJ1ZSk7CiAgICAgICAgICAgIHNlbC5y +ZW1vdmVBbGxSYW5nZXMoKTsKICAgICAgICAgICAgc2VsLmFkZFJhbmdlKHJhbmdlKTsKICAgICAg +ICAgICAgdGhpcy5fc2F2ZWRFZGl0b3JSYW5nZSA9IHJhbmdlLmNsb25lUmFuZ2UoKTsKICAgICAg +ICB9IGVsc2UgewogICAgICAgICAgICBlZGl0b3JJbnB1dC5hcHBlbmRDaGlsZChlbGVtZW50KTsK +ICAgICAgICB9CiAgICB9LAoKICAgIC8vIC0tLSBNZWRpYSBDb250ZXh0IE1lbnUgKGluIEVkaXRv +cikgLS0tCiAgICBfY29udGV4dFRhcmdldDogbnVsbCwKCiAgICAvLyAtLS0gU2NobGFnd8O2cnRl +ciAtLS0KICAgIFBSRURFRklORURfS0VZV09SRFM6IFsKICAgICAgICAnU296aWFsdm9yc2Nocmlm +dGVuJywgJ0xhZHVuZ3NzaWNoZXJ1bmcnLCAnw5xiZXJsYWR1bmcnLCAnS09NJywgJ0dHVlMnLAog +ICAgICAgICdGYWhyemV1Z3RlY2huaWsnLCAnVGVjaEtvbnRyb2xsVk8nLCAnS2Fib3RhZ2UnLCAn +RG9rdW1lbnRlbmbDpGxzY2h1bmcnLAogICAgICAgICdadWxhc3N1bmdlbicsICdadWxhc3N1bmdl +biBuYXRpb25hbCcsICdadWxhc3N1bmdlbiBpbnRlcm5hdGlvbmFsJywKICAgICAgICAnQWxrb2hv +bCcsICdCVE0nLCAnR2VzY2h3aW5kaWdrZWl0JywgJ0Fic3RhbmQnLCAnRmFsc2NoZmFocmVyJywK +ICAgICAgICAnVmVyZm9sZ3VuZ3NmYWhydCcsICdUdW5uZWwnLCAnU3TDtnJmYWxsJywgJ0ZvdG9n +cmFmaWUnLAogICAgICAgICdGb3RvZ3JhZmllIEJyw7xja2UnLCAnRm90b2dyYWZpZSBCYXVzdGVs +bGUnLCAnRm90b2dyYWZpZSBBYnN0YW5kJywKICAgICAgICAnVHVuaW5nJywgJ1ZLUicsICdTY2hs +ZXBwZW4nLCAnU2Nocm90dHNhbW1sZXInCiAgICBdLAogICAgLy8gVW50ZXJrYXRlZ29yaWVuOiBL +YXRlZ29yaWUgLT4gU3ViLVRhZ3MgKGZ1ZXIgS2xhbW1lcnZlcm1lcmsgaW0gVGl0ZWwgKyBBdXRv +LVRhZykKICAgIENBVEVHT1JZX1NVQlRBR1M6IHsKICAgICAgICAnWnVsYXNzdW5nZW4nOiBbJ25h +dGlvbmFsJywgJ2ludGVybmF0aW9uYWwnXSwKICAgICAgICAnRm90b2dyYWZpZSc6ICBbJ0Jyw7xj +a2UnLCAnQmF1c3RlbGxlJywgJ0Fic3RhbmQnXQogICAgfSwKICAgIF9jdXJyZW50S2V5d29yZHM6 +IFtdLAoKICAgIF9nZXRBbGxLbm93bktleXdvcmRzKCkgewogICAgICAgIGNvbnN0IHNldCA9IG5l +dyBTZXQodGhpcy5QUkVERUZJTkVEX0tFWVdPUkRTKTsKICAgICAgICBEcml2ZUZTLmRvY3VtZW50 +cy5mb3JFYWNoKGQgPT4gKGQuc2NobGFnd29lcnRlciB8fCBbXSkuZm9yRWFjaChrID0+IHNldC5h +ZGQoaykpKTsKICAgICAgICByZXR1cm4gWy4uLnNldF0uc29ydCgoYSwgYikgPT4gYS5sb2NhbGVD +b21wYXJlKGIsICdkZScpKTsKICAgIH0sCgogICAgX3JlbmRlcktleXdvcmRzKCkgewogICAgICAg +IGNvbnN0IGNvbnRhaW5lciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdlZGl0b3JLZXl3b3Jk +cycpOwogICAgICAgIGNvbnN0IGlucHV0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2VkaXRv +cktleXdvcmRJbnB1dCcpOwogICAgICAgIGNvbnRhaW5lci5xdWVyeVNlbGVjdG9yQWxsKCcua2V5 +d29yZC1waWxsJykuZm9yRWFjaChwID0+IHAucmVtb3ZlKCkpOwogICAgICAgIHRoaXMuX2N1cnJl +bnRLZXl3b3Jkcy5mb3JFYWNoKChrdywgaSkgPT4gewogICAgICAgICAgICBjb25zdCBwaWxsID0g +ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpOwogICAgICAgICAgICBwaWxsLmNsYXNzTmFt +ZSA9ICdrZXl3b3JkLXBpbGwnOwogICAgICAgICAgICBwaWxsLmlubmVySFRNTCA9IERyaXZlUG9y +dGFsLmVzY2FwZUhUTUwoa3cpICsgJyA8c3BhbiBjbGFzcz0ia3ctcmVtb3ZlIiBvbmNsaWNrPSJE +cml2ZUVkaXRvci5yZW1vdmVLZXl3b3JkKCcgKyBpICsgJykiPiZ0aW1lczs8L3NwYW4+JzsKICAg +ICAgICAgICAgY29udGFpbmVyLmluc2VydEJlZm9yZShwaWxsLCBpbnB1dCk7CiAgICAgICAgfSk7 +CiAgICAgICAgdGhpcy5fcmVuZGVyU3VnZ2VzdGlvbnMoKTsKICAgIH0sCgogICAgX3JlbmRlclN1 +Z2dlc3Rpb25zKCkgewogICAgICAgIGNvbnN0IHBhbmVsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5 +SWQoJ2tleXdvcmRTdWdnZXN0aW9ucycpOwogICAgICAgIGlmICghcGFuZWwpIHJldHVybjsKICAg +ICAgICBjb25zdCBjdXJyZW50ID0gdGhpcy5fY3VycmVudEtleXdvcmRzOwogICAgICAgIGNvbnN0 +IGRvYyA9IHRoaXMuY3VycmVudERvYzsKICAgICAgICBjb25zdCBrYXRlZ29yaWUgPSBkb2MgPyBk +b2Mua2F0ZWdvcmllIDogJyc7CgogICAgICAgIC8vIEFsbGUgYmVrYW5udGVuIFNjaGxhZ3fDtnJ0 +ZXIgc2FtbWVsbiBtaXQgR2V3aWNodHVuZwogICAgICAgIHZhciBrd1Njb3JlcyA9IHt9OwogICAg +ICAgIERyaXZlRlMuZG9jdW1lbnRzLmZvckVhY2goZnVuY3Rpb24oZCkgewogICAgICAgICAgICB2 +YXIgcmVsZXZhbmNlID0gMTsKICAgICAgICAgICAgaWYgKGQua2F0ZWdvcmllID09PSBrYXRlZ29y +aWUpIHJlbGV2YW5jZSA9IDM7IC8vIGdsZWljaGUgS2F0ZWdvcmllID0gaMO2aGVyZSBSZWxldmFu +egogICAgICAgICAgICBpZiAoZC5wYXJlbnRJZCA9PT0gKGRvYyAmJiBkb2MuaWQpKSByZWxldmFu +Y2UgPSA0OyAvLyBVbnRlcmFydGlrZWwKICAgICAgICAgICAgaWYgKGRvYyAmJiBkb2MucGFyZW50 +SWQgJiYgZC5pZCA9PT0gZG9jLnBhcmVudElkKSByZWxldmFuY2UgPSA0OyAvLyDDnGJlcmFydGlr +ZWwKICAgICAgICAgICAgLy8gVGhlbWVuw6RobmxpY2hrZWl0OiBnZW1laW5zYW1lIFNjaGxhZ3fD +tnJ0ZXIKICAgICAgICAgICAgdmFyIG92ZXJsYXAgPSAoZC5zY2hsYWd3b2VydGVyIHx8IFtdKS5m +aWx0ZXIoZnVuY3Rpb24oaykgeyByZXR1cm4gY3VycmVudC5pbmNsdWRlcyhrKTsgfSkubGVuZ3Ro +OwogICAgICAgICAgICBpZiAob3ZlcmxhcCA+IDApIHJlbGV2YW5jZSArPSBvdmVybGFwICogMjsK +ICAgICAgICAgICAgKGQuc2NobGFnd29lcnRlciB8fCBbXSkuZm9yRWFjaChmdW5jdGlvbihrKSB7 +CiAgICAgICAgICAgICAgICBpZiAoIWN1cnJlbnQuaW5jbHVkZXMoaykpIHsKICAgICAgICAgICAg +ICAgICAgICBrd1Njb3Jlc1trXSA9IChrd1Njb3Jlc1trXSB8fCAwKSArIHJlbGV2YW5jZTsKICAg +ICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSk7CiAgICAgICAgfSk7CgogICAgICAgIC8vIFZv +cmRlZmluaWVydGUgS2V5d29yZHMgYWxzIEJhc2lzLVZvcnNjaGzDpGdlIG1pdCBuaWVkcmlnZXIg +R2V3aWNodHVuZwogICAgICAgIHRoaXMuUFJFREVGSU5FRF9LRVlXT1JEUy5mb3JFYWNoKGZ1bmN0 +aW9uKGspIHsKICAgICAgICAgICAgaWYgKCFjdXJyZW50LmluY2x1ZGVzKGspICYmICFrd1Njb3Jl +c1trXSkga3dTY29yZXNba10gPSAwLjU7CiAgICAgICAgfSk7CiAgICAgICAgLy8gVW50ZXJrYXRl +Z29yaWUtU3ViLVRhZ3MgZGVyIGFrdHVlbGxlbiBLYXRlZ29yaWUgaG9jaCBwcmlvcmlzaWVyZW4K +ICAgICAgICB2YXIgY2F0U3VicyA9IHRoaXMuQ0FURUdPUllfU1VCVEFHU1trYXRlZ29yaWVdIHx8 +IFtdOwogICAgICAgIGNhdFN1YnMuZm9yRWFjaChmdW5jdGlvbihzKSB7CiAgICAgICAgICAgIGlm +ICghY3VycmVudC5pbmNsdWRlcyhzKSkga3dTY29yZXNbc10gPSAoa3dTY29yZXNbc10gfHwgMCkg +KyA1OwogICAgICAgIH0pOwogICAgICAgIHZhciBzb3J0ZWQgPSBPYmplY3QuZW50cmllcyhrd1Nj +b3Jlcykuc29ydChmdW5jdGlvbihhLGIpeyByZXR1cm4gYlsxXSAtIGFbMV07IH0pLnNsaWNlKDAs +IDE1KTsKCiAgICAgICAgaWYgKHNvcnRlZC5sZW5ndGggPT09IDApIHsKICAgICAgICAgICAgcGFu +ZWwuaW5uZXJIVE1MID0gJyc7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CgogICAgICAg +IHBhbmVsLmlubmVySFRNTCA9ICc8c3BhbiBzdHlsZT0iZm9udC1zaXplOjEwcHg7Y29sb3I6dmFy +KC0tdGV4dC1tdXRlZCk7bWFyZ2luLXJpZ2h0OjRweDsiPlZvcnNjaGzDpGdlOjwvc3Bhbj4nICsK +ICAgICAgICAgICAgc29ydGVkLm1hcChmdW5jdGlvbihrdikgewogICAgICAgICAgICAgICAgcmV0 +dXJuICc8c3BhbiBjbGFzcz0ia2V5d29yZC1zdWdnZXN0aW9uIiBvbmNsaWNrPSJEcml2ZUVkaXRv +ci5hZGRLZXl3b3JkKFwnJyArIERyaXZlUG9ydGFsLmVzY2FwZUF0dHIoa3ZbMF0pICsgJ1wnKSI+ +JyArIERyaXZlUG9ydGFsLmVzY2FwZUhUTUwoa3ZbMF0pICsgJzwvc3Bhbj4nOwogICAgICAgICAg +ICB9KS5qb2luKCcnKTsKICAgIH0sCgogICAgYWRkS2V5d29yZCh3b3JkKSB7CiAgICAgICAgd29y +ZCA9IHdvcmQudHJpbSgpOwogICAgICAgIGlmICghd29yZCB8fCB0aGlzLl9jdXJyZW50S2V5d29y +ZHMuaW5jbHVkZXMod29yZCkpIHJldHVybjsKICAgICAgICB0aGlzLl9jdXJyZW50S2V5d29yZHMu +cHVzaCh3b3JkKTsKICAgICAgICB0aGlzLl9yZW5kZXJLZXl3b3JkcygpOwogICAgICAgIGRvY3Vt +ZW50LmdldEVsZW1lbnRCeUlkKCdlZGl0b3JLZXl3b3JkSW5wdXQnKS52YWx1ZSA9ICcnOwogICAg +ICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdrZXl3b3JkQXV0b2NvbXBsZXRlJykuY2xhc3NM +aXN0LnJlbW92ZSgnYWN0aXZlJyk7CiAgICB9LAoKICAgIHJlbW92ZUtleXdvcmQoaW5kZXgpIHsK +ICAgICAgICB0aGlzLl9jdXJyZW50S2V5d29yZHMuc3BsaWNlKGluZGV4LCAxKTsKICAgICAgICB0 +aGlzLl9yZW5kZXJLZXl3b3JkcygpOwogICAgfSwKCiAgICBfc2V0dXBLZXl3b3JkSW5wdXQoKSB7 +CiAgICAgICAgY29uc3QgaW5wdXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZWRpdG9yS2V5 +d29yZElucHV0Jyk7CiAgICAgICAgY29uc3QgYWMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgn +a2V5d29yZEF1dG9jb21wbGV0ZScpOwogICAgICAgIGlucHV0Lm9ua2V5ZG93biA9IChlKSA9PiB7 +CiAgICAgICAgICAgIGlmIChlLmtleSA9PT0gJ0VudGVyJyB8fCBlLmtleSA9PT0gJywnKSB7CiAg +ICAgICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7CiAgICAgICAgICAgICAgICB0aGlzLmFk +ZEtleXdvcmQoaW5wdXQudmFsdWUucmVwbGFjZSgnLCcsICcnKSk7CiAgICAgICAgICAgIH0gZWxz +ZSBpZiAoZS5rZXkgPT09ICdCYWNrc3BhY2UnICYmICFpbnB1dC52YWx1ZSAmJiB0aGlzLl9jdXJy +ZW50S2V5d29yZHMubGVuZ3RoID4gMCkgewogICAgICAgICAgICAgICAgdGhpcy5yZW1vdmVLZXl3 +b3JkKHRoaXMuX2N1cnJlbnRLZXl3b3Jkcy5sZW5ndGggLSAxKTsKICAgICAgICAgICAgfQogICAg +ICAgIH07CiAgICAgICAgaW5wdXQub25pbnB1dCA9ICgpID0+IHsKICAgICAgICAgICAgY29uc3Qg +cSA9IGlucHV0LnZhbHVlLnRvTG93ZXJDYXNlKCkudHJpbSgpOwogICAgICAgICAgICBpZiAocS5s +ZW5ndGggPCAxKSB7IGFjLmNsYXNzTGlzdC5yZW1vdmUoJ2FjdGl2ZScpOyByZXR1cm47IH0KICAg +ICAgICAgICAgY29uc3Qga25vd24gPSB0aGlzLl9nZXRBbGxLbm93bktleXdvcmRzKCkuZmlsdGVy +KGsgPT4KICAgICAgICAgICAgICAgIGsudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhxKSAmJiAhdGhp +cy5fY3VycmVudEtleXdvcmRzLmluY2x1ZGVzKGspCiAgICAgICAgICAgICkuc2xpY2UoMCwgOCk7 +CiAgICAgICAgICAgIGlmIChrbm93bi5sZW5ndGggPT09IDApIHsgYWMuY2xhc3NMaXN0LnJlbW92 +ZSgnYWN0aXZlJyk7IHJldHVybjsgfQogICAgICAgICAgICBhYy5pbm5lckhUTUwgPSBrbm93bi5t +YXAoayA9PgogICAgICAgICAgICAgICAgJzxkaXYgY2xhc3M9ImtleXdvcmQtYXV0b2NvbXBsZXRl +LWl0ZW0iIG9ubW91c2Vkb3duPSJEcml2ZUVkaXRvci5hZGRLZXl3b3JkKFwnJyArIERyaXZlUG9y +dGFsLmVzY2FwZUF0dHIoaykgKyAnXCcpIj4nICsgRHJpdmVQb3J0YWwuZXNjYXBlSFRNTChrKSAr +ICc8L2Rpdj4nCiAgICAgICAgICAgICkuam9pbignJyk7CiAgICAgICAgICAgIGFjLmNsYXNzTGlz +dC5hZGQoJ2FjdGl2ZScpOwogICAgICAgIH07CiAgICAgICAgaW5wdXQub25ibHVyID0gKCkgPT4g +c2V0VGltZW91dCgoKSA9PiBhYy5jbGFzc0xpc3QucmVtb3ZlKCdhY3RpdmUnKSwgMjAwKTsKICAg +IH0sCgogICAgX3NlbGVjdGVkQmxvY2s6IG51bGwsCgogICAgX3NlbGVjdEJsb2NrKGJsb2NrKSB7 +CiAgICAgICAgdGhpcy5fZGVzZWxlY3RCbG9jaygpOwogICAgICAgIHRoaXMuX3NlbGVjdGVkQmxv +Y2sgPSBibG9jazsKICAgICAgICBibG9jay5zdHlsZS5vdXRsaW5lID0gJzJweCBzb2xpZCB2YXIo +LS10ZXh0LWhlYWRpbmcpJzsKICAgICAgICBibG9jay5zdHlsZS5vdXRsaW5lT2Zmc2V0ID0gJzJw +eCc7CiAgICB9LAoKICAgIF9kZXNlbGVjdEJsb2NrKCkgewogICAgICAgIGlmICh0aGlzLl9zZWxl +Y3RlZEJsb2NrKSB7CiAgICAgICAgICAgIHRoaXMuX3NlbGVjdGVkQmxvY2suc3R5bGUub3V0bGlu +ZSA9ICcnOwogICAgICAgICAgICB0aGlzLl9zZWxlY3RlZEJsb2NrLnN0eWxlLm91dGxpbmVPZmZz +ZXQgPSAnJzsKICAgICAgICAgICAgdGhpcy5fc2VsZWN0ZWRCbG9jayA9IG51bGw7CiAgICAgICAg +fQogICAgfSwKCiAgICBzZXR1cEVkaXRvck1lZGlhRXZlbnRzKCkgewogICAgICAgIGNvbnN0IGVk +aXRvcklucHV0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2VkaXRvcklucHV0Jyk7CiAgICAg +ICAgY29uc3Qgc2VsZiA9IHRoaXM7CgogICAgICAgIGVkaXRvcklucHV0LmFkZEV2ZW50TGlzdGVu +ZXIoJ2NsaWNrJywgKGUpID0+IHsKICAgICAgICAgICAgY29uc3QgbWVkaWEgPSBlLnRhcmdldC5j +bG9zZXN0KCcuZHJpdmUtbWVkaWEnKTsKICAgICAgICAgICAgaWYgKG1lZGlhICYmIGVkaXRvcklu +cHV0LmNvbnRhaW5zKG1lZGlhKSkgewogICAgICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgp +OwogICAgICAgICAgICAgICAgdGhpcy5zaG93Q29udGV4dE1lbnUobWVkaWEsIGUpOwogICAgICAg +ICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICB9CgogICAgICAgICAgICAvLyBLbGljayBhdWYg +QWNjb3JkaW9uLCBGQVEsIFRhYmVsbGU6IG1hcmtpZXJlbgogICAgICAgICAgICB2YXIgYmxvY2sg +PSBlLnRhcmdldC5jbG9zZXN0KCcuZHJpdmUtYWNjb3JkaW9uLCAuZHJpdmUtZmFxLCAuZHJpdmUt +dGFibGUtd3JhcCwgLmRyaXZlLWluZm9ib3gsIGhyLmRyaXZlLWRpdmlkZXInKTsKICAgICAgICAg +ICAgaWYgKGJsb2NrICYmIGVkaXRvcklucHV0LmNvbnRhaW5zKGJsb2NrKSkgewogICAgICAgICAg +ICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpOwogICAgICAgICAgICAgICAgdGhpcy5fc2VsZWN0Qmxv +Y2soYmxvY2spOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgdGhpcy5fZGVz +ZWxlY3RCbG9jaygpOwogICAgICAgICAgICAgICAgdGhpcy5oaWRlQ29udGV4dE1lbnUoKTsKICAg +ICAgICAgICAgfQogICAgICAgIH0pOwoKICAgICAgICAvLyBCYWNrc3BhY2UvRGVsZXRlIGxvZXNj +aHQgbWFya2llcnRlbiBCbG9jawogICAgICAgIGVkaXRvcklucHV0LmFkZEV2ZW50TGlzdGVuZXIo +J2tleWRvd24nLCBmdW5jdGlvbihlKSB7CiAgICAgICAgICAgIGlmIChzZWxmLl9zZWxlY3RlZEJs +b2NrICYmIChlLmtleSA9PT0gJ0JhY2tzcGFjZScgfHwgZS5rZXkgPT09ICdEZWxldGUnKSkgewog +ICAgICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpOwogICAgICAgICAgICAgICAgc2VsZi5f +c2VsZWN0ZWRCbG9jay5yZW1vdmUoKTsKICAgICAgICAgICAgICAgIHNlbGYuX3NlbGVjdGVkQmxv +Y2sgPSBudWxsOwogICAgICAgICAgICAgICAgc2VsZi5zYXZlU3RhdGUoKTsKICAgICAgICAgICAg +fQogICAgICAgIH0pOwogICAgfSwKCiAgICBzaG93Q29udGV4dE1lbnUoZWxlbWVudCwgZXZlbnQp +IHsKICAgICAgICB0aGlzLl9jb250ZXh0VGFyZ2V0ID0gZWxlbWVudDsKICAgICAgICBjb25zdCBt +ZW51ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ21lZGlhQ29udGV4dE1lbnUnKTsKICAgICAg +ICBjb25zdCByZWN0ID0gZWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKCiAgICAgICAg +bWVudS5zdHlsZS50b3AgPSAocmVjdC5ib3R0b20gKyB3aW5kb3cuc2Nyb2xsWSArIDUpICsgJ3B4 +JzsKICAgICAgICBtZW51LnN0eWxlLmxlZnQgPSBNYXRoLm1pbihyZWN0LmxlZnQgKyB3aW5kb3cu +c2Nyb2xsWCwgd2luZG93LmlubmVyV2lkdGggLSAyMDApICsgJ3B4JzsKICAgICAgICBtZW51LmNs +YXNzTGlzdC5hZGQoJ2FjdGl2ZScpOwoKICAgICAgICAvLyBIaWdobGlnaHQgY3VycmVudCBhbGln +bm1lbnQKICAgICAgICBjb25zdCBjdXJyZW50QWxpZ24gPSBlbGVtZW50LmNsYXNzTGlzdC5jb250 +YWlucygnZHJpdmUtYWxpZ24tbGVmdCcpID8gJ2xlZnQnCiAgICAgICAgICAgIDogZWxlbWVudC5j +bGFzc0xpc3QuY29udGFpbnMoJ2RyaXZlLWFsaWduLXJpZ2h0JykgPyAncmlnaHQnIDogJ2NlbnRl +cic7CiAgICAgICAgbWVudS5xdWVyeVNlbGVjdG9yQWxsKCcubWVkaWEtY29udGV4dC1ncm91cCBi +dXR0b24nKS5mb3JFYWNoKGJ0biA9PiB7CiAgICAgICAgICAgIGJ0bi5jbGFzc0xpc3QudG9nZ2xl +KCdhY3RpdmUnLCBidG4uZ2V0QXR0cmlidXRlKCdkYXRhLWFsaWduJykgPT09IGN1cnJlbnRBbGln +bik7CiAgICAgICAgfSk7CiAgICB9LAoKICAgIGhpZGVDb250ZXh0TWVudSgpIHsKICAgICAgICBk +b2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbWVkaWFDb250ZXh0TWVudScpLmNsYXNzTGlzdC5yZW1v +dmUoJ2FjdGl2ZScpOwogICAgICAgIHRoaXMuX2NvbnRleHRUYXJnZXQgPSBudWxsOwogICAgfSwK +CiAgICBjb250ZXh0QWxpZ24oYWxpZ24pIHsKICAgICAgICBpZiAoIXRoaXMuX2NvbnRleHRUYXJn +ZXQpIHJldHVybjsKICAgICAgICB0aGlzLl9jb250ZXh0VGFyZ2V0LmNsYXNzTGlzdC5yZW1vdmUo +J2RyaXZlLWFsaWduLWxlZnQnLCAnZHJpdmUtYWxpZ24tY2VudGVyJywgJ2RyaXZlLWFsaWduLXJp +Z2h0Jyk7CiAgICAgICAgdGhpcy5fY29udGV4dFRhcmdldC5jbGFzc0xpc3QuYWRkKCdkcml2ZS1h +bGlnbi0nICsgYWxpZ24pOwoKICAgICAgICAvLyBVcGRhdGUgbWVkaWEgbWV0YWRhdGEKICAgICAg +ICBjb25zdCBtZWRpYUlkID0gdGhpcy5fY29udGV4dFRhcmdldC5nZXRBdHRyaWJ1dGUoJ2RhdGEt +bWVkaWEtaWQnKTsKICAgICAgICBpZiAobWVkaWFJZCAmJiB0aGlzLmN1cnJlbnREb2MpIHsKICAg +ICAgICAgICAgY29uc3QgbWVkaWEgPSAodGhpcy5jdXJyZW50RG9jLm1lZGlhcyB8fCBbXSkuZmlu +ZChtID0+IG0ubWVkaWFJZCA9PT0gbWVkaWFJZCk7CiAgICAgICAgICAgIGlmIChtZWRpYSkgbWVk +aWEuYWxpZ25tZW50ID0gYWxpZ247CiAgICAgICAgfQoKICAgICAgICB0aGlzLmhpZGVDb250ZXh0 +TWVudSgpOwogICAgfSwKCiAgICBjb250ZXh0RWRpdENhcHRpb24oKSB7CiAgICAgICAgaWYgKCF0 +aGlzLl9jb250ZXh0VGFyZ2V0KSByZXR1cm47CiAgICAgICAgY29uc3QgZmlnY2FwdGlvbiA9IHRo +aXMuX2NvbnRleHRUYXJnZXQucXVlcnlTZWxlY3RvcignZmlnY2FwdGlvbiwgLmRyaXZlLW1lZGlh +LWNhcHRpb24nKTsKICAgICAgICBjb25zdCBjdXJyZW50ID0gZmlnY2FwdGlvbiA/IGZpZ2NhcHRp +b24udGV4dENvbnRlbnQgOiAnJzsKICAgICAgICBjb25zdCBuZXdDYXB0aW9uID0gcHJvbXB0KCdV +bnRlcnRpdGVsIGJlYXJiZWl0ZW46JywgY3VycmVudCk7CiAgICAgICAgaWYgKG5ld0NhcHRpb24g +PT09IG51bGwpIHJldHVybjsKCiAgICAgICAgaWYgKGZpZ2NhcHRpb24pIHsKICAgICAgICAgICAg +aWYgKG5ld0NhcHRpb24pIHsgZmlnY2FwdGlvbi50ZXh0Q29udGVudCA9IG5ld0NhcHRpb247IH0K +ICAgICAgICAgICAgZWxzZSB7IGZpZ2NhcHRpb24ucmVtb3ZlKCk7IH0KICAgICAgICB9IGVsc2Ug +aWYgKG5ld0NhcHRpb24pIHsKICAgICAgICAgICAgY29uc3QgY2FwID0gZG9jdW1lbnQuY3JlYXRl +RWxlbWVudCgnZmlnY2FwdGlvbicpOwogICAgICAgICAgICBjYXAudGV4dENvbnRlbnQgPSBuZXdD +YXB0aW9uOwogICAgICAgICAgICB0aGlzLl9jb250ZXh0VGFyZ2V0LmFwcGVuZENoaWxkKGNhcCk7 +CiAgICAgICAgfQoKICAgICAgICAvLyBVcGRhdGUgbWV0YWRhdGEKICAgICAgICBjb25zdCBtZWRp +YUlkID0gdGhpcy5fY29udGV4dFRhcmdldC5nZXRBdHRyaWJ1dGUoJ2RhdGEtbWVkaWEtaWQnKTsK +ICAgICAgICBpZiAobWVkaWFJZCAmJiB0aGlzLmN1cnJlbnREb2MpIHsKICAgICAgICAgICAgY29u +c3QgbWVkaWEgPSAodGhpcy5jdXJyZW50RG9jLm1lZGlhcyB8fCBbXSkuZmluZChtID0+IG0ubWVk +aWFJZCA9PT0gbWVkaWFJZCk7CiAgICAgICAgICAgIGlmIChtZWRpYSkgbWVkaWEuZGVzY3JpcHRp +b24gPSBuZXdDYXB0aW9uOwogICAgICAgIH0KCiAgICAgICAgdGhpcy5oaWRlQ29udGV4dE1lbnUo +KTsKICAgIH0sCgogICAgY29udGV4dFJlbW92ZSgpIHsKICAgICAgICBpZiAoIXRoaXMuX2NvbnRl +eHRUYXJnZXQpIHJldHVybjsKICAgICAgICBjb25zdCBtZWRpYUlkID0gdGhpcy5fY29udGV4dFRh +cmdldC5nZXRBdHRyaWJ1dGUoJ2RhdGEtbWVkaWEtaWQnKTsKICAgICAgICBpZiAobWVkaWFJZCAm +JiB0aGlzLmN1cnJlbnREb2MgJiYgdGhpcy5jdXJyZW50RG9jLm1lZGlhcykgewogICAgICAgICAg +ICBjb25zdCBpZHggPSB0aGlzLmN1cnJlbnREb2MubWVkaWFzLmZpbmRJbmRleChtID0+IG0ubWVk +aWFJZCA9PT0gbWVkaWFJZCk7CiAgICAgICAgICAgIGlmIChpZHggPj0gMCkgewogICAgICAgICAg +ICAgICAgY29uc3QgbWVkaWEgPSB0aGlzLmN1cnJlbnREb2MubWVkaWFzW2lkeF07CiAgICAgICAg +ICAgICAgICAvLyBEYXRlaSBhdWYgZGVtIFNlcnZlciBsb2VzY2hlbgogICAgICAgICAgICAgICAg +aWYgKG1lZGlhLnVybCAmJiBEcml2ZUZTLm1vZGUgPT09ICdzZXJ2ZXInKSB7CiAgICAgICAgICAg +ICAgICAgICAgZmV0Y2goJy9hcGkvZGVsZXRlJywgewogICAgICAgICAgICAgICAgICAgICAgICBt +ZXRob2Q6ICdQT1NUJywKICAgICAgICAgICAgICAgICAgICAgICAgaGVhZGVyczogeyAnQ29udGVu +dC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb247IGNoYXJzZXQ9dXRmLTgnIH0sCiAgICAgICAgICAg +ICAgICAgICAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KHsgcGF0aDogbWVkaWEudXJsIH0pCiAg +ICAgICAgICAgICAgICAgICAgfSkuY2F0Y2goKCkgPT4ge30pOwogICAgICAgICAgICAgICAgfQog +ICAgICAgICAgICAgICAgdGhpcy5jdXJyZW50RG9jLm1lZGlhcy5zcGxpY2UoaWR4LCAxKTsKICAg +ICAgICAgICAgfQogICAgICAgIH0KICAgICAgICB0aGlzLl9jb250ZXh0VGFyZ2V0LnJlbW92ZSgp +OwogICAgICAgIHRoaXMuX3JlbmRlck1lZGlhTGlzdCgpOwogICAgICAgIHRoaXMuaGlkZUNvbnRl +eHRNZW51KCk7CiAgICAgICAgc2hvd1RvYXN0KCdNZWRpdW0gZW50ZmVybnQnLCAnc3VjY2Vzcycp +OwogICAgfSwKCiAgICAvLyAtLS0gTWVkaWVuLVZlcndhbHR1bmcgaW0gRWRpdG9yIC0tLQogICAg +dG9nZ2xlTWVkaWFQYW5lbCgpIHsKICAgICAgICBjb25zdCBwYW5lbCA9IGRvY3VtZW50LmdldEVs +ZW1lbnRCeUlkKCdlZGl0b3JNZWRpYVBhbmVsJyk7CiAgICAgICAgaWYgKHBhbmVsLnN0eWxlLmRp +c3BsYXkgPT09ICdub25lJykgewogICAgICAgICAgICB0aGlzLl9yZW5kZXJNZWRpYUxpc3QoKTsK +ICAgICAgICAgICAgcGFuZWwuc3R5bGUuZGlzcGxheSA9ICcnOwogICAgICAgIH0gZWxzZSB7CiAg +ICAgICAgICAgIHBhbmVsLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7CiAgICAgICAgfQogICAgfSwK +CiAgICBfcmVuZGVyTWVkaWFMaXN0KCkgewogICAgICAgIGNvbnN0IGNvbnRhaW5lciA9IGRvY3Vt +ZW50LmdldEVsZW1lbnRCeUlkKCdlZGl0b3JNZWRpYUxpc3QnKTsKICAgICAgICBjb25zdCBwYW5l +bCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdlZGl0b3JNZWRpYVBhbmVsJyk7CiAgICAgICAg +aWYgKCFjb250YWluZXIgfHwgIXRoaXMuY3VycmVudERvYykgcmV0dXJuOwogICAgICAgIGNvbnN0 +IG1lZGlhcyA9IHRoaXMuY3VycmVudERvYy5tZWRpYXMgfHwgW107CgogICAgICAgIGlmIChtZWRp +YXMubGVuZ3RoID09PSAwKSB7CiAgICAgICAgICAgIGNvbnRhaW5lci5pbm5lckhUTUwgPSAnPGRp +diBzdHlsZT0iZm9udC1zaXplOjEycHg7IGNvbG9yOnZhcigtLXRleHQtbXV0ZWQpOyBwYWRkaW5n +OjhweCAwOyB0ZXh0LWFsaWduOmNlbnRlcjsgbGluZS1oZWlnaHQ6MS44OyI+JyArCiAgICAgICAg +ICAgICAgICAnTm9jaCBrZWluZSBEYXRlaWVuIGhvY2hnZWxhZGVuLjxicj4nICsKICAgICAgICAg +ICAgICAgICc8YnV0dG9uIG9uY2xpY2s9IkRyaXZlRWRpdG9yLnNob3dVcGxvYWRNb2RhbCgpIiBz +dHlsZT0ibWFyZ2luLXRvcDo0cHg7cGFkZGluZzo0cHggMTRweDtib3JkZXI6MXB4IGRhc2hlZCB2 +YXIoLS1ib3JkZXItY29sb3IpO2JvcmRlci1yYWRpdXM6NHB4O2JhY2tncm91bmQ6bm9uZTtjdXJz +b3I6cG9pbnRlcjtmb250LXNpemU6MTJweDtjb2xvcjp2YXIoLS10ZXh0LWhlYWRpbmcpOyI+RGF0 +ZWllbiBob2NobGFkZW48L2J1dHRvbj4nICsKICAgICAgICAgICAgJzwvZGl2Pic7CiAgICAgICAg +ICAgIHJldHVybjsKICAgICAgICB9CgogICAgICAgIGNvbnRhaW5lci5pbm5lckhUTUwgPSBtZWRp +YXMubWFwKChtLCBpKSA9PiB7CiAgICAgICAgICAgIGNvbnN0IHR5cGUgPSAobS50eXBlIHx8ICdm +aWxlJykudG9VcHBlckNhc2UoKTsKICAgICAgICAgICAgY29uc3QgdGl0bGUgPSBEcml2ZVBvcnRh +bC5lc2NhcGVIVE1MKG0udGl0bGUgfHwgbS51cmwuc3BsaXQoJy8nKS5wb3AoKSk7CiAgICAgICAg +ICAgIGNvbnN0IGRlc2MgPSBtLmRlc2NyaXB0aW9uID8gRHJpdmVQb3J0YWwuZXNjYXBlSFRNTCht +LmRlc2NyaXB0aW9uKSA6ICcnOwogICAgICAgICAgICBjb25zdCBtb2RlID0gbS5kaXNwbGF5TW9k +ZSA9PT0gJ2lubGluZScgPyAnSW5saW5lJyA6IG0uZGlzcGxheU1vZGUgPT09ICdwZGYtaWZyYW1l +JyA/ICdFaW5nZWJldHRldCcgOiAnQW5oYW5nJzsKICAgICAgICAgICAgcmV0dXJuICc8ZGl2IHN0 +eWxlPSJkaXNwbGF5OmZsZXg7IGFsaWduLWl0ZW1zOmNlbnRlcjsgZ2FwOjhweDsgcGFkZGluZzo0 +cHggMDsgYm9yZGVyLWJvdHRvbToxcHggc29saWQgdmFyKC0tYm9yZGVyLWxpZ2h0KTsgZm9udC1z +aXplOjEycHg7Ij4nICsKICAgICAgICAgICAgICAgICc8c3BhbiBzdHlsZT0iZm9udC13ZWlnaHQ6 +NjAwOyBjb2xvcjp2YXIoLS10ZXh0LWhlYWRpbmcpOyBtaW4td2lkdGg6NDBweDsiPicgKyB0eXBl +ICsgJzwvc3Bhbj4nICsKICAgICAgICAgICAgICAgICc8c3BhbiBzdHlsZT0iZmxleDoxOyBvdmVy +ZmxvdzpoaWRkZW47IHRleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7IHdoaXRlLXNwYWNlOm5vd3JhcDsi +IHRpdGxlPSInICsgRHJpdmVQb3J0YWwuZXNjYXBlQXR0cihtLnVybCkgKyAnIj4nICsgdGl0bGUg +KyAnPC9zcGFuPicgKwogICAgICAgICAgICAgICAgJzxzcGFuIHN0eWxlPSJjb2xvcjp2YXIoLS10 +ZXh0LW11dGVkKTsgZm9udC1zaXplOjEwcHg7Ij4nICsgbW9kZSArICc8L3NwYW4+JyArCiAgICAg +ICAgICAgICAgICAnPGJ1dHRvbiBvbmNsaWNrPSJEcml2ZUVkaXRvci5lZGl0TWVkaWEoJyArIGkg +KyAnKSIgc3R5bGU9ImJhY2tncm91bmQ6bm9uZTsgYm9yZGVyOjFweCBzb2xpZCB2YXIoLS1ib3Jk +ZXItY29sb3IpOyBib3JkZXItcmFkaXVzOjNweDsgcGFkZGluZzoxcHggNnB4OyBmb250LXNpemU6 +MTFweDsgY3Vyc29yOnBvaW50ZXI7IGNvbG9yOnZhcigtLXRleHQtcHJpbWFyeSk7Ij5CZWFyYmVp +dGVuPC9idXR0b24+JyArCiAgICAgICAgICAgICAgICAnPGJ1dHRvbiBvbmNsaWNrPSJEcml2ZUVk +aXRvci5yZW1vdmVNZWRpYSgnICsgaSArICcpIiBzdHlsZT0iYmFja2dyb3VuZDpub25lOyBib3Jk +ZXI6MXB4IHNvbGlkICNkYzM1NDU7IGJvcmRlci1yYWRpdXM6M3B4OyBwYWRkaW5nOjFweCA2cHg7 +IGZvbnQtc2l6ZToxMXB4OyBjdXJzb3I6cG9pbnRlcjsgY29sb3I6I2RjMzU0NTsiPkzDtnNjaGVu +PC9idXR0b24+JyArCiAgICAgICAgICAgICc8L2Rpdj4nOwogICAgICAgIH0pLmpvaW4oJycpOwog +ICAgfSwKCiAgICBlZGl0TWVkaWEoaW5kZXgpIHsKICAgICAgICBpZiAoIXRoaXMuY3VycmVudERv +YyB8fCAhdGhpcy5jdXJyZW50RG9jLm1lZGlhcyB8fCAhdGhpcy5jdXJyZW50RG9jLm1lZGlhc1tp +bmRleF0pIHJldHVybjsKICAgICAgICBjb25zdCBtZWRpYSA9IHRoaXMuY3VycmVudERvYy5tZWRp +YXNbaW5kZXhdOwoKICAgICAgICBjb25zdCBuZXdUaXRsZSA9IHByb21wdCgnVGl0ZWw6JywgbWVk +aWEudGl0bGUgfHwgJycpOwogICAgICAgIGlmIChuZXdUaXRsZSA9PT0gbnVsbCkgcmV0dXJuOwog +ICAgICAgIG1lZGlhLnRpdGxlID0gbmV3VGl0bGU7CgogICAgICAgIGNvbnN0IG5ld0Rlc2MgPSBw +cm9tcHQoJ0Jlc2NocmVpYnVuZzonLCBtZWRpYS5kZXNjcmlwdGlvbiB8fCAnJyk7CiAgICAgICAg +aWYgKG5ld0Rlc2MgPT09IG51bGwpIHJldHVybjsKICAgICAgICBtZWRpYS5kZXNjcmlwdGlvbiA9 +IG5ld0Rlc2M7CgogICAgICAgIC8vIElubGluZS1NZWRpZW4gaW0gRWRpdG9yIGFrdHVhbGlzaWVy +ZW4gKGZpZ2NhcHRpb24pCiAgICAgICAgaWYgKG1lZGlhLm1lZGlhSWQpIHsKICAgICAgICAgICAg +Y29uc3QgZmlndXJlID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI2VkaXRvcklucHV0IFtkYXRh +LW1lZGlhLWlkPSInICsgbWVkaWEubWVkaWFJZCArICciXScpOwogICAgICAgICAgICBpZiAoZmln +dXJlKSB7CiAgICAgICAgICAgICAgICBsZXQgY2FwID0gZmlndXJlLnF1ZXJ5U2VsZWN0b3IoJ2Zp +Z2NhcHRpb24nKTsKICAgICAgICAgICAgICAgIGlmIChuZXdEZXNjKSB7CiAgICAgICAgICAgICAg +ICAgICAgaWYgKCFjYXApIHsgY2FwID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZmlnY2FwdGlv +bicpOyBmaWd1cmUuYXBwZW5kQ2hpbGQoY2FwKTsgfQogICAgICAgICAgICAgICAgICAgIGNhcC50 +ZXh0Q29udGVudCA9IG5ld0Rlc2M7CiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGNhcCkgewog +ICAgICAgICAgICAgICAgICAgIGNhcC5yZW1vdmUoKTsKICAgICAgICAgICAgICAgIH0KICAgICAg +ICAgICAgfQogICAgICAgIH0KCiAgICAgICAgdGhpcy5fcmVuZGVyTWVkaWFMaXN0KCk7CiAgICAg +ICAgc2hvd1RvYXN0KCdBbmhhbmcgYWt0dWFsaXNpZXJ0JywgJ3N1Y2Nlc3MnKTsKICAgIH0sCgog +ICAgcmVtb3ZlTWVkaWEoaW5kZXgpIHsKICAgICAgICBpZiAoIXRoaXMuY3VycmVudERvYyB8fCAh +dGhpcy5jdXJyZW50RG9jLm1lZGlhcyB8fCAhdGhpcy5jdXJyZW50RG9jLm1lZGlhc1tpbmRleF0p +IHJldHVybjsKICAgICAgICBjb25zdCBtZWRpYSA9IHRoaXMuY3VycmVudERvYy5tZWRpYXNbaW5k +ZXhdOwogICAgICAgIGNvbnN0IG5hbWUgPSBtZWRpYS50aXRsZSB8fCBtZWRpYS51cmwuc3BsaXQo +Jy8nKS5wb3AoKTsKCiAgICAgICAgLy8gQmVzdGFldGlndW5nc2RpYWxvZyBhbHMgTW9kYWwgKHN0 +YXR0IGJyb3dzZXItbmF0aXZlbSBjb25maXJtKQogICAgICAgIHZhciBvdmVybGF5ID0gZG9jdW1l +bnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CiAgICAgICAgb3ZlcmxheS5zdHlsZS5jc3NUZXh0ID0g +J3Bvc2l0aW9uOmZpeGVkO2luc2V0OjA7ei1pbmRleDoxMTAwMDtiYWNrZ3JvdW5kOnJnYmEoMCww +LDAsMC41KTtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpj +ZW50ZXI7JzsKICAgICAgICB2YXIgbW9kYWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYn +KTsKICAgICAgICBtb2RhbC5zdHlsZS5jc3NUZXh0ID0gJ2JhY2tncm91bmQ6dmFyKC0tYmctY2Fy +ZCwjZmZmKTtib3JkZXItcmFkaXVzOjEwcHg7cGFkZGluZzoyNHB4O21heC13aWR0aDo0MDBweDt3 +aWR0aDo5MCU7Ym94LXNoYWRvdzowIDhweCAzMnB4IHJnYmEoMCwwLDAsMC4yNSk7dGV4dC1hbGln +bjpjZW50ZXI7JzsKICAgICAgICBtb2RhbC5pbm5lckhUTUwgPQogICAgICAgICAgICAnPGRpdiBz +dHlsZT0iZm9udC1zaXplOjMycHg7bWFyZ2luLWJvdHRvbTo4cHg7Ij4mIzEyODQ2NTs8L2Rpdj4n +ICsKICAgICAgICAgICAgJzxkaXYgc3R5bGU9ImNvbG9yOnZhcigtLXRleHQtaGVhZGluZyk7Zm9u +dC1zaXplOjE1cHg7Zm9udC13ZWlnaHQ6NjAwO21hcmdpbi1ib3R0b206OHB4OyI+QW5oYW5nIGVu +dGZlcm5lbj88L2Rpdj4nICsKICAgICAgICAgICAgJzxkaXYgc3R5bGU9ImNvbG9yOnZhcigtLXRl +eHQtcHJpbWFyeSk7Zm9udC1zaXplOjEzcHg7bWFyZ2luLWJvdHRvbToxOHB4OyI+PHN0cm9uZz4n +ICsgRHJpdmVQb3J0YWwuZXNjYXBlSFRNTChuYW1lKSArICc8L3N0cm9uZz4gd2lyZCBhdXMgZGVt +IEFydGlrZWwgdW5kIHZvbSBTZXJ2ZXIgZ2Vsb2VzY2h0LjwvZGl2PicgKwogICAgICAgICAgICAn +PGRpdiBzdHlsZT0iZGlzcGxheTpmbGV4O2dhcDo4cHg7anVzdGlmeS1jb250ZW50OmNlbnRlcjsi +PicgKwogICAgICAgICAgICAgICAgJzxidXR0b24gaWQ9InJtTWVkaWFDYW5jZWwiIHN0eWxlPSJw +YWRkaW5nOjhweCAyMHB4O2JvcmRlci1yYWRpdXM6NnB4O2JvcmRlcjoxcHggc29saWQgdmFyKC0t +Ym9yZGVyLWNvbG9yKTtiYWNrZ3JvdW5kOnZhcigtLWJnLWNhcmQpO2NvbG9yOnZhcigtLXRleHQt +cHJpbWFyeSk7Y3Vyc29yOnBvaW50ZXI7Zm9udC1zaXplOjEzcHg7Ij5BYmJyZWNoZW48L2J1dHRv +bj4nICsKICAgICAgICAgICAgICAgICc8YnV0dG9uIGlkPSJybU1lZGlhQ29uZmlybSIgc3R5bGU9 +InBhZGRpbmc6OHB4IDIwcHg7Ym9yZGVyLXJhZGl1czo2cHg7Ym9yZGVyOm5vbmU7YmFja2dyb3Vu +ZDojZGMzNTQ1O2NvbG9yOiNmZmY7Y3Vyc29yOnBvaW50ZXI7Zm9udC13ZWlnaHQ6NjAwO2ZvbnQt +c2l6ZToxM3B4OyI+RW50ZmVybmVuPC9idXR0b24+JyArCiAgICAgICAgICAgICc8L2Rpdj4nOwog +ICAgICAgIG92ZXJsYXkuYXBwZW5kQ2hpbGQobW9kYWwpOwogICAgICAgIGRvY3VtZW50LmJvZHku +YXBwZW5kQ2hpbGQob3ZlcmxheSk7CgogICAgICAgIHZhciBzZWxmID0gdGhpczsKICAgICAgICBk +b2N1bWVudC5nZXRFbGVtZW50QnlJZCgncm1NZWRpYUNhbmNlbCcpLm9uY2xpY2sgPSBmdW5jdGlv +bigpIHsgb3ZlcmxheS5yZW1vdmUoKTsgfTsKICAgICAgICBvdmVybGF5Lm9uY2xpY2sgPSBmdW5j +dGlvbihlKSB7IGlmIChlLnRhcmdldCA9PT0gb3ZlcmxheSkgb3ZlcmxheS5yZW1vdmUoKTsgfTsK +ICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncm1NZWRpYUNvbmZpcm0nKS5vbmNsaWNr +ID0gZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIG92ZXJsYXkucmVtb3ZlKCk7CgogICAgICAgICAg +ICAvLyBJbmxpbmUtRWxlbWVudCBhdXMgRWRpdG9yIGVudGZlcm5lbgogICAgICAgICAgICBpZiAo +bWVkaWEubWVkaWFJZCkgewogICAgICAgICAgICAgICAgdmFyIGZpZ3VyZSA9IGRvY3VtZW50LnF1 +ZXJ5U2VsZWN0b3IoJyNlZGl0b3JJbnB1dCBbZGF0YS1tZWRpYS1pZD0iJyArIG1lZGlhLm1lZGlh +SWQgKyAnIl0nKTsKICAgICAgICAgICAgICAgIGlmIChmaWd1cmUpIGZpZ3VyZS5yZW1vdmUoKTsK +ICAgICAgICAgICAgfQoKICAgICAgICAgICAgLy8gRGF0ZWkgYXVmIGRlbSBTZXJ2ZXIgbG9lc2No +ZW4KICAgICAgICAgICAgaWYgKG1lZGlhLnVybCAmJiBEcml2ZUZTLm1vZGUgPT09ICdzZXJ2ZXIn +KSB7CiAgICAgICAgICAgICAgICBmZXRjaCgnL2FwaS9kZWxldGUnLCB7CiAgICAgICAgICAgICAg +ICAgICAgbWV0aG9kOiAnUE9TVCcsCiAgICAgICAgICAgICAgICAgICAgaGVhZGVyczogeyAnQ29u +dGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb247IGNoYXJzZXQ9dXRmLTgnIH0sCiAgICAgICAg +ICAgICAgICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkoeyBwYXRoOiBtZWRpYS51cmwgfSkKICAg +ICAgICAgICAgICAgIH0pLmNhdGNoKGZ1bmN0aW9uKCkge30pOwogICAgICAgICAgICB9CgogICAg +ICAgICAgICBzZWxmLmN1cnJlbnREb2MubWVkaWFzLnNwbGljZShpbmRleCwgMSk7CiAgICAgICAg +ICAgIHNlbGYuX3JlbmRlck1lZGlhTGlzdCgpOwogICAgICAgICAgICBzaG93VG9hc3QoJyInICsg +bmFtZSArICciIGVudGZlcm50JywgJ3N1Y2Nlc3MnKTsKICAgICAgICB9OwogICAgfSwKCiAgICAv +LyAtLS0gUGVzc2ltaXN0aWMgTG9ja2luZyAtLS0KICAgIGFzeW5jIGFjcXVpcmVMb2NrKGRvY0lk +KSB7CiAgICAgICAgaWYgKERyaXZlRlMubW9kZSA9PT0gJ3NlcnZlcicpIHsKICAgICAgICAgICAg +dHJ5IHsKICAgICAgICAgICAgICAgIGNvbnN0IHJlcyA9IGF3YWl0IGZldGNoKCcvYXBpL2xvY2sn +LCB7CiAgICAgICAgICAgICAgICAgICAgbWV0aG9kOiAnUE9TVCcsCiAgICAgICAgICAgICAgICAg +ICAgaGVhZGVyczogeyAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb247IGNoYXJzZXQ9 +dXRmLTgnIH0sCiAgICAgICAgICAgICAgICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkoeyBkb2NJ +ZDogZG9jSWQgfSkKICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgaWYgKHJlcy5v +aykgcmV0dXJuIHsgb2s6IHRydWUgfTsKICAgICAgICAgICAgICAgIGNvbnN0IGRhdGEgPSBhd2Fp +dCByZXMuanNvbigpOwogICAgICAgICAgICAgICAgcmV0dXJuIHsgb2s6IGZhbHNlLCBieTogZGF0 +YS5ieSB8fCAnVW5iZWthbm50JywgbWludXRlczogZGF0YS5taW51dGVzIHx8ICc/JyB9OwogICAg +ICAgICAgICB9IGNhdGNoIHsKICAgICAgICAgICAgICAgIC8vIEtlaW4gU2VydmVyIG9kZXIgRmVo +bGVyOiBMb2NrIHVlYmVyc3ByaW5nZW4KICAgICAgICAgICAgICAgIHJldHVybiB7IG9rOiB0cnVl +IH07CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgLy8gRmlsZXN5c3RlbS1Nb2R1czog +S2VpbiBMb2NraW5nIChTaW5nbGUtVXNlci1TemVuYXJpbykKICAgICAgICByZXR1cm4geyBvazog +dHJ1ZSB9OwogICAgfSwKCiAgICBhc3luYyByZWxlYXNlTG9jayhkb2NJZCkgewogICAgICAgIGlm +IChEcml2ZUZTLm1vZGUgPT09ICdzZXJ2ZXInKSB7CiAgICAgICAgICAgIHRyeSB7CiAgICAgICAg +ICAgICAgICBhd2FpdCBmZXRjaCgnL2FwaS91bmxvY2snLCB7CiAgICAgICAgICAgICAgICAgICAg +bWV0aG9kOiAnUE9TVCcsCiAgICAgICAgICAgICAgICAgICAgaGVhZGVyczogeyAnQ29udGVudC1U +eXBlJzogJ2FwcGxpY2F0aW9uL2pzb247IGNoYXJzZXQ9dXRmLTgnIH0sCiAgICAgICAgICAgICAg +ICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkoeyBkb2NJZDogZG9jSWQgfSkKICAgICAgICAgICAg +ICAgIH0pOwogICAgICAgICAgICB9IGNhdGNoIHt9CiAgICAgICAgfQogICAgfSwKCiAgICAvLyAt +LS0gQ29udHJpYnV0aW9uIFR5cGUgRGlhbG9nIC0tLQogICAgc2hvd0NvbnRyaWJEaWFsb2coKSB7 +CiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnRyaWJEaWFsb2cnKS5jbGFzc0xp +c3QuYWRkKCdhY3RpdmUnKTsKICAgIH0sCgogICAgY2xvc2VDb250cmliRGlhbG9nKCkgewogICAg +ICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb250cmliRGlhbG9nJykuY2xhc3NMaXN0LnJl +bW92ZSgnYWN0aXZlJyk7CiAgICB9LAoKICAgIHNldENvbnRyaWJUeXBlKHR5cGUpIHsKICAgICAg +ICB0aGlzLl9wZW5kaW5nQ29udHJpYlR5cGUgPSB0eXBlOwogICAgICAgIHRoaXMuY2xvc2VDb250 +cmliRGlhbG9nKCk7CiAgICAgICAgLy8gU2F2ZS1Qcm96ZXNzIGZvcnRzZXR6ZW4gKGNsb3NlQWZ0 +ZXIgYXVzIHZvcmhlcmlnZW0gQXVmcnVmIHVlYmVybmVobWVuKQogICAgICAgIHRoaXMuc2F2ZSh0 +aGlzLl9wZW5kaW5nQ2xvc2VBZnRlcik7CiAgICAgICAgdGhpcy5fcGVuZGluZ0Nsb3NlQWZ0ZXIg +PSBmYWxzZTsKICAgIH0KfTsKCi8vID09PT09PT09PT09PT09PT09PT09PSBNRURJQSBNT0RBTCA9 +PT09PT09PT09PT09PT09PT09PT0KCi8vID09PT09PT09PT09PT09PT09PT09PSBVTklWRVJTQUwg +TUVESUEgTU9EQUwgPT09PT09PT09PT09PT09PT09PT09CgpmdW5jdGlvbiBvcGVuTWVkaWFNb2Rh +bCh1cmwsIHR5cGUsIHRpdGxlKSB7CiAgICBjb25zdCBtb2RhbCA9IGRvY3VtZW50LmdldEVsZW1l +bnRCeUlkKCdtZWRpYU1vZGFsJyk7CiAgICBjb25zdCBjb250YWluZXIgPSBkb2N1bWVudC5nZXRF +bGVtZW50QnlJZCgnbWVkaWFNb2RhbENvbnRhaW5lcicpOwogICAgY29uc3Qgc2FmZVVybCA9IERy +aXZlUG9ydGFsLmVzY2FwZUF0dHIodXJsKTsKICAgIGNvbnN0IHNhZmVUaXRsZSA9IERyaXZlUG9y +dGFsLmVzY2FwZUhUTUwodGl0bGUgfHwgdXJsLnNwbGl0KCcvJykucG9wKCkpOwogICAgbGV0IGNv +bnRlbnQgPSAnJzsKICAgIGxldCB0b29sYmFyID0gJyc7CgogICAgc3dpdGNoICh0eXBlKSB7CiAg +ICAgICAgY2FzZSAnaW1hZ2UnOgogICAgICAgICAgICBjb250ZW50ID0gJzxpbWcgc3JjPSInICsg +c2FmZVVybCArICciIGFsdD0iJyArIERyaXZlUG9ydGFsLmVzY2FwZUF0dHIodGl0bGUgfHwgJycp +ICsgJyIgb25jbGljaz0idGhpcy5jbGFzc0xpc3QudG9nZ2xlKFwnem9vbWVkXCcpIj4nOwogICAg +ICAgICAgICB0b29sYmFyID0gJzxidXR0b24gb25jbGljaz0iZG9jdW1lbnQucXVlcnlTZWxlY3Rv +cihcJyNtZWRpYU1vZGFsQ29udGFpbmVyIGltZ1wnKS5jbGFzc0xpc3QudG9nZ2xlKFwnem9vbWVk +XCcpIj5ab29tPC9idXR0b24+JyArCiAgICAgICAgICAgICAgICAgICAgICAgJzxhIGhyZWY9Iicg +KyBzYWZlVXJsICsgJyIgZG93bmxvYWQ+SGVydW50ZXJsYWRlbjwvYT4nICsKICAgICAgICAgICAg +ICAgICAgICAgICAnPGJ1dHRvbiBvbmNsaWNrPSJ3aW5kb3cub3BlbihcJycgKyBzYWZlVXJsICsg +J1wnLFwnX2JsYW5rXCcpIj5JbiBuZXVlbSBUYWI8L2J1dHRvbj4nOwogICAgICAgICAgICBicmVh +azsKICAgICAgICBjYXNlICdwZGYnOgogICAgICAgICAgICAvLyBQREY6IE1heGltYWxlIEJyZWl0 +ZSB1bmQgSG9laGUgZnVlciBndXRlIExlc2JhcmtlaXQKICAgICAgICAgICAgdmFyIG1jID0gZG9j +dW1lbnQucXVlcnlTZWxlY3RvcignLm1lZGlhLW1vZGFsLWNvbnRlbnQnKTsKICAgICAgICAgICAg +bWMuc3R5bGUubWF4V2lkdGggPSAnOTV2dyc7CiAgICAgICAgICAgIG1jLnN0eWxlLndpZHRoID0g +JzEyMDBweCc7CiAgICAgICAgICAgIG1jLnN0eWxlLm1heEhlaWdodCA9ICc5NXZoJzsKICAgICAg +ICAgICAgbWMuc3R5bGUucGFkZGluZyA9ICcxMnB4JzsKICAgICAgICAgICAgY29udGVudCA9ICc8 +aWZyYW1lIHNyYz0iJyArIHNhZmVVcmwgKyAnIiBzdHlsZT0id2lkdGg6MTAwJTtoZWlnaHQ6ODJ2 +aDtib3JkZXI6bm9uZTtib3JkZXItcmFkaXVzOjRweDtiYWNrZ3JvdW5kOndoaXRlOyI+PC9pZnJh +bWU+JzsKICAgICAgICAgICAgdG9vbGJhciA9ICc8YSBocmVmPSInICsgc2FmZVVybCArICciIGRv +d25sb2FkPkhlcnVudGVybGFkZW48L2E+JyArCiAgICAgICAgICAgICAgICAgICAgICAgJzxidXR0 +b24gb25jbGljaz0id2luZG93Lm9wZW4oXCcnICsgc2FmZVVybCArICdcJyxcJ19ibGFua1wnKSI+ +SW4gbmV1ZW0gVGFiPC9idXR0b24+JzsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSAn +dmlkZW8nOgogICAgICAgICAgICBjb250ZW50ID0gJzx2aWRlbyBjb250cm9scyBhdXRvcGxheSBz +dHlsZT0ibWF4LXdpZHRoOjEwMCU7bWF4LWhlaWdodDo3MHZoO2JvcmRlci1yYWRpdXM6OHB4OyI+ +JyArCiAgICAgICAgICAgICAgICAgICAgICAgJzxzb3VyY2Ugc3JjPSInICsgc2FmZVVybCArICci +PjwvdmlkZW8+JzsKICAgICAgICAgICAgdG9vbGJhciA9ICc8YSBocmVmPSInICsgc2FmZVVybCAr +ICciIGRvd25sb2FkPkhlcnVudGVybGFkZW48L2E+JzsKICAgICAgICAgICAgYnJlYWs7CiAgICAg +ICAgY2FzZSAnYXVkaW8nOgogICAgICAgICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcubWVk +aWEtbW9kYWwtY29udGVudCcpLnN0eWxlLm1heFdpZHRoID0gJzYwMHB4JzsKICAgICAgICAgICAg +Y29udGVudCA9ICc8ZGl2IHN0eWxlPSJ0ZXh0LWFsaWduOmNlbnRlcjtwYWRkaW5nOjE2cHggMDsi +PicgKwogICAgICAgICAgICAgICAgICAgICAgICc8ZGl2IHN0eWxlPSJmb250LXNpemU6NDhweDtt +YXJnaW4tYm90dG9tOjEycHg7Ij4mIzEyNzkyNTs8L2Rpdj48L2Rpdj4nICsKICAgICAgICAgICAg +ICAgICAgICAgICAnPGRpdiBzdHlsZT0iYmFja2dyb3VuZDojZmZmO2JvcmRlci1yYWRpdXM6MzBw +eDtwYWRkaW5nOjZweCAxMHB4O3dpZHRoOjEwMCU7Ij4nICsKICAgICAgICAgICAgICAgICAgICAg +ICAnPGF1ZGlvIGNvbnRyb2xzIGF1dG9wbGF5IHNyYz0iJyArIHNhZmVVcmwgKyAnIiBzdHlsZT0i +ZGlzcGxheTpibG9jazt3aWR0aDoxMDAlO2hlaWdodDo0MHB4O2ZpbHRlcjpub25lOyI+PC9hdWRp +bz48L2Rpdj4nOwogICAgICAgICAgICB0b29sYmFyID0gJzxhIGhyZWY9IicgKyBzYWZlVXJsICsg +JyIgZG93bmxvYWQ+SGVydW50ZXJsYWRlbjwvYT4nOwogICAgICAgICAgICBicmVhazsKICAgICAg +ICBjYXNlICdkb2N4JzogY2FzZSAneGxzeCc6IGNhc2UgJ3BwdHgnOgogICAgICAgICAgICB2YXIg +dHlwZUxhYmVsID0gdHlwZS50b1VwcGVyQ2FzZSgpOwogICAgICAgICAgICBjb250ZW50ID0gJzxk +aXYgc3R5bGU9InRleHQtYWxpZ246Y2VudGVyO3BhZGRpbmc6MzBweCAwOyI+JyArCiAgICAgICAg +ICAgICAgICAgICAgICAgJzxzcGFuIGNsYXNzPSJkcml2ZS1maWxlLWljb24gJyArIHR5cGUgKyAn +IiBzdHlsZT0id2lkdGg6ODBweDtoZWlnaHQ6ODBweDtmb250LXNpemU6MjRweDttYXJnaW46MCBh +dXRvIDE1cHg7Ij4nICsgdHlwZUxhYmVsICsgJzwvc3Bhbj4nICsKICAgICAgICAgICAgICAgICAg +ICAgICAnPHAgc3R5bGU9ImNvbG9yOnZhcigtLXRleHQtc2Vjb25kYXJ5KTttYXJnaW4tdG9wOjEw +cHg7Ij5EaWVzZXMgRG9rdW1lbnQga2FubiBudXIgbG9rYWwgZ2VvZWZmbmV0IHdlcmRlbi48L3A+ +PC9kaXY+JzsKICAgICAgICAgICAgdG9vbGJhciA9ICc8YSBocmVmPSInICsgc2FmZVVybCArICci +IGRvd25sb2FkPkhlcnVudGVybGFkZW48L2E+JzsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAg +ZGVmYXVsdDoKICAgICAgICAgICAgY29udGVudCA9ICc8ZGl2IHN0eWxlPSJ0ZXh0LWFsaWduOmNl +bnRlcjtwYWRkaW5nOjMwcHggMDtmb250LXNpemU6NjRweDsiPiYjMTI4MTk2OzwvZGl2Pic7CiAg +ICAgICAgICAgIHRvb2xiYXIgPSAnPGEgaHJlZj0iJyArIHNhZmVVcmwgKyAnIiBkb3dubG9hZD5I +ZXJ1bnRlcmxhZGVuPC9hPic7CiAgICB9CgogICAgY29udGFpbmVyLmlubmVySFRNTCA9CiAgICAg +ICAgJzxkaXYgY2xhc3M9Im1lZGlhLW1vZGFsLXRpdGxlIj4nICsgc2FmZVRpdGxlICsgJzwvZGl2 +PicgKwogICAgICAgIGNvbnRlbnQgKwogICAgICAgICc8ZGl2IGNsYXNzPSJtZWRpYS1tb2RhbC10 +b29sYmFyIj4nICsgdG9vbGJhciArICc8L2Rpdj4nOwoKICAgIG1vZGFsLnN0eWxlLmRpc3BsYXkg +PSAnYmxvY2snOwogICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigna2V5ZG93bicsIG1lZGlh +TW9kYWxLZXlIYW5kbGVyKTsKfQoKZnVuY3Rpb24gY2xvc2VNZWRpYU1vZGFsKCkgewogICAgY29u +c3QgbW9kYWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbWVkaWFNb2RhbCcpOwogICAgbW9k +YWwuc3R5bGUuZGlzcGxheSA9ICdub25lJzsKICAgIC8vIE1vZGFsLVN0eWxlcyB6dXJ1ZWNrc2V0 +emVuIChQREYvQXVkaW8gc2V0emVuIGVpZ2VuZSBHcm9lc3NlbikKICAgIHZhciBtYyA9IG1vZGFs +LnF1ZXJ5U2VsZWN0b3IoJy5tZWRpYS1tb2RhbC1jb250ZW50Jyk7CiAgICBpZiAobWMpIHsgbWMu +c3R5bGUubWF4V2lkdGggPSAnJzsgbWMuc3R5bGUud2lkdGggPSAnJzsgbWMuc3R5bGUubWF4SGVp +Z2h0ID0gJyc7IG1jLnN0eWxlLnBhZGRpbmcgPSAnJzsgfQogICAgLy8gQXVkaW8vVmlkZW8gc3Rv +cHBlbgogICAgbW9kYWwucXVlcnlTZWxlY3RvckFsbCgndmlkZW8sIGF1ZGlvJykuZm9yRWFjaChl +bCA9PiB7IGVsLnBhdXNlKCk7IGVsLnNyYyA9ICcnOyB9KTsKICAgIGRvY3VtZW50LnJlbW92ZUV2 +ZW50TGlzdGVuZXIoJ2tleWRvd24nLCBtZWRpYU1vZGFsS2V5SGFuZGxlcik7Cn0KCmZ1bmN0aW9u +IG1lZGlhTW9kYWxLZXlIYW5kbGVyKGUpIHsKICAgIGlmIChlLmtleSA9PT0gJ0VzY2FwZScpIGNs +b3NlTWVkaWFNb2RhbCgpOwp9CgovLyA9PT09PT09PT09PT09PT09PT09PT0gR09WRVJOQU5DRSA9 +PT09PT09PT09PT09PT09PT09PT0KCi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 +PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci8vIE1vZHVsOiBE +cml2ZUdvdmVybmFuY2UgLSBSb2xsZW4sIEZyZWlnYWJlLVdvcmtmbG93LCBBZG1pbi1QYW5lbAov +LyBadXN0YWVuZGlnIGZ1ZXI6IExhZGVuIGRlciBHb3Zlcm5hbmNlLURhdGVuLCBCZXJlY2h0aWd1 +bmdzcHJ1ZWZ1bmcsIFJldmlldy1VSSwgQXVkaXQtVHJhaWwKLy8gU2ljaGVyaGVpdDogQ2xpZW50 +LXNlaXRpZ2UgQmVyZWNodGlndW5nc3BydWVmdW5nZW4gKGNhbkFwcHJvdmUsIGNhblNlZURvY3Vt +ZW50LCBpc1N1cGVyVXNlcikKLy8gICAgICAgICAgICAgc3RldWVybiBudXIgZGllIFVJLURhcnN0 +ZWxsdW5nLiBEaWUgdGF0c2FlY2hsaWNoZSBBdXRvcmlzaWVydW5nIGVyZm9sZ3Qgc2VydmVyc2Vp +dGlnCi8vICAgICAgICAgICAgIGluIHNlcnZlci5wczEgLyBzZXJ2ZXIucHkgKFRlc3QtU3VwZXJV +c2VyLCBUZXN0LVJldmlld2VyKSBiZWkgamVkZW0gU2NocmVpYnp1Z3JpZmYuCi8vICAgICAgICAg +ICAgIGdvdmVybmFuY2UuanNvbiBpc3QgaW0gU2VydmVyLU1vZHVzIEFFUy0yNTYtdmVyc2NobHVl +c3NlbHQgKHNpZWhlIHNlcnZlci5wczEpLgovLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09 +PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpjb25zdCBE +cml2ZUdvdmVybmFuY2UgPSB7CiAgICBkYXRhOiBudWxsLAogICAgY3VycmVudFVzZXI6IG51bGws +CiAgICBjdXJyZW50RG9tYWluOiBudWxsLAogICAgX2lzU3VwZXJVc2VyOiBmYWxzZSwKICAgIF9y +ZXZpZXdEaWFsb2dDYWxsYmFjazogbnVsbCwKICAgIF9yZXZpZXdEaWFsb2dBY3Rpb246IG51bGws +CiAgICBfZWRpdGluZ1Jldmlld2VySW5kZXg6IC0xLAoKICAgIGFzeW5jIGxvYWQoKSB7CiAgICAg +ICAgdHJ5IHsKICAgICAgICAgICAgaWYgKERyaXZlRlMubW9kZSA9PT0gJ3NlcnZlcicpIHsKICAg +ICAgICAgICAgICAgIGNvbnN0IHJlcyA9IGF3YWl0IGZldGNoKCcvYXBpL2dvdmVybmFuY2UnKTsK +ICAgICAgICAgICAgICAgIGlmIChyZXMub2spIHsKICAgICAgICAgICAgICAgICAgICBjb25zdCBy +ZXN1bHQgPSBhd2FpdCByZXMuanNvbigpOwogICAgICAgICAgICAgICAgICAgIHRoaXMuZGF0YSA9 +IHJlc3VsdC5nb3Zlcm5hbmNlOwogICAgICAgICAgICAgICAgICAgIHRoaXMuY3VycmVudFVzZXIg +PSByZXN1bHQuY3VycmVudFVzZXI7CiAgICAgICAgICAgICAgICAgICAgdGhpcy5jdXJyZW50RG9t +YWluID0gcmVzdWx0LmN1cnJlbnREb21haW47CiAgICAgICAgICAgICAgICAgICAgdGhpcy5faXNT +dXBlclVzZXIgPSByZXN1bHQuaXNTdXBlclVzZXI7CiAgICAgICAgICAgICAgICAgICAgdGhpcy51 +cGRhdGVVSSgpOwogICAgICAgICAgICAgICAgICAgIHRoaXMubG9hZEhlbHBDb250ZW50KCk7CiAg +ICAgICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5sb2FkU3RhcnRzZWl0ZSgpOwogICAgICAgICAg +ICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAg +IH0gY2F0Y2gge30KCiAgICAgICAgLy8gU3RhdGlzY2hlciBNb2R1czogR292ZXJuYW5jZSBhdXMg +ZWluZ2ViZXR0ZXRlbiBEYXRlbiBsYWRlbgogICAgICAgIGlmIChEcml2ZUZTLm1vZGUgPT09ICdz +dGF0aWMnKSB7CiAgICAgICAgICAgIGlmICh0eXBlb2YgRFJJVkVfU1RBVElDX0lOREVYICE9PSAn +dW5kZWZpbmVkJyAmJiBEUklWRV9TVEFUSUNfSU5ERVggJiYgRFJJVkVfU1RBVElDX0lOREVYLmdv +dmVybmFuY2UpIHsKICAgICAgICAgICAgICAgIC8vIExlc2JhcmUgR292ZXJuYW5jZS1EYXRlbiBh +dXMgaW5kZXguanMgKFNldHRpbmdzICsgUmV2aWV3ZXItSW5mbykKICAgICAgICAgICAgICAgIHRo +aXMuZGF0YSA9IERSSVZFX1NUQVRJQ19JTkRFWC5nb3Zlcm5hbmNlOwogICAgICAgICAgICB9CiAg +ICAgICAgfQoKICAgICAgICAvLyBGaWxlc3lzdGVtLU1vZHVzOiBnb3Zlcm5hbmNlLmpzb24gYXVz +IEhhbmRsZSBsYWRlbgogICAgICAgIGlmIChEcml2ZUZTLm1vZGUgPT09ICdmaWxlc3lzdGVtJyAm +JiBEcml2ZUZTLl9kYXRhSGFuZGxlKSB7CiAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAg +ICBjb25zdCBmaCA9IGF3YWl0IERyaXZlRlMuX2RhdGFIYW5kbGUuZ2V0RmlsZUhhbmRsZSgnZ292 +ZXJuYW5jZS5qc29uJyk7CiAgICAgICAgICAgICAgICBjb25zdCBmaWxlID0gYXdhaXQgZmguZ2V0 +RmlsZSgpOwogICAgICAgICAgICAgICAgdGhpcy5kYXRhID0gSlNPTi5wYXJzZShhd2FpdCBmaWxl +LnRleHQoKSk7CiAgICAgICAgICAgIH0gY2F0Y2gge30KICAgICAgICB9CgogICAgICAgIHRoaXMu +Y3VycmVudFVzZXIgPSBEcml2ZUZTLmVudmlyb24gPyBEcml2ZUZTLmVudmlyb24udXNlcm5hbWUg +OiBudWxsOwogICAgICAgIHRoaXMuY3VycmVudERvbWFpbiA9IERyaXZlRlMuZW52aXJvbiA/IChE +cml2ZUZTLmVudmlyb24udXNlcmRvbWFpbiB8fCAnKicpIDogJyonOwogICAgICAgIHRoaXMuX2lz +U3VwZXJVc2VyID0gdGhpcy5fY2hlY2tTdXBlclVzZXIoKTsKICAgICAgICB0aGlzLnVwZGF0ZVVJ +KCk7CiAgICAgICAgdGhpcy5sb2FkSGVscENvbnRlbnQoKTsKICAgICAgICBhd2FpdCB0aGlzLmxv +YWRTdGFydHNlaXRlKCk7CiAgICB9LAoKICAgIF9jaGVja1N1cGVyVXNlcigpIHsKICAgICAgICBp +ZiAoIXRoaXMuZGF0YSB8fCAhdGhpcy5kYXRhLnN1cGVyVXNlcnMpIHJldHVybiB0cnVlOyAvLyBL +ZWluIEdvdmVybmFuY2UgPSBhbGxlcyBlcmxhdWJ0CiAgICAgICAgY29uc3QgdXNlciA9ICh0aGlz +LmN1cnJlbnRVc2VyIHx8ICcnKS50b0xvd2VyQ2FzZSgpOwogICAgICAgIGNvbnN0IGRvbWFpbiA9 +ICh0aGlzLmN1cnJlbnREb21haW4gfHwgJycpLnRvTG93ZXJDYXNlKCk7CiAgICAgICAgcmV0dXJu +IHRoaXMuZGF0YS5zdXBlclVzZXJzLnNvbWUoc3UgPT4KICAgICAgICAgICAgc3UudXNlcm5hbWUu +dG9Mb3dlckNhc2UoKSA9PT0gdXNlciAmJiAoc3UuZG9tYWluID09PSAnKicgfHwgc3UuZG9tYWlu +LnRvTG93ZXJDYXNlKCkgPT09IGRvbWFpbikKICAgICAgICApOwogICAgfSwKCiAgICBpc1N1cGVy +VXNlcigpIHsgcmV0dXJuIHRoaXMuX2lzU3VwZXJVc2VyOyB9LAoKICAgIGlzRmFjaGF1ZnNpY2h0 +KCkgewogICAgICAgIGlmICghdGhpcy5kYXRhIHx8ICF0aGlzLmRhdGEuZmFjaGF1ZnNpY2h0KSBy +ZXR1cm4gZmFsc2U7CiAgICAgICAgdmFyIHVzZXIgPSAodGhpcy5jdXJyZW50VXNlciB8fCAnJyku +dG9Mb3dlckNhc2UoKTsKICAgICAgICB2YXIgZG9tYWluID0gKHRoaXMuY3VycmVudERvbWFpbiB8 +fCAnJykudG9Mb3dlckNhc2UoKTsKICAgICAgICByZXR1cm4gdGhpcy5kYXRhLmZhY2hhdWZzaWNo +dC5zb21lKGZ1bmN0aW9uKGZhKSB7CiAgICAgICAgICAgIHJldHVybiBmYS51c2VybmFtZS50b0xv +d2VyQ2FzZSgpID09PSB1c2VyICYmIChmYS5kb21haW4gPT09ICcqJyB8fCBmYS5kb21haW4udG9M +b3dlckNhc2UoKSA9PT0gZG9tYWluKTsKICAgICAgICB9KTsKICAgIH0sCgogICAgaXNSZXZpZXdl +cihrYXRlZ29yaWUpIHsKICAgICAgICBpZiAoIXRoaXMuZGF0YSB8fCAhdGhpcy5kYXRhLnJldmll +d2VycykgcmV0dXJuIGZhbHNlOwogICAgICAgIGNvbnN0IHVzZXIgPSAodGhpcy5jdXJyZW50VXNl +ciB8fCAnJykudG9Mb3dlckNhc2UoKTsKICAgICAgICBjb25zdCBkb21haW4gPSAodGhpcy5jdXJy +ZW50RG9tYWluIHx8ICcnKS50b0xvd2VyQ2FzZSgpOwogICAgICAgIHJldHVybiB0aGlzLmRhdGEu +cmV2aWV3ZXJzLnNvbWUociA9PgogICAgICAgICAgICByLnVzZXJuYW1lLnRvTG93ZXJDYXNlKCkg +PT09IHVzZXIgJiYKICAgICAgICAgICAgKHIuZG9tYWluID09PSAnKicgfHwgci5kb21haW4udG9M +b3dlckNhc2UoKSA9PT0gZG9tYWluKSAmJgogICAgICAgICAgICByLmthdGVnb3JpZW4gJiYgci5r +YXRlZ29yaWVuLmluY2x1ZGVzKGthdGVnb3JpZSkKICAgICAgICApOwogICAgfSwKCiAgICBnZXRS +ZXZpZXdhYmxlQ2F0ZWdvcmllcygpIHsKICAgICAgICBpZiAoIXRoaXMuZGF0YSB8fCAhdGhpcy5k +YXRhLnJldmlld2VycykgcmV0dXJuIFtdOwogICAgICAgIGNvbnN0IGNhdHMgPSBbXTsKICAgICAg +ICBjb25zdCB1c2VyID0gKHRoaXMuY3VycmVudFVzZXIgfHwgJycpLnRvTG93ZXJDYXNlKCk7CiAg +ICAgICAgY29uc3QgZG9tYWluID0gKHRoaXMuY3VycmVudERvbWFpbiB8fCAnJykudG9Mb3dlckNh +c2UoKTsKICAgICAgICB0aGlzLmRhdGEucmV2aWV3ZXJzLmZvckVhY2gociA9PiB7CiAgICAgICAg +ICAgIGlmIChyLnVzZXJuYW1lLnRvTG93ZXJDYXNlKCkgPT09IHVzZXIgJiYgKHIuZG9tYWluID09 +PSAnKicgfHwgci5kb21haW4udG9Mb3dlckNhc2UoKSA9PT0gZG9tYWluKSkgewogICAgICAgICAg +ICAgICAgKHIua2F0ZWdvcmllbiB8fCBbXSkuZm9yRWFjaChrID0+IHsgaWYgKCFjYXRzLmluY2x1 +ZGVzKGspKSBjYXRzLnB1c2goayk7IH0pOwogICAgICAgICAgICB9CiAgICAgICAgfSk7CiAgICAg +ICAgcmV0dXJuIGNhdHM7CiAgICB9LAoKICAgIC8vIFNpY2h0YmFya2VpdHNmaWx0ZXIgKHJlaW4g +Y2xpZW50LXNlaXRpZywgc3RldWVydCBVSS1EYXJzdGVsbHVuZyk6CiAgICAgICAgLy8gLSBGcmVp +Z2VnZWJlbmUgRG9rdW1lbnRlOiBmdWVyIGFsbGUgc2ljaHRiYXIKICAgICAgICAvLyAtIEVudHd1 +ZXJmZS9BYmdlbGVobnRlOiBudXIgZnVlciBBdXRvciwgenVzdGFlbmRpZ2UgUmV2aWV3ZXIgdW5k +IFN1cGVyVXNlcgogICAgICAgIC8vIEhpbndlaXM6IERpZXMgaXN0IGtlaW5lIFp1Z3JpZmZza29u +dHJvbGxlIC0gZGllIERva3VtZW50ZSBsaWVnZW4gYWxzIERhdGVpZW4gaW0gZGF0YS8tT3JkbmVy +LgogICAgICAgIC8vIERlciBGaWx0ZXIgdmVyaGluZGVydCwgZGFzcyBCZW51dHplciBpbiBkZXIg +T2JlcmZsYWVjaGUgRG9rdW1lbnRlIHNlaGVuLCBkaWUgc2llIG5pY2h0IGJlYXJiZWl0ZW4gc29s +bGVuLgogICAgY2FuU2VlRG9jdW1lbnQoZG9jKSB7CiAgICAgICAgaWYgKCF0aGlzLmRhdGEpIHJl +dHVybiB0cnVlOyAvLyBLZWluIEdvdmVybmFuY2UgPSBhbGxlcyBzaWNodGJhcgogICAgICAgIC8v +IEZyZWlnZWdlYmVuZSBEb2t1bWVudGU6IGFsbGUgc2VoZW4KICAgICAgICBpZiAoZG9jLnN0YXR1 +cyA9PT0gJ0ZyZWlnZWdlYmVuJykgcmV0dXJuIHRydWU7CiAgICAgICAgLy8gRWlnZW5lIERva3Vt +ZW50ZTogQXV0b3Igc2llaHQgaW1tZXIKICAgICAgICBjb25zdCB1c2VyID0gKHRoaXMuY3VycmVu +dFVzZXIgfHwgJycpLnRvTG93ZXJDYXNlKCk7CiAgICAgICAgaWYgKChkb2MuZXJzdGVsbHRWb24g +fHwgJycpLnRvTG93ZXJDYXNlKCkgPT09IHVzZXIgfHwgKGRvYy5iZWFyYmVpdGV0Vm9uIHx8ICcn +KS50b0xvd2VyQ2FzZSgpID09PSB1c2VyKSByZXR1cm4gdHJ1ZTsKICAgICAgICAvLyBTdXBlclVz +ZXIvRmFjaGF1ZnNpY2h0IHNpZWh0IGFsbGVzCiAgICAgICAgaWYgKHRoaXMuaXNTdXBlclVzZXIo +KSB8fCB0aGlzLmlzRmFjaGF1ZnNpY2h0KCkpIHJldHVybiB0cnVlOwogICAgICAgIC8vIFJldmll +d2VyIHNpZWh0IERva3VtZW50ZSBpbiBzZWluZW4gS2F0ZWdvcmllbgogICAgICAgIGlmICh0aGlz +LmlzUmV2aWV3ZXIoZG9jLmthdGVnb3JpZSkpIHJldHVybiB0cnVlOwogICAgICAgIHJldHVybiBm +YWxzZTsKICAgIH0sCgogICAgY2FuQXBwcm92ZShkb2MpIHsKICAgICAgICBpZiAodGhpcy5pc1N1 +cGVyVXNlcigpIHx8IHRoaXMuaXNGYWNoYXVmc2ljaHQoKSkgcmV0dXJuIHRydWU7CiAgICAgICAg +cmV0dXJuIHRoaXMuaXNSZXZpZXdlcihkb2Mua2F0ZWdvcmllKTsKICAgIH0sCgogICAgY2FuU2V0 +U3RhdHVzKHN0YXR1cykgewogICAgICAgIGlmICh0aGlzLmlzU3VwZXJVc2VyKCkgfHwgdGhpcy5p +c0ZhY2hhdWZzaWNodCgpKSByZXR1cm4gdHJ1ZTsKICAgICAgICBpZiAoc3RhdHVzID09PSAnRW50 +d3VyZicgfHwgc3RhdHVzID09PSAnUHLDvGZ1bmcnKSByZXR1cm4gdHJ1ZTsKICAgICAgICByZXR1 +cm4gZmFsc2U7IC8vIEZyZWlnZWdlYmVuL0FiZ2VsZWhudCBudXIgZnVlciBSZXZpZXdlci9TdXBl +clVzZXIKICAgIH0sCgogICAgLy8gLS0tIFVJIFVwZGF0ZXMgLS0tCiAgICB1cGRhdGVVSSgpIHsK +ICAgICAgICAvLyBSZXZpZXcgQmFkZ2UKICAgICAgICBjb25zdCBiYWRnZSA9IGRvY3VtZW50Lmdl +dEVsZW1lbnRCeUlkKCdyZXZpZXdCYWRnZScpOwogICAgICAgIGNvbnN0IHBlbmRpbmcgPSB0aGlz +LmdldFBlbmRpbmdSZXZpZXdzKCk7CiAgICAgICAgaWYgKHBlbmRpbmcubGVuZ3RoID4gMCAmJiAo +dGhpcy5pc1N1cGVyVXNlcigpIHx8IHRoaXMuaXNGYWNoYXVmc2ljaHQoKSB8fCB0aGlzLmdldFJl +dmlld2FibGVDYXRlZ29yaWVzKCkubGVuZ3RoID4gMCkpIHsKICAgICAgICAgICAgYmFkZ2Uuc3R5 +bGUuZGlzcGxheSA9ICcnOwogICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmV2 +aWV3Q291bnQnKS50ZXh0Q29udGVudCA9IHBlbmRpbmcubGVuZ3RoOwogICAgICAgIH0gZWxzZSB7 +CiAgICAgICAgICAgIGJhZGdlLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7CiAgICAgICAgfQoKICAg +ICAgICAvLyBHb3Zlcm5hbmNlIEFkbWluIEJ1dHRvbiAobnVyIFN1cGVyVXNlci9GYWNoYXVmc2lj +aHQgaW0gU2VydmVyLU1vZHVzKQogICAgICAgIGNvbnN0IGFkbWluQnRuID0gZG9jdW1lbnQuZ2V0 +RWxlbWVudEJ5SWQoJ2J0bkdvdkFkbWluJyk7CiAgICAgICAgYWRtaW5CdG4uc3R5bGUuZGlzcGxh +eSA9IChEcml2ZUZTLm1vZGUgPT09ICdzZXJ2ZXInICYmICh0aGlzLmlzU3VwZXJVc2VyKCkgfHwg +dGhpcy5pc0ZhY2hhdWZzaWNodCgpKSkgPyAnJyA6ICdub25lJzsKICAgIH0sCgogICAgZ2V0UGVu +ZGluZ1Jldmlld3MoKSB7CiAgICAgICAgaWYgKCFEcml2ZUZTLmRvY3VtZW50cykgcmV0dXJuIFtd +OwogICAgICAgIGNvbnN0IGNhdHMgPSAodGhpcy5pc1N1cGVyVXNlcigpIHx8IHRoaXMuaXNGYWNo +YXVmc2ljaHQoKSkKICAgICAgICAgICAgPyAoRHJpdmVGUy5jb25maWcua2F0ZWdvcmllbiB8fCBb +XSkKICAgICAgICAgICAgOiB0aGlzLmdldFJldmlld2FibGVDYXRlZ29yaWVzKCk7CiAgICAgICAg +cmV0dXJuIERyaXZlRlMuZG9jdW1lbnRzLmZpbHRlcihkb2MgPT4KICAgICAgICAgICAgZG9jLnN0 +YXR1cyA9PT0gJ1Byw7xmdW5nJyAmJiBjYXRzLmluY2x1ZGVzKGRvYy5rYXRlZ29yaWUpCiAgICAg +ICAgKTsKICAgIH0sCgogICAgLy8gLS0tIFJldmlldyBRdWV1ZSBQYW5lbCAtLS0KICAgIHNob3dR +dWV1ZSgpIHsKICAgICAgICBjb25zdCBwYW5lbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdy +ZXZpZXdQYW5lbCcpOwogICAgICAgIGNvbnN0IGJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJ +ZCgncmV2aWV3UGFuZWxCb2R5Jyk7CiAgICAgICAgY29uc3QgcGVuZGluZyA9IHRoaXMuZ2V0UGVu +ZGluZ1Jldmlld3MoKTsKCiAgICAgICAgaWYgKHBlbmRpbmcubGVuZ3RoID09PSAwKSB7CiAgICAg +ICAgICAgIGJvZHkuaW5uZXJIVE1MID0gJzxkaXYgc3R5bGU9InRleHQtYWxpZ246Y2VudGVyOyBw +YWRkaW5nOjQwcHg7IGNvbG9yOnZhcigtLXRleHQtbXV0ZWQpOyI+S2VpbmUgb2ZmZW5lbiBQcsO8 +ZnVuZ2VuLjwvZGl2Pic7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgYm9keS5pbm5lckhU +TUwgPSBwZW5kaW5nLm1hcChkb2MgPT4gewogICAgICAgICAgICAgICAgY29uc3QgZ292ID0gZG9j +LmdvdmVybmFuY2UgfHwge307CiAgICAgICAgICAgICAgICBjb25zdCBzdWJtaXR0ZWQgPSBnb3Yu +c3VibWl0dGVkRm9yUmV2aWV3IHx8IGRvYy5nZWFlbmRlcnQgfHwgJyc7CiAgICAgICAgICAgICAg +ICByZXR1cm4gJzxkaXYgY2xhc3M9InJldmlldy1pdGVtIj4nICsKICAgICAgICAgICAgICAgICAg +ICAnPGRpdiBjbGFzcz0icmV2aWV3LWl0ZW0tdGl0bGUiPicgKyBEcml2ZVBvcnRhbC5lc2NhcGVI +VE1MKGRvYy50aXRlbCkgKyAnPC9kaXY+JyArCiAgICAgICAgICAgICAgICAgICAgJzxkaXYgY2xh +c3M9InJldmlldy1pdGVtLW1ldGEiPicgKwogICAgICAgICAgICAgICAgICAgICAgICAnPHNwYW4+ +JyArIERyaXZlUG9ydGFsLmVzY2FwZUhUTUwoZG9jLmthdGVnb3JpZSkgKyAnPC9zcGFuPicgKwog +ICAgICAgICAgICAgICAgICAgICAgICAnPHNwYW4+dm9uICcgKyBEcml2ZVBvcnRhbC5lc2NhcGVI +VE1MKGRvYy5lcnN0ZWxsdFZvbiB8fCBkb2MuYmVhcmJlaXRldFZvbiB8fCAnLScpICsgJzwvc3Bh +bj4nICsKICAgICAgICAgICAgICAgICAgICAgICAgJzxzcGFuPicgKyBmb3JtYXREYXRlKHN1Ym1p +dHRlZCkgKyAnPC9zcGFuPicgKwogICAgICAgICAgICAgICAgICAgICc8L2Rpdj4nICsKICAgICAg +ICAgICAgICAgICAgICAnPGRpdiBjbGFzcz0icmV2aWV3LWl0ZW0tYWN0aW9ucyI+JyArCiAgICAg +ICAgICAgICAgICAgICAgICAgICc8YnV0dG9uIGNsYXNzPSJidG4tYXBwcm92ZSIgb25jbGljaz0i +ZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7IERyaXZlR292ZXJuYW5jZS5yZXZpZXdBbmRPcGVuKFwn +JyArIERyaXZlUG9ydGFsLmVzY2FwZUF0dHIoZG9jLmlkKSArICdcJykiPlByw7xmZW48L2J1dHRv +bj4nICsKICAgICAgICAgICAgICAgICAgICAgICAgJzxidXR0b24gY2xhc3M9ImJ0bi1yZWplY3Qi +IG9uY2xpY2s9ImV2ZW50LnN0b3BQcm9wYWdhdGlvbigpOyBEcml2ZUdvdmVybmFuY2Uub3BlblJl +dmlld0RpYWxvZyhcJycgKyBEcml2ZVBvcnRhbC5lc2NhcGVBdHRyKGRvYy5pZCkgKyAnXCcsIFwn +cmVqZWN0XCcpIj5BYmxlaG5lbiB1bmQgQmVncsO8bmRlbjwvYnV0dG9uPicgKwogICAgICAgICAg +ICAgICAgICAgICc8L2Rpdj4nICsKICAgICAgICAgICAgICAgICc8L2Rpdj4nOwogICAgICAgICAg +ICB9KS5qb2luKCcnKTsKICAgICAgICB9CgogICAgICAgIHBhbmVsLmNsYXNzTGlzdC5hZGQoJ2Fj +dGl2ZScpOwogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZXZpZXdQYW5lbE92ZXJs +YXknKS5jbGFzc0xpc3QuYWRkKCdhY3RpdmUnKTsKICAgIH0sCgogICAgY2xvc2VRdWV1ZSgpIHsK +ICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmV2aWV3UGFuZWwnKS5jbGFzc0xpc3Qu +cmVtb3ZlKCdhY3RpdmUnKTsKICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmV2aWV3 +UGFuZWxPdmVybGF5JykuY2xhc3NMaXN0LnJlbW92ZSgnYWN0aXZlJyk7CiAgICB9LAoKICAgIC8v +IEFydGlrZWwgb2VmZm5lbiB1bmQgUGFuZWwgc2NobGllc3NlbgogICAgYXN5bmMgcmV2aWV3QW5k +T3Blbihkb2NJZCkgewogICAgICAgIHRoaXMuY2xvc2VRdWV1ZSgpOwogICAgICAgIGF3YWl0IERy +aXZlUG9ydGFsLnNlbGVjdERvY3VtZW50KGRvY0lkKTsKICAgICAgICBEcml2ZVBvcnRhbC5oaWdo +bGlnaHRJdGVtKGRvY0lkKTsKICAgIH0sCgogICAgLy8gLS0tIFJldmlldyBEaWFsb2cgLS0tCiAg +ICAvLyBSZXZpZXdlci1GYXJicGFsZXR0ZSAoYmlzIHp1IDggdW50ZXJzY2hpZWRsaWNoZSBSZXZp +ZXdlcikKICAgIF9yZXZpZXdlckNvbG9yczogWwogICAgICAgIHsgYmc6ICcjZThmNWU5JywgYm9y +ZGVyOiAnIzJlN2QzMicsIHRleHQ6ICcjMWI1ZTIwJyB9LAogICAgICAgIHsgYmc6ICcjZTNmMmZk +JywgYm9yZGVyOiAnIzE1NjVjMCcsIHRleHQ6ICcjMGQ0N2ExJyB9LAogICAgICAgIHsgYmc6ICcj +ZmZmM2UwJywgYm9yZGVyOiAnI2U2NTEwMCcsIHRleHQ6ICcjYmYzNjBjJyB9LAogICAgICAgIHsg +Ymc6ICcjZjNlNWY1JywgYm9yZGVyOiAnIzdiMWZhMicsIHRleHQ6ICcjNGExNDhjJyB9LAogICAg +ICAgIHsgYmc6ICcjZTBmN2ZhJywgYm9yZGVyOiAnIzAwODM4ZicsIHRleHQ6ICcjMDA2MDY0JyB9 +LAogICAgICAgIHsgYmc6ICcjZmNlNGVjJywgYm9yZGVyOiAnI2M2MjgyOCcsIHRleHQ6ICcjYjcx +YzFjJyB9LAogICAgICAgIHsgYmc6ICcjZjFmOGU5JywgYm9yZGVyOiAnIzU1OGIyZicsIHRleHQ6 +ICcjMzM2OTFlJyB9LAogICAgICAgIHsgYmc6ICcjZWRlN2Y2JywgYm9yZGVyOiAnIzQ1MjdhMCcs +IHRleHQ6ICcjMzExYjkyJyB9CiAgICBdLAoKICAgIF9nZXRSZXZpZXdlckNvbG9yKHJldmlld2Vy +TmFtZSkgewogICAgICAgIGlmICghdGhpcy5fcmV2aWV3ZXJDb2xvck1hcCkgdGhpcy5fcmV2aWV3 +ZXJDb2xvck1hcCA9IHt9OwogICAgICAgIGlmICh0aGlzLl9yZXZpZXdlckNvbG9yTWFwW3Jldmll +d2VyTmFtZV0pIHJldHVybiB0aGlzLl9yZXZpZXdlckNvbG9yTWFwW3Jldmlld2VyTmFtZV07CiAg +ICAgICAgdmFyIGlkeCA9IE9iamVjdC5rZXlzKHRoaXMuX3Jldmlld2VyQ29sb3JNYXApLmxlbmd0 +aCAlIHRoaXMuX3Jldmlld2VyQ29sb3JzLmxlbmd0aDsKICAgICAgICB0aGlzLl9yZXZpZXdlckNv +bG9yTWFwW3Jldmlld2VyTmFtZV0gPSB0aGlzLl9yZXZpZXdlckNvbG9yc1tpZHhdOwogICAgICAg +IHJldHVybiB0aGlzLl9yZXZpZXdlckNvbG9yTWFwW3Jldmlld2VyTmFtZV07CiAgICB9LAoKICAg +IG9wZW5SZXZpZXdEaWFsb2coZG9jSWQsIGFjdGlvbikgewogICAgICAgIGNvbnN0IGRvYyA9IERy +aXZlRlMuZG9jdW1lbnRzLmZpbmQoZCA9PiBkLmlkID09PSBkb2NJZCk7CiAgICAgICAgaWYgKCFk +b2MpIHJldHVybjsKCiAgICAgICAgdmFyIGhlYWRlckVsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5 +SWQoJ3Jldmlld0RpYWxvZ0hlYWRlcicpOwogICAgICAgIHZhciBpbmZvID0gZG9jdW1lbnQuZ2V0 +RWxlbWVudEJ5SWQoJ3Jldmlld0RpYWxvZ0luZm8nKTsKICAgICAgICB2YXIgaGludCA9IGRvY3Vt +ZW50LmdldEVsZW1lbnRCeUlkKCdyZXZpZXdEaWFsb2dIaW50Jyk7CiAgICAgICAgdmFyIHRleHRh +cmVhID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Jldmlld0RpYWxvZ0NvbW1lbnQnKTsKICAg +ICAgICB2YXIgY29uZmlybUJ0biA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZXZpZXdEaWFs +b2dDb25maXJtJyk7CiAgICAgICAgdmFyIGFydGljbGVDb250ZW50ID0gZG9jdW1lbnQuZ2V0RWxl +bWVudEJ5SWQoJ3Jldmlld0FydGljbGVDb250ZW50Jyk7CiAgICAgICAgdmFyIHByZXZDb21tZW50 +cyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZXZpZXdQcmV2Q29tbWVudHMnKTsKCiAgICAg +ICAgLy8gSGVhZGVyCiAgICAgICAgdmFyIGhlYWRlclNwYW4gPSBoZWFkZXJFbC5xdWVyeVNlbGVj +dG9yKCdzcGFuOmZpcnN0LWNoaWxkJyk7CiAgICAgICAgaWYgKGFjdGlvbiA9PT0gJ2FwcHJvdmUn +KSB7CiAgICAgICAgICAgIGlmIChoZWFkZXJTcGFuKSBoZWFkZXJTcGFuLnRleHRDb250ZW50ID0g +J0Rva3VtZW50IGZyZWlnZWJlbic7CiAgICAgICAgICAgIGhlYWRlckVsLmNsYXNzTmFtZSA9ICdy +ZXZpZXctZGlhbG9nLWhlYWRlciBhcHByb3ZlJzsKICAgICAgICAgICAgY29uZmlybUJ0bi50ZXh0 +Q29udGVudCA9ICdGcmVpZ2ViZW4nOwogICAgICAgICAgICBjb25maXJtQnRuLmNsYXNzTmFtZSA9 +ICdidG4tY29uZmlybSBhcHByb3ZlJzsKICAgICAgICAgICAgaGludC50ZXh0Q29udGVudCA9ICcn +OwogICAgICAgICAgICBoaW50LnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7CiAgICAgICAgICAgIHRl +eHRhcmVhLnNldEF0dHJpYnV0ZSgnZGF0YS1wbGFjZWhvbGRlcicsICdLb21tZW50YXIgKG9wdGlv +bmFsKS4uLicpOwogICAgICAgICAgICB0aGlzLl9yZXZpZXdDb21tZW50UmVxdWlyZWQgPSBmYWxz +ZTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBpZiAoaGVhZGVyU3BhbikgaGVhZGVyU3Bh +bi50ZXh0Q29udGVudCA9ICdEb2t1bWVudCBhYmxlaG5lbiB1bmQgYmVncsO8bmRlbic7CiAgICAg +ICAgICAgIGhlYWRlckVsLmNsYXNzTmFtZSA9ICdyZXZpZXctZGlhbG9nLWhlYWRlciByZWplY3Qn +OwogICAgICAgICAgICBjb25maXJtQnRuLnRleHRDb250ZW50ID0gJ0FibGVobmVuJzsKICAgICAg +ICAgICAgY29uZmlybUJ0bi5jbGFzc05hbWUgPSAnYnRuLWNvbmZpcm0gcmVqZWN0JzsKICAgICAg +ICAgICAgdmFyIHJlak1vZGUgPSAodGhpcy5kYXRhICYmIHRoaXMuZGF0YS5zZXR0aW5ncykgPyAo +dGhpcy5kYXRhLnNldHRpbmdzLnJlamVjdGlvblJlYXNvbk1vZGUgfHwgJ3JlcXVpcmVkJykgOiAn +cmVxdWlyZWQnOwogICAgICAgICAgICBoaW50LnN0eWxlLmRpc3BsYXkgPSAnJzsKICAgICAgICAg +ICAgaWYgKHJlak1vZGUgPT09ICdyZXF1aXJlZCcpIHsKICAgICAgICAgICAgICAgIGhpbnQudGV4 +dENvbnRlbnQgPSAnRWluZSBhdXNmw7xocmxpY2hlIEJlZ3LDvG5kdW5nIGlzdCBlcmZvcmRlcmxp +Y2guIEJlc2NocmVpYmUsIHdhcnVtIGRlciBBcnRpa2VsIGFiZ2VsZWhudCB3aXJkIHVuZCB3ZWxj +aGUgw4RuZGVydW5nZW4gbm90d2VuZGlnIHNpbmQuJzsKICAgICAgICAgICAgICAgIHRleHRhcmVh +LnNldEF0dHJpYnV0ZSgnZGF0YS1wbGFjZWhvbGRlcicsICdCZWdyw7xuZHVuZyAoUGZsaWNodGZl +bGQpLi4uJyk7CiAgICAgICAgICAgICAgICB0aGlzLl9yZXZpZXdDb21tZW50UmVxdWlyZWQgPSB0 +cnVlOwogICAgICAgICAgICB9IGVsc2UgaWYgKHJlak1vZGUgPT09ICdvcHRpb25hbCcpIHsKICAg +ICAgICAgICAgICAgIGhpbnQudGV4dENvbnRlbnQgPSAnRWluZSBCZWdyw7xuZHVuZyBpc3Qgb3B0 +aW9uYWwsIHdpcmQgYWJlciBlbXBmb2hsZW4uJzsKICAgICAgICAgICAgICAgIHRleHRhcmVhLnNl +dEF0dHJpYnV0ZSgnZGF0YS1wbGFjZWhvbGRlcicsICdCZWdyw7xuZHVuZyAob3B0aW9uYWwpLi4u +Jyk7CiAgICAgICAgICAgICAgICB0aGlzLl9yZXZpZXdDb21tZW50UmVxdWlyZWQgPSBmYWxzZTsK +ICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIGhpbnQudGV4dENvbnRlbnQgPSAn +JzsgaGludC5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnOwogICAgICAgICAgICAgICAgdGV4dGFyZWEu +c2V0QXR0cmlidXRlKCdkYXRhLXBsYWNlaG9sZGVyJywgJ0tvbW1lbnRhciAob3B0aW9uYWwpLi4u +Jyk7CiAgICAgICAgICAgICAgICB0aGlzLl9yZXZpZXdDb21tZW50UmVxdWlyZWQgPSBmYWxzZTsK +ICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgaW5mby50ZXh0Q29udGVudCA9IGRvYy50 +aXRlbCArICcgKCcgKyBkb2Mua2F0ZWdvcmllICsgJyknOwogICAgICAgIHRleHRhcmVhLmlubmVy +SFRNTCA9ICcnOwoKICAgICAgICAvLyBBcnRpa2VsaW5oYWx0IGxpbmtzIGFuemVpZ2VuCiAgICAg +ICAgdmFyIGluaGFsdCA9IGRvYy5pbmhhbHQgfHwgJzxlbSBzdHlsZT0iY29sb3I6dmFyKC0tdGV4 +dC1tdXRlZCk7Ij5LZWluIEluaGFsdDwvZW0+JzsKICAgICAgICBhcnRpY2xlQ29udGVudC5pbm5l +ckhUTUwgPSAnPGRpdiBzdHlsZT0ibWFyZ2luLWJvdHRvbTo4cHg7Zm9udC13ZWlnaHQ6NjAwO2Nv +bG9yOnZhcigtLXRleHQtaGVhZGluZyk7Zm9udC1zaXplOjE1cHg7Ij4nICsKICAgICAgICAgICAg +RHJpdmVQb3J0YWwuZXNjYXBlSFRNTChkb2MudGl0ZWwpICsgJzwvZGl2PicgKyBpbmhhbHQ7Cgog +ICAgICAgIC8vIEJpc2hlcmlnZSBLb21tZW50YXJlIG1pdCBSZXZpZXdlci1GYXJiZW4gYW56ZWln +ZW4KICAgICAgICB0aGlzLl9yZXZpZXdlckNvbG9yTWFwID0ge307CiAgICAgICAgdmFyIGhpc3Rv +cnkgPSAoZG9jLmdvdmVybmFuY2UgJiYgZG9jLmdvdmVybmFuY2UucmV2aWV3SGlzdG9yeSkgPyBk +b2MuZ292ZXJuYW5jZS5yZXZpZXdIaXN0b3J5IDogW107CiAgICAgICAgdmFyIGNvbW1lbnRzSHRt +bCA9ICcnOwogICAgICAgIGhpc3RvcnkuZm9yRWFjaChmdW5jdGlvbihlbnRyeSkgewogICAgICAg +ICAgICBpZiAoIWVudHJ5LmNvbW1lbnQpIHJldHVybjsKICAgICAgICAgICAgdmFyIGNvbG9yID0g +RHJpdmVHb3Zlcm5hbmNlLl9nZXRSZXZpZXdlckNvbG9yKGVudHJ5LmJ5IHx8ICdVbmJla2FubnQn +KTsKICAgICAgICAgICAgdmFyIGFjdGlvbkxhYmVsID0gZW50cnkuYWN0aW9uID09PSAnYXBwcm92 +ZWQnID8gJ0ZyZWlnZWdlYmVuJyA6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudHJ5 +LmFjdGlvbiA9PT0gJ3JlamVjdGVkJyA/ICdBYmdlbGVobnQnIDogJ0VpbmdlcmVpY2h0JzsKICAg +ICAgICAgICAgdmFyIG5pZ2h0QmcgPSBjb2xvci5iZzsKICAgICAgICAgICAgY29tbWVudHNIdG1s +ICs9ICc8ZGl2IGNsYXNzPSJyZXZpZXctY29tbWVudC1idWJibGUiIHN0eWxlPSJiYWNrZ3JvdW5k +OicgKyBjb2xvci5iZyArICc7Ym9yZGVyLWxlZnQtY29sb3I6JyArIGNvbG9yLmJvcmRlciArICc7 +IiB0aXRsZT0iJyArIGZvcm1hdERhdGVUaW1lKGVudHJ5LmF0KSArICciPicgKwogICAgICAgICAg +ICAgICAgJzxzcGFuIGNsYXNzPSJyYy1hdXRob3IiIHN0eWxlPSJjb2xvcjonICsgY29sb3IudGV4 +dCArICc7Ij4nICsgRHJpdmVQb3J0YWwuZXNjYXBlSFRNTChlbnRyeS5ieSB8fCAnVW5iZWthbm50 +JykgKyAnIOKAkyAnICsgYWN0aW9uTGFiZWwgKyAnPC9zcGFuPicgKwogICAgICAgICAgICAgICAg +JzxzcGFuIGNsYXNzPSJyYy1kYXRlIj4nICsgZm9ybWF0RGF0ZVRpbWUoZW50cnkuYXQpICsgJzwv +c3Bhbj4nICsKICAgICAgICAgICAgICAgICc8ZGl2IGNsYXNzPSJyYy10ZXh0Ij4nICsgZW50cnku +Y29tbWVudCArICc8L2Rpdj4nICsKICAgICAgICAgICAgJzwvZGl2Pic7CiAgICAgICAgfSk7CiAg +ICAgICAgaWYgKCFjb21tZW50c0h0bWwpIHsKICAgICAgICAgICAgY29tbWVudHNIdG1sID0gJzxk +aXYgc3R5bGU9ImZvbnQtc2l6ZToxMnB4O2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpO3BhZGRpbmc6 +OHB4IDA7Ij5Ob2NoIGtlaW5lIEtvbW1lbnRhcmUgdm9yaGFuZGVuLjwvZGl2Pic7CiAgICAgICAg +fQogICAgICAgIHByZXZDb21tZW50cy5pbm5lckhUTUwgPSBjb21tZW50c0h0bWw7CgogICAgICAg +IHRoaXMuX3Jldmlld0RpYWxvZ0FjdGlvbiA9IGFjdGlvbjsKICAgICAgICB0aGlzLl9yZXZpZXdE +aWFsb2dDYWxsYmFjayA9IGRvY0lkOwogICAgICAgIGNvbmZpcm1CdG4ub25jbGljayA9ICgpID0+ +IHRoaXMuY29uZmlybVJldmlldygpOwoKICAgICAgICAvLyBQYXN0ZS1IYW5kbGVyOiBOdXIgS2xh +cnRleHQgZWluZnVlZ2VuCiAgICAgICAgdGV4dGFyZWEub25wYXN0ZSA9IGZ1bmN0aW9uKGUpIHsK +ICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpOwogICAgICAgICAgICB2YXIgdGV4dCA9IChl +LmNsaXBib2FyZERhdGEgfHwgd2luZG93LmNsaXBib2FyZERhdGEpLmdldERhdGEoJ3RleHQvcGxh +aW4nKTsKICAgICAgICAgICAgZG9jdW1lbnQuZXhlY0NvbW1hbmQoJ2luc2VydFRleHQnLCBmYWxz +ZSwgdGV4dCk7CiAgICAgICAgfTsKCiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Jl +dmlld0RpYWxvZycpLmNsYXNzTGlzdC5hZGQoJ2FjdGl2ZScpOwogICAgfSwKCiAgICBjbG9zZVJl +dmlld0RpYWxvZygpIHsKICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmV2aWV3RGlh +bG9nJykuY2xhc3NMaXN0LnJlbW92ZSgnYWN0aXZlJyk7CiAgICAgICAgdGhpcy5fcmV2aWV3RGlh +bG9nQ2FsbGJhY2sgPSBudWxsOwogICAgfSwKCiAgICBhc3luYyBjb25maXJtUmV2aWV3KCkgewog +ICAgICAgIGNvbnN0IGRvY0lkID0gdGhpcy5fcmV2aWV3RGlhbG9nQ2FsbGJhY2s7CiAgICAgICAg +Y29uc3QgYWN0aW9uID0gdGhpcy5fcmV2aWV3RGlhbG9nQWN0aW9uOwogICAgICAgIGNvbnN0IGNv +bW1lbnRFbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZXZpZXdEaWFsb2dDb21tZW50Jyk7 +CiAgICAgICAgLy8gS29tbWVudGFyLUhUTUwgc2FuaXRpemVuOiBudXIgZXJsYXVidGUgVGFncyBi +ZWhhbHRlbgogICAgICAgIHZhciByYXdIdG1sID0gY29tbWVudEVsLmlubmVySFRNTC50cmltKCku +cmVwbGFjZSgvXjxicj4kLywgJycpOwogICAgICAgIHZhciBzYW5pdGl6ZURpdiA9IGRvY3VtZW50 +LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwogICAgICAgIHNhbml0aXplRGl2LmlubmVySFRNTCA9IHJh +d0h0bWw7CiAgICAgICAgLy8gQWxsZSB1bmVybGF1YnRlbiBUYWdzIGR1cmNoIGlocmVuIFRleHRp +bmhhbHQgZXJzZXR6ZW4KICAgICAgICBzYW5pdGl6ZURpdi5xdWVyeVNlbGVjdG9yQWxsKCdhLCBp +bWcsIHNjcmlwdCwgc3R5bGUsIGlmcmFtZSwgZGl2LCBzcGFuW3N0eWxlKj0iZm9udC1zaXplIl0s +IHNwYW5bc3R5bGUqPSJ3aGl0ZS1zcGFjZSJdJykuZm9yRWFjaChmdW5jdGlvbihlbCkgewogICAg +ICAgICAgICBpZiAoZWwudGFnTmFtZSA9PT0gJ0RJVicpIHsKICAgICAgICAgICAgICAgIC8vIERp +dnMgZHVyY2ggaWhyZW4gSW5oYWx0ICsgWmVpbGVudW1icnVjaCBlcnNldHplbgogICAgICAgICAg +ICAgICAgZWwuaW5zZXJ0QWRqYWNlbnRIVE1MKCdhZnRlcmVuZCcsICc8YnI+Jyk7CiAgICAgICAg +ICAgICAgICBlbC5yZXBsYWNlV2l0aChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShlbC50ZXh0Q29u +dGVudCkpOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgZWwucmVwbGFjZVdp +dGgoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoZWwudGV4dENvbnRlbnQpKTsKICAgICAgICAgICAg +fQogICAgICAgIH0pOwogICAgICAgIGNvbnN0IGNvbW1lbnQgPSBzYW5pdGl6ZURpdi5pbm5lckhU +TUwudHJpbSgpLnJlcGxhY2UoL148YnI+JC8sICcnKTsKCiAgICAgICAgaWYgKCFkb2NJZCkgcmV0 +dXJuOwoKICAgICAgICAvLyBQZmxpY2h0ZmVsZC1QcnVlZnVuZyBmdWVyIEFibGVobnVuZ3NiZWdy +dWVuZHVuZwogICAgICAgIHZhciBjb21tZW50VGV4dCA9IGNvbW1lbnRFbC50ZXh0Q29udGVudC50 +cmltKCk7CiAgICAgICAgaWYgKGFjdGlvbiA9PT0gJ3JlamVjdCcpIHsKICAgICAgICAgICAgaWYg +KHRoaXMuX3Jldmlld0NvbW1lbnRSZXF1aXJlZCAmJiAhY29tbWVudFRleHQpIHsKICAgICAgICAg +ICAgICAgIHNob3dUb2FzdCgnQml0dGUgZWluZSBCZWdyw7xuZHVuZyBlaW5nZWJlbiAoUGZsaWNo +dGZlbGQpJywgJ3dhcm5pbmcnKTsKICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRC +eUlkKCdyZXZpZXdEaWFsb2dDb21tZW50JykuZm9jdXMoKTsKICAgICAgICAgICAgICAgIHJldHVy +bjsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgLy8gU2NocmVpYnp1Z3JpZmYgc2lj +aGVyc3RlbGxlbiAoZmlsZTovLyBNb2R1cyBpc3Qgc3RhbmRhcmRtYWVzc2lnIHJlYWQtb25seSkK +ICAgICAgICBpZiAoRHJpdmVGUy5yZWFkT25seSkgewogICAgICAgICAgICBjb25zdCBncmFudGVk +ID0gYXdhaXQgRHJpdmVGUy5lbnN1cmVXcml0ZUFjY2VzcygpOwogICAgICAgICAgICBpZiAoIWdy +YW50ZWQpIHsKICAgICAgICAgICAgICAgIHNob3dUb2FzdCgnU2NocmVpYnp1Z3JpZmYgZXJmb3Jk +ZXJsaWNoIGbDvHIgRnJlaWdhYmUtQWt0aW9uZW4nLCAnd2FybmluZycpOwogICAgICAgICAgICAg +ICAgcmV0dXJuOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBjb25zdCBkb2MgPSBE +cml2ZUZTLmRvY3VtZW50cy5maW5kKGQgPT4gZC5pZCA9PT0gZG9jSWQpOwogICAgICAgIGlmICgh +ZG9jKSByZXR1cm47CgogICAgICAgIC8vIEdvdmVybmFuY2UtRGF0ZW4genVtIERva3VtZW50IGhp +bnp1ZnVlZ2VuCiAgICAgICAgaWYgKCFkb2MuZ292ZXJuYW5jZSkgZG9jLmdvdmVybmFuY2UgPSB7 +IHJldmlld0hpc3Rvcnk6IFtdIH07CiAgICAgICAgaWYgKCFkb2MuZ292ZXJuYW5jZS5yZXZpZXdI +aXN0b3J5KSBkb2MuZ292ZXJuYW5jZS5yZXZpZXdIaXN0b3J5ID0gW107CgogICAgICAgIGRvYy5n +b3Zlcm5hbmNlLnJldmlld0hpc3RvcnkucHVzaCh7CiAgICAgICAgICAgIGFjdGlvbjogYWN0aW9u +ID09PSAnYXBwcm92ZScgPyAnYXBwcm92ZWQnIDogJ3JlamVjdGVkJywKICAgICAgICAgICAgYnk6 +IHRoaXMuY3VycmVudFVzZXIsCiAgICAgICAgICAgIGF0OiBuZXcgRGF0ZSgpLnRvSVNPU3RyaW5n +KCksCiAgICAgICAgICAgIGNvbW1lbnQ6IGNvbW1lbnQKICAgICAgICB9KTsKCiAgICAgICAgdmFy +IG5ld1N0YXR1cyA9IGFjdGlvbiA9PT0gJ2FwcHJvdmUnID8gJ0ZyZWlnZWdlYmVuJyA6ICdBYmdl +bGVobnQnOwogICAgICAgIGRvYy52ZXJzaW9uID0gY2FsY3VsYXRlVmVyc2lvbihkb2MsIGRvYy5p +bmhhbHQsIGRvYy5pbmhhbHQsIG5ld1N0YXR1cyk7CiAgICAgICAgaWYgKGFjdGlvbiA9PT0gJ2Fw +cHJvdmUnKSB7CiAgICAgICAgICAgIGRvYy5zdGF0dXMgPSAnRnJlaWdlZ2ViZW4nOwogICAgICAg +ICAgICBkb2MuZ292ZXJuYW5jZS5hcHByb3ZlZEJ5ID0gdGhpcy5jdXJyZW50VXNlcjsKICAgICAg +ICAgICAgZG9jLmdvdmVybmFuY2UuYXBwcm92ZWRBdCA9IG5ldyBEYXRlKCkudG9JU09TdHJpbmco +KTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBkb2Muc3RhdHVzID0gJ0FiZ2VsZWhudCc7 +CiAgICAgICAgfQogICAgICAgIC8vIERpZmYtRGF0ZW4gYmVyZWluaWdlbiAobmFjaCBGcmVpZ2Fi +ZS9BYmxlaG51bmcgbmljaHQgbWVociBub2V0aWcpCiAgICAgICAgZGVsZXRlIGRvYy5fcHJldmlv +dXNJbmhhbHQ7CiAgICAgICAgZGVsZXRlIGRvYy5fcHJldmlvdXNUaXRlbDsKCiAgICAgICAgdHJ5 +IHsKICAgICAgICAgICAgY29uc3Qgc2F2ZVJlc3VsdCA9IGF3YWl0IERyaXZlRlMuc2F2ZURvY3Vt +ZW50KGRvYyk7CiAgICAgICAgICAgIGlmIChzYXZlUmVzdWx0ID09PSB0cnVlKSB7CiAgICAgICAg +ICAgICAgICBjb25zdCBtc2cgPSBhY3Rpb24gPT09ICdhcHByb3ZlJyA/ICdEb2t1bWVudCBmcmVp +Z2VnZWJlbicgOiAnRG9rdW1lbnQgYWJnZWxlaG50JzsKICAgICAgICAgICAgICAgIHNob3dUb2Fz +dChtc2cgKyAnOiAnICsgZG9jLnRpdGVsLCBhY3Rpb24gPT09ICdhcHByb3ZlJyA/ICdzdWNjZXNz +JyA6ICd3YXJuaW5nJyk7CiAgICAgICAgICAgICAgICB0aGlzLmNsb3NlUmV2aWV3RGlhbG9nKCk7 +CiAgICAgICAgICAgICAgICB0aGlzLmNsb3NlUXVldWUoKTsKICAgICAgICAgICAgICAgIERyaXZl +UG9ydGFsLnJlbmRlcigpOwogICAgICAgICAgICAgICAgdGhpcy51cGRhdGVVSSgpOwogICAgICAg +ICAgICAgICAgYXdhaXQgRHJpdmVQb3J0YWwuc2VsZWN0RG9jdW1lbnQoZG9jSWQpOwogICAgICAg +ICAgICAgICAgRHJpdmVQb3J0YWwuaGlnaGxpZ2h0SXRlbShkb2NJZCk7CiAgICAgICAgICAgIH0g +ZWxzZSB7CiAgICAgICAgICAgICAgICBzaG93VG9hc3QoJ0ZlaGxlciBiZWltIFNwZWljaGVybjog +JyArIHNhdmVSZXN1bHQsICdlcnJvcicsIDUwMDApOwogICAgICAgICAgICB9CiAgICAgICAgfSBj +YXRjaCAoZXJyKSB7CiAgICAgICAgICAgIHNob3dUb2FzdCgnU3BlaWNoZXJuIGZlaGxnZXNjaGxh +Z2VuOiAnICsgZXJyLm1lc3NhZ2UsICdlcnJvcicsIDUwMDApOwogICAgICAgIH0KICAgIH0sCgog +ICAgLy8gLS0tIFN1Ym1pdCBmb3IgUmV2aWV3IC0tLQogICAgYXN5bmMgc3VibWl0Rm9yUmV2aWV3 +KGRvYykgewogICAgICAgIGlmICghZG9jLmdvdmVybmFuY2UpIGRvYy5nb3Zlcm5hbmNlID0geyBy +ZXZpZXdIaXN0b3J5OiBbXSB9OwogICAgICAgIGlmICghZG9jLmdvdmVybmFuY2UucmV2aWV3SGlz +dG9yeSkgZG9jLmdvdmVybmFuY2UucmV2aWV3SGlzdG9yeSA9IFtdOwoKICAgICAgICAvLyBWb3Jo +ZXJpZ2VuIEluaGFsdCBzaWNoZXJuIGZ1ZXIgRGlmZi1BbnplaWdlIGJlaW0gUmV2aWV3CiAgICAg +ICAgLy8gTGVzZSBkaWUgenVsZXR6dCBnZXNwZWljaGVydGUgVmVyc2lvbiB2b24gRGlzayAobmlj +aHQgZGllIGdlcmFkZSBiZWFyYmVpdGV0ZSkKICAgICAgICB0cnkgewogICAgICAgICAgICB2YXIg +c2F2ZWREb2MgPSBhd2FpdCBEcml2ZUZTLmxvYWREb2N1bWVudChkb2MuaWQpOwogICAgICAgICAg +ICBpZiAoc2F2ZWREb2MgJiYgc2F2ZWREb2MuaW5oYWx0KSB7CiAgICAgICAgICAgICAgICBkb2Mu +X3ByZXZpb3VzSW5oYWx0ID0gc2F2ZWREb2MuaW5oYWx0OwogICAgICAgICAgICAgICAgZG9jLl9w +cmV2aW91c1RpdGVsID0gc2F2ZWREb2MudGl0ZWw7CiAgICAgICAgICAgIH0KICAgICAgICB9IGNh +dGNoKGUpIHt9CgogICAgICAgIGRvYy5zdGF0dXMgPSAnUHLDvGZ1bmcnOwogICAgICAgIGRvYy5n +b3Zlcm5hbmNlLnN1Ym1pdHRlZEZvclJldmlldyA9IG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKTsK +ICAgICAgICBkb2MuZ292ZXJuYW5jZS5yZXZpZXdIaXN0b3J5LnB1c2goewogICAgICAgICAgICBh +Y3Rpb246ICdzdWJtaXR0ZWQnLAogICAgICAgICAgICBieTogdGhpcy5jdXJyZW50VXNlciwKICAg +ICAgICAgICAgYXQ6IG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKSwKICAgICAgICAgICAgY29tbWVu +dDogJycKICAgICAgICB9KTsKICAgIH0sCgogICAgLy8gLS0tIEdvdmVybmFuY2UgQWRtaW4gUGFu +ZWwgLS0tCiAgICBzaG93QWRtaW4oKSB7CiAgICAgICAgaWYgKCF0aGlzLmlzU3VwZXJVc2VyKCkg +JiYgIXRoaXMuaXNGYWNoYXVmc2ljaHQoKSkgcmV0dXJuOwogICAgICAgIHRoaXMucmVuZGVyQWRt +aW4oKTsKICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZ292QWRtaW5QYW5lbCcpLmNs +YXNzTGlzdC5hZGQoJ2FjdGl2ZScpOwogICAgfSwKCiAgICBjbG9zZUFkbWluKCkgewogICAgICAg +IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdnb3ZBZG1pblBhbmVsJykuY2xhc3NMaXN0LnJlbW92 +ZSgnYWN0aXZlJyk7CiAgICB9LAoKICAgIHJlbmRlckFkbWluKCkgewogICAgICAgIGNvbnN0IGJv +ZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZ292QWRtaW5Cb2R5Jyk7CiAgICAgICAgY29u +c3QgZ292ID0gdGhpcy5kYXRhIHx8IHsgc3VwZXJVc2VyczogW10sIHJldmlld2VyczogW10sIGZh +Y2hhdWZzaWNodDogW10sIHNldHRpbmdzOiB7fSB9OwogICAgICAgIGlmICghZ292LmZhY2hhdWZz +aWNodCkgZ292LmZhY2hhdWZzaWNodCA9IFtdOwogICAgICAgIGlmICghZ292LnNldHRpbmdzKSBn +b3Yuc2V0dGluZ3MgPSB7fTsKICAgICAgICBjb25zdCBrYXRlZ29yaWVuID0gRHJpdmVGUy5jb25m +aWcua2F0ZWdvcmllbiB8fCBbXTsKICAgICAgICBjb25zdCBpc1NVID0gdGhpcy5pc1N1cGVyVXNl +cigpOwoKICAgICAgICAvLyAtLS0gU3VwZXJVc2VyIC0tLQogICAgICAgIGxldCBodG1sID0gJzxk +aXYgY2xhc3M9Imdvdi1zZWN0aW9uIj4nICsKICAgICAgICAgICAgJzxkaXYgY2xhc3M9Imdvdi1z +ZWN0aW9uLXRpdGxlIiB0aXRsZT0iU3VwZXJVc2VyIGhhYmVuIFZvbGx6dWdyaWZmIGF1ZiBhbGxl +IEZ1bmt0aW9uZW46IFJvbGxlbiB2ZXJnZWJlbiwgRWluc3RlbGx1bmdlbiDDpG5kZXJuLCBhbGxl +IEFydGlrZWwgZnJlaWdlYmVuIG9kZXIgYWJsZWhuZW4uIj5BZG1pbmlzdHJhdG9yZW4gKFN1cGVy +VXNlcik8L2Rpdj4nOwogICAgICAgIGdvdi5zdXBlclVzZXJzLmZvckVhY2goZnVuY3Rpb24oc3Us +IGkpIHsKICAgICAgICAgICAgdmFyIG9lID0gc3Uub3JnYW5pc2F0aW9uc2VpbmhlaXQgPyAnIMK3 +ICcgKyBEcml2ZVBvcnRhbC5lc2NhcGVIVE1MKHN1Lm9yZ2FuaXNhdGlvbnNlaW5oZWl0KSA6ICcn +OwogICAgICAgICAgICBodG1sICs9ICc8ZGl2IGNsYXNzPSJnb3YtdXNlci1yb3ciPicgKwogICAg +ICAgICAgICAgICAgJzxzcGFuIGNsYXNzPSJnb3Ytcm9sZS1pY29uIHN1Ij5TVTwvc3Bhbj4nICsK +ICAgICAgICAgICAgICAgICc8ZGl2IGNsYXNzPSJnb3YtdXNlci1pbmZvIj48ZGl2IGNsYXNzPSJn +b3YtdXNlci1uYW1lIj4nICsgRHJpdmVQb3J0YWwuZXNjYXBlSFRNTChzdS5kaXNwbGF5TmFtZSB8 +fCBzdS51c2VybmFtZSkgKyAnPC9kaXY+JyArCiAgICAgICAgICAgICAgICAgICAgJzxkaXYgY2xh +c3M9Imdvdi11c2VyLWRldGFpbCI+JyArIERyaXZlUG9ydGFsLmVzY2FwZUhUTUwoc3UudXNlcm5h +bWUpICsgb2UgKyAnPC9kaXY+PC9kaXY+JyArCiAgICAgICAgICAgICAgICAoaXNTVSAmJiBnb3Yu +c3VwZXJVc2Vycy5sZW5ndGggPiAxID8gJzxidXR0b24gY2xhc3M9InJlbW92ZSIgb25jbGljaz0i +RHJpdmVHb3Zlcm5hbmNlLnJlbW92ZVN1cGVyVXNlcignICsgaSArICcpIj5FbnRmZXJuZW48L2J1 +dHRvbj4nIDogJycpICsKICAgICAgICAgICAgJzwvZGl2Pic7CiAgICAgICAgfSk7CiAgICAgICAg +aWYgKGlzU1UpIHsKICAgICAgICAgICAgaHRtbCArPSAnPGRpdiBjbGFzcz0iZ292LWNhdC1hZGQt +cm93IiBzdHlsZT0iZ2FwOjZweDsiPicgKwogICAgICAgICAgICAgICAgJzxpbnB1dCB0eXBlPSJ0 +ZXh0IiBpZD0iZ292U1VVc2VyIiBwbGFjZWhvbGRlcj0iTlctS2VubnVuZyIgc3R5bGU9Im1heC13 +aWR0aDoxMjBweDsiPicgKwogICAgICAgICAgICAgICAgJzxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0i +Z292U1VOYW1lIiBwbGFjZWhvbGRlcj0iQW56ZWlnZW5hbWUiIHN0eWxlPSJmbGV4OjI7Ij4nICsK +ICAgICAgICAgICAgICAgICc8aW5wdXQgdHlwZT0idGV4dCIgaWQ9ImdvdlNVT0UiIHBsYWNlaG9s +ZGVyPSJPcmdhbmlzYXRpb25zZWluaGVpdCIgc3R5bGU9ImZsZXg6MjsiPicgKwogICAgICAgICAg +ICAgICAgJzxidXR0b24gY2xhc3M9Imdvdi1hZGQtYnRuIiBzdHlsZT0icGFkZGluZzo2cHggMTRw +eDsiIG9uY2xpY2s9IkRyaXZlR292ZXJuYW5jZS5hZGRTdXBlclVzZXIoKSI+SGluenVmw7xnZW48 +L2J1dHRvbj4nICsKICAgICAgICAgICAgJzwvZGl2Pic7CiAgICAgICAgfQogICAgICAgIGh0bWwg +Kz0gJzwvZGl2Pic7CgogICAgICAgIC8vIC0tLSBGYWNoYXVmc2ljaHQgLS0tCiAgICAgICAgaHRt +bCArPSAnPGRpdiBjbGFzcz0iZ292LXNlY3Rpb24iPicgKwogICAgICAgICAgICAnPGRpdiBjbGFz +cz0iZ292LXNlY3Rpb24tdGl0bGUiIHRpdGxlPSJEaWUgRmFjaGF1ZnNpY2h0IGhhdCBkaWUgZ2xl +aWNoZW4gUmVjaHRlIHdpZSBlaW4gU3VwZXJVc2VyLCBrYW5uIGFiZXIga2VpbmUgUm9sbGVuIHZl +cmdlYmVuLiBHZWRhY2h0IGbDvHIgVm9yZ2VzZXR6dGUsIGRpZSBJbmhhbHRlIHByw7xmZW4gc29s +bGVuLiI+RmFjaGF1ZnNpY2h0ICgnICsgZ292LmZhY2hhdWZzaWNodC5sZW5ndGggKyAnKTwvZGl2 +Pic7CiAgICAgICAgaWYgKGdvdi5mYWNoYXVmc2ljaHQubGVuZ3RoID09PSAwKSB7CiAgICAgICAg +ICAgIGh0bWwgKz0gJzxkaXYgY2xhc3M9Imdvdi1lbXB0eSI+Tm9jaCBrZWluZSBGYWNoYXVmc2lj +aHQga29uZmlndXJpZXJ0PC9kaXY+JzsKICAgICAgICB9CiAgICAgICAgZ292LmZhY2hhdWZzaWNo +dC5mb3JFYWNoKGZ1bmN0aW9uKGZhLCBpKSB7CiAgICAgICAgICAgIHZhciBvZSA9IGZhLm9yZ2Fu +aXNhdGlvbnNlaW5oZWl0ID8gJyDCtyAnICsgRHJpdmVQb3J0YWwuZXNjYXBlSFRNTChmYS5vcmdh +bmlzYXRpb25zZWluaGVpdCkgOiAnJzsKICAgICAgICAgICAgaHRtbCArPSAnPGRpdiBjbGFzcz0i +Z292LXVzZXItcm93Ij4nICsKICAgICAgICAgICAgICAgICc8c3BhbiBjbGFzcz0iZ292LXJvbGUt +aWNvbiBmYSI+RkE8L3NwYW4+JyArCiAgICAgICAgICAgICAgICAnPGRpdiBjbGFzcz0iZ292LXVz +ZXItaW5mbyI+PGRpdiBjbGFzcz0iZ292LXVzZXItbmFtZSI+JyArIERyaXZlUG9ydGFsLmVzY2Fw +ZUhUTUwoZmEuZGlzcGxheU5hbWUgfHwgZmEudXNlcm5hbWUpICsgJzwvZGl2PicgKwogICAgICAg +ICAgICAgICAgICAgICc8ZGl2IGNsYXNzPSJnb3YtdXNlci1kZXRhaWwiPicgKyBEcml2ZVBvcnRh +bC5lc2NhcGVIVE1MKGZhLnVzZXJuYW1lKSArIG9lICsgJzwvZGl2PjwvZGl2PicgKwogICAgICAg +ICAgICAgICAgJzxzcGFuIHN0eWxlPSJmb250LXNpemU6MTFweDtjb2xvcjojYzYyODI4OyI+QWxs +ZSBLYXRlZ29yaWVuPC9zcGFuPicgKwogICAgICAgICAgICAgICAgKGlzU1UgPyAnPGJ1dHRvbiBj +bGFzcz0icmVtb3ZlIiBvbmNsaWNrPSJEcml2ZUdvdmVybmFuY2UucmVtb3ZlRmFjaGF1ZnNpY2h0 +KCcgKyBpICsgJykiPkVudGZlcm5lbjwvYnV0dG9uPicgOiAnJykgKwogICAgICAgICAgICAnPC9k +aXY+JzsKICAgICAgICB9KTsKICAgICAgICBpZiAoaXNTVSkgewogICAgICAgICAgICBodG1sICs9 +ICc8ZGl2IGNsYXNzPSJnb3YtY2F0LWFkZC1yb3ciIHN0eWxlPSJnYXA6NnB4OyI+JyArCiAgICAg +ICAgICAgICAgICAnPGlucHV0IHR5cGU9InRleHQiIGlkPSJnb3ZGQVVzZXIiIHBsYWNlaG9sZGVy +PSJOVy1LZW5udW5nIiBzdHlsZT0ibWF4LXdpZHRoOjEyMHB4OyI+JyArCiAgICAgICAgICAgICAg +ICAnPGlucHV0IHR5cGU9InRleHQiIGlkPSJnb3ZGQU5hbWUiIHBsYWNlaG9sZGVyPSJBbnplaWdl +bmFtZSIgc3R5bGU9ImZsZXg6MjsiPicgKwogICAgICAgICAgICAgICAgJzxpbnB1dCB0eXBlPSJ0 +ZXh0IiBpZD0iZ292RkFPRSIgcGxhY2Vob2xkZXI9Ik9yZ2FuaXNhdGlvbnNlaW5oZWl0IiBzdHls +ZT0iZmxleDoyOyI+JyArCiAgICAgICAgICAgICAgICAnPGJ1dHRvbiBjbGFzcz0iZ292LWFkZC1i +dG4iIHN0eWxlPSJwYWRkaW5nOjZweCAxNHB4OyIgb25jbGljaz0iRHJpdmVHb3Zlcm5hbmNlLmFk +ZEZhY2hhdWZzaWNodCgpIj5IaW56dWbDvGdlbjwvYnV0dG9uPicgKwogICAgICAgICAgICAnPC9k +aXY+JzsKICAgICAgICB9CiAgICAgICAgaHRtbCArPSAnPC9kaXY+JzsKCiAgICAgICAgLy8gLS0t +IFJldmlld2VyIC0tLQogICAgICAgIGh0bWwgKz0gJzxkaXYgY2xhc3M9Imdvdi1zZWN0aW9uIj4n +ICsKICAgICAgICAgICAgJzxkaXYgY2xhc3M9Imdvdi1zZWN0aW9uLXRpdGxlIiB0aXRsZT0iUmV2 +aWV3ZXIgZMO8cmZlbiBBcnRpa2VsIGluIGRlbiBpaG5lbiB6dWdld2llc2VuZW4gS2F0ZWdvcmll +biBmcmVpZ2ViZW4gb2RlciBhYmxlaG5lbi4gSmVkZXIgUmV2aWV3ZXIgYmVrb21tdCBiZXN0aW1t +dGUgRmFjaGJlcmVpY2hlIHp1Z2V3aWVzZW4uIj5SZXZpZXdlciAoJyArIGdvdi5yZXZpZXdlcnMu +bGVuZ3RoICsgJyk8L2Rpdj4nOwogICAgICAgIGlmIChnb3YucmV2aWV3ZXJzLmxlbmd0aCA9PT0g +MCkgewogICAgICAgICAgICBodG1sICs9ICc8ZGl2IGNsYXNzPSJnb3YtZW1wdHkiPk5vY2gga2Vp +bmUgUmV2aWV3ZXIga29uZmlndXJpZXJ0PC9kaXY+JzsKICAgICAgICB9CiAgICAgICAgZ292LnJl +dmlld2Vycy5mb3JFYWNoKGZ1bmN0aW9uKHIsIGkpIHsKICAgICAgICAgICAgdmFyIG9lID0gci5v +cmdhbmlzYXRpb25zZWluaGVpdCA/ICcgwrcgJyArIERyaXZlUG9ydGFsLmVzY2FwZUhUTUwoci5v +cmdhbmlzYXRpb25zZWluaGVpdCkgOiAnJzsKICAgICAgICAgICAgaHRtbCArPSAnPGRpdiBjbGFz +cz0iZ292LXVzZXItcm93Ij4nICsKICAgICAgICAgICAgICAgICc8c3BhbiBjbGFzcz0iZ292LXJv +bGUtaWNvbiByZXYiPlI8L3NwYW4+JyArCiAgICAgICAgICAgICAgICAnPGRpdiBjbGFzcz0iZ292 +LXVzZXItaW5mbyI+PGRpdiBjbGFzcz0iZ292LXVzZXItbmFtZSI+JyArIERyaXZlUG9ydGFsLmVz +Y2FwZUhUTUwoci5kaXNwbGF5TmFtZSB8fCByLnVzZXJuYW1lKSArICc8L2Rpdj4nICsKICAgICAg +ICAgICAgICAgICAgICAnPGRpdiBjbGFzcz0iZ292LXVzZXItZGV0YWlsIj4nICsgRHJpdmVQb3J0 +YWwuZXNjYXBlSFRNTChyLnVzZXJuYW1lKSArIG9lICsgJzwvZGl2PjwvZGl2PicgKwogICAgICAg +ICAgICAgICAgJzxkaXYgY2xhc3M9Imdvdi1jYXQtdGFncyI+JyArIChyLmthdGVnb3JpZW4gfHwg +W10pLm1hcChmdW5jdGlvbihrKSB7IHJldHVybiAnPHNwYW4gY2xhc3M9Imdvdi1jYXQtdGFnIj4n +ICsgRHJpdmVQb3J0YWwuZXNjYXBlSFRNTChrKSArICc8L3NwYW4+JzsgfSkuam9pbignJykgKyAn +PC9kaXY+JyArCiAgICAgICAgICAgICAgICAnPGJ1dHRvbiBjbGFzcz0iZWRpdCIgb25jbGljaz0i +RHJpdmVHb3Zlcm5hbmNlLmVkaXRSZXZpZXdlcignICsgaSArICcpIj5CZWFyYmVpdGVuPC9idXR0 +b24+JyArCiAgICAgICAgICAgICAgICAnPGJ1dHRvbiBjbGFzcz0icmVtb3ZlIiBvbmNsaWNrPSJE +cml2ZUdvdmVybmFuY2UucmVtb3ZlUmV2aWV3ZXIoJyArIGkgKyAnKSI+RW50ZmVybmVuPC9idXR0 +b24+JyArCiAgICAgICAgICAgICc8L2Rpdj4nOwogICAgICAgIH0pOwogICAgICAgIGh0bWwgKz0g +JzwvZGl2Pic7CgogICAgICAgIC8vIC0tLSBSZXZpZXdlci1Gb3JtdWxhcjogRmVsZGVyIGxpbmtz +LCBLYXRlZ29yaWVuIHJlY2h0cyAtLS0KICAgICAgICB2YXIgaXNFZGl0aW5nID0gdGhpcy5fZWRp +dGluZ1Jldmlld2VySW5kZXggPj0gMDsKICAgICAgICB2YXIgZWRpdERhdGEgPSBpc0VkaXRpbmcg +PyBnb3YucmV2aWV3ZXJzW3RoaXMuX2VkaXRpbmdSZXZpZXdlckluZGV4XSA6IG51bGw7CiAgICAg +ICAgdmFyIGZvcm1UaXRsZSA9IGlzRWRpdGluZyA/ICdSZXZpZXdlciBiZWFyYmVpdGVuJyA6ICdS +ZXZpZXdlciBoaW56dWbDvGdlbic7CiAgICAgICAgdmFyIGZvcm1CdG5MYWJlbCA9IGlzRWRpdGlu +ZyA/ICdTcGVpY2hlcm4nIDogJ0hpbnp1ZsO8Z2VuJzsKCiAgICAgICAgaHRtbCArPSAnPGRpdiBj +bGFzcz0iZ292LXNlY3Rpb24iIGlkPSJnb3ZBZGRTZWN0aW9uIj4nICsKICAgICAgICAgICAgJzxk +aXYgY2xhc3M9Imdvdi1zZWN0aW9uLXRpdGxlIj4nICsgZm9ybVRpdGxlICsgJzwvZGl2PicgKwog +ICAgICAgICAgICAnPGRpdiBjbGFzcz0iZ292LXR3by1jb2wiIHN0eWxlPSJnYXA6MTJweDthbGln +bi1pdGVtczpzdHJldGNoOyI+JyArCiAgICAgICAgICAgICAgICAnPGRpdiBzdHlsZT0iZGlzcGxh +eTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjsiPicgKwogICAgICAgICAgICAgICAgICAgICc8 +ZGl2IHN0eWxlPSJtYXJnaW4tYm90dG9tOjZweDsiPjxsYWJlbCBzdHlsZT0iZm9udC1zaXplOjEx +cHg7Y29sb3I6dmFyKC0tdGV4dC1zZWNvbmRhcnkpO2ZvbnQtd2VpZ2h0OjYwMDsiPk5XLUtlbm51 +bmc8L2xhYmVsPicgKwogICAgICAgICAgICAgICAgICAgICAgICAnPGlucHV0IHR5cGU9InRleHQi +IGlkPSJnb3ZBZGRVc2VyIiBwbGFjZWhvbGRlcj0iei5CLiBudzEyMzQ1IiB2YWx1ZT0iJyArIChl +ZGl0RGF0YSA/IERyaXZlUG9ydGFsLmVzY2FwZUF0dHIoZWRpdERhdGEudXNlcm5hbWUpIDogJycp +ICsgJyIgc3R5bGU9IndpZHRoOjEwMCU7cGFkZGluZzo1cHggOHB4O2JvcmRlcjoxcHggc29saWQg +dmFyKC0tYm9yZGVyLXN0cm9uZyk7Ym9yZGVyLXJhZGl1czo0cHg7Zm9udC1zaXplOjEzcHg7bWFy +Z2luLXRvcDoycHg7YmFja2dyb3VuZDp2YXIoLS1iZy1pbnB1dCk7Y29sb3I6dmFyKC0tdGV4dC1w +cmltYXJ5KTsiPjwvZGl2PicgKwogICAgICAgICAgICAgICAgICAgICc8ZGl2IHN0eWxlPSJtYXJn +aW4tYm90dG9tOjZweDsiPjxsYWJlbCBzdHlsZT0iZm9udC1zaXplOjExcHg7Y29sb3I6dmFyKC0t +dGV4dC1zZWNvbmRhcnkpO2ZvbnQtd2VpZ2h0OjYwMDsiPkFuemVpZ2VuYW1lPC9sYWJlbD4nICsK +ICAgICAgICAgICAgICAgICAgICAgICAgJzxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0iZ292QWRkTmFt +ZSIgcGxhY2Vob2xkZXI9IlZvci0gdW5kIE5hY2huYW1lIiB2YWx1ZT0iJyArIChlZGl0RGF0YSA/ +IERyaXZlUG9ydGFsLmVzY2FwZUF0dHIoZWRpdERhdGEuZGlzcGxheU5hbWUgfHwgJycpIDogJycp +ICsgJyIgc3R5bGU9IndpZHRoOjEwMCU7cGFkZGluZzo1cHggOHB4O2JvcmRlcjoxcHggc29saWQg +dmFyKC0tYm9yZGVyLXN0cm9uZyk7Ym9yZGVyLXJhZGl1czo0cHg7Zm9udC1zaXplOjEzcHg7bWFy +Z2luLXRvcDoycHg7YmFja2dyb3VuZDp2YXIoLS1iZy1pbnB1dCk7Y29sb3I6dmFyKC0tdGV4dC1w +cmltYXJ5KTsiPjwvZGl2PicgKwogICAgICAgICAgICAgICAgICAgICc8ZGl2IHN0eWxlPSJtYXJn +aW4tYm90dG9tOjZweDsiPjxsYWJlbCBzdHlsZT0iZm9udC1zaXplOjExcHg7Y29sb3I6dmFyKC0t +dGV4dC1zZWNvbmRhcnkpO2ZvbnQtd2VpZ2h0OjYwMDsiPk9yZ2FuaXNhdGlvbnNlaW5oZWl0PC9s +YWJlbD4nICsKICAgICAgICAgICAgICAgICAgICAgICAgJzxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0i +Z292QWRkT0UiIHBsYWNlaG9sZGVyPSJic3AuIEZ1ZVN0IFYsIFZELUFQLi4uIiB2YWx1ZT0iJyAr +IChlZGl0RGF0YSA/IERyaXZlUG9ydGFsLmVzY2FwZUF0dHIoZWRpdERhdGEub3JnYW5pc2F0aW9u +c2VpbmhlaXQgfHwgJycpIDogJycpICsgJyIgc3R5bGU9IndpZHRoOjEwMCU7cGFkZGluZzo1cHgg +OHB4O2JvcmRlcjoxcHggc29saWQgdmFyKC0tYm9yZGVyLXN0cm9uZyk7Ym9yZGVyLXJhZGl1czo0 +cHg7Zm9udC1zaXplOjEzcHg7bWFyZ2luLXRvcDoycHg7YmFja2dyb3VuZDp2YXIoLS1iZy1pbnB1 +dCk7Y29sb3I6dmFyKC0tdGV4dC1wcmltYXJ5KTsiPjwvZGl2PicgKwogICAgICAgICAgICAgICAg +ICAgICc8ZGl2IHN0eWxlPSJkaXNwbGF5OmZsZXg7Z2FwOjZweDttYXJnaW4tdG9wOjRweDtqdXN0 +aWZ5LWNvbnRlbnQ6ZmxleC1lbmQ7Ij4nICsKICAgICAgICAgICAgICAgICAgICAgICAgKGlzRWRp +dGluZyA/ICc8YnV0dG9uIGNsYXNzPSJnb3YtY2FuY2VsLWJ0biIgc3R5bGU9InBhZGRpbmc6NnB4 +IDEycHg7IiBvbmNsaWNrPSJEcml2ZUdvdmVybmFuY2UuY2FuY2VsRWRpdCgpIj5BYmJyZWNoZW48 +L2J1dHRvbj4nIDogJycpICsKICAgICAgICAgICAgICAgICAgICAgICAgJzxidXR0b24gY2xhc3M9 +Imdvdi1hZGQtYnRuIiBzdHlsZT0icGFkZGluZzo2cHggMTZweDsiIG9uY2xpY2s9IkRyaXZlR292 +ZXJuYW5jZS5hZGRSZXZpZXdlcigpIj4nICsgZm9ybUJ0bkxhYmVsICsgJzwvYnV0dG9uPicgKwog +ICAgICAgICAgICAgICAgICAgICc8L2Rpdj4nICsKICAgICAgICAgICAgICAgICc8L2Rpdj4nICsK +ICAgICAgICAgICAgICAgICc8ZGl2IHN0eWxlPSJkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246 +Y29sdW1uOyI+JyArCiAgICAgICAgICAgICAgICAgICAgJzxsYWJlbCBzdHlsZT0iZm9udC1zaXpl +OjExcHg7Y29sb3I6dmFyKC0tdGV4dC1zZWNvbmRhcnkpO2ZvbnQtd2VpZ2h0OjYwMDsiPkthdGVn +b3JpZW4gKE1laHJmYWNoYXVzd2FobCBtaXQgU3RyZytLbGljayk8L2xhYmVsPicgKwogICAgICAg +ICAgICAgICAgICAgICc8c2VsZWN0IGlkPSJnb3ZBZGRLYXQiIG11bHRpcGxlIHN0eWxlPSJ3aWR0 +aDoxMDAlO2ZsZXg6MTttYXJnaW4tdG9wOjJweDtwYWRkaW5nOjRweDtib3JkZXI6MXB4IHNvbGlk +IHZhcigtLWJvcmRlci1zdHJvbmcpO2JvcmRlci1yYWRpdXM6NHB4O2ZvbnQtc2l6ZToxM3B4O2Jh +Y2tncm91bmQ6dmFyKC0tYmctaW5wdXQpO2NvbG9yOnZhcigtLXRleHQtcHJpbWFyeSk7Ij4nOwog +ICAgICAgIHZhciBlZGl0S2F0cyA9IGVkaXREYXRhID8gKGVkaXREYXRhLmthdGVnb3JpZW4gfHwg +W10pIDogW107CiAgICAgICAga2F0ZWdvcmllbi5mb3JFYWNoKGZ1bmN0aW9uKGspIHsKICAgICAg +ICAgICAgdmFyIHNlbCA9IGVkaXRLYXRzLmluY2x1ZGVzKGspID8gJyBzZWxlY3RlZCcgOiAnJzsK +ICAgICAgICAgICAgaHRtbCArPSAnPG9wdGlvbiB2YWx1ZT0iJyArIERyaXZlUG9ydGFsLmVzY2Fw +ZUF0dHIoaykgKyAnIicgKyBzZWwgKyAnPicgKyBEcml2ZVBvcnRhbC5lc2NhcGVIVE1MKGspICsg +Jzwvb3B0aW9uPic7CiAgICAgICAgfSk7CiAgICAgICAgaHRtbCArPSAnPC9zZWxlY3Q+PC9kaXY+ +PC9kaXY+PC9kaXY+JzsKCiAgICAgICAgLy8gLS0tIEthdGVnb3JpZW4gKyBFaW5zdGVsbHVuZ2Vu +IGluIGVpbmVyIGdlbWVpbnNhbWVuIEJveCAtLS0KICAgICAgICBodG1sICs9ICc8ZGl2IGNsYXNz +PSJnb3Ytc2VjdGlvbiI+JzsKICAgICAgICBodG1sICs9ICc8ZGl2IGNsYXNzPSJnb3YtdHdvLWNv +bCBjYXQtc2V0dGluZ3MiIHN0eWxlPSJhbGlnbi1pdGVtczpzdHJldGNoOyI+JzsKCiAgICAgICAg +Ly8gS2F0ZWdvcmllbiAobGlua2UgU3BhbHRlKQogICAgICAgIHZhciBoaWRkZW5LYXRzID0gRHJp +dmVGUy5jb25maWcuaGlkZGVuS2F0ZWdvcmllbiB8fCBbXTsKICAgICAgICBodG1sICs9ICc8ZGl2 +IHN0eWxlPSJkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uOyI+JyArCiAgICAgICAg +ICAgICc8ZGl2IGNsYXNzPSJnb3Ytc2VjdGlvbi10aXRsZSIgdGl0bGU9IkthdGVnb3JpZW4gc2lu +ZCBkaWUgRmFjaGJlcmVpY2hlLCBpbiBkaWUgQXJ0aWtlbCBlaW5zb3J0aWVydCB3ZXJkZW4uIER1 +IGthbm5zdCBLYXRlZ29yaWVuIGF1c2JsZW5kZW4gKHVuc2ljaHRiYXIgZsO8ciBOdXR6ZXIpIG9k +ZXIgZ2FueiBlbnRmZXJuZW4uIj5LYXRlZ29yaWVuICgnICsga2F0ZWdvcmllbi5sZW5ndGggKyAo +aGlkZGVuS2F0cy5sZW5ndGggPiAwID8gJywgJyArIGhpZGRlbkthdHMubGVuZ3RoICsgJyBhdXNn +ZWJsZW5kZXQnIDogJycpICsgJyk8L2Rpdj4nICsKICAgICAgICAgICAgJzxkaXYgY2xhc3M9Imdv +di1jYXQtbGlzdCIgc3R5bGU9ImZsZXg6MTsiPic7CiAgICAgICAga2F0ZWdvcmllbi5mb3JFYWNo +KGZ1bmN0aW9uKGthdCwgaSkgewogICAgICAgICAgICB2YXIgZG9jQ291bnQgPSBEcml2ZUZTLmRv +Y3VtZW50cy5maWx0ZXIoZnVuY3Rpb24oZCl7IHJldHVybiBkLmthdGVnb3JpZSA9PT0ga2F0OyB9 +KS5sZW5ndGg7CiAgICAgICAgICAgIHZhciBpc0hpZGRlbiA9IGhpZGRlbkthdHMuaW5jbHVkZXMo +a2F0KTsKICAgICAgICAgICAgaHRtbCArPSAnPGRpdiBjbGFzcz0iZ292LWNhdC1pdGVtJyArIChp +c0hpZGRlbiA/ICcgaGlkZGVuLWNhdCcgOiAnJykgKyAnIj4nICsKICAgICAgICAgICAgICAgICc8 +c3BhbiBjbGFzcz0iZ292LWNhdC1uYW1lIj4nICsgRHJpdmVQb3J0YWwuZXNjYXBlSFRNTChrYXQp +ICsgJzwvc3Bhbj4nICsKICAgICAgICAgICAgICAgICc8c3BhbiBzdHlsZT0iZm9udC1zaXplOjEx +cHg7Y29sb3I6Izg4ODsiPicgKyBkb2NDb3VudCArICcgRG9rLjwvc3Bhbj4nICsKICAgICAgICAg +ICAgICAgIChpc0hpZGRlbgogICAgICAgICAgICAgICAgICAgID8gJzxidXR0b24gY2xhc3M9InNo +b3ciIG9uY2xpY2s9IkRyaXZlR292ZXJuYW5jZS5zaG93Q2F0ZWdvcnkoJyArIGkgKyAnKSI+RWlu +YmxlbmRlbjwvYnV0dG9uPicKICAgICAgICAgICAgICAgICAgICA6ICc8YnV0dG9uIGNsYXNzPSJo +aWRlIiBvbmNsaWNrPSJEcml2ZUdvdmVybmFuY2UuaGlkZUNhdGVnb3J5KCcgKyBpICsgJykiPkF1 +c2JsZW5kZW48L2J1dHRvbj4nKSArCiAgICAgICAgICAgICAgICAnPGJ1dHRvbiBjbGFzcz0icmVt +b3ZlIiBvbmNsaWNrPSJEcml2ZUdvdmVybmFuY2UucmVtb3ZlQ2F0ZWdvcnkoJyArIGkgKyAnKSI+ +RW50ZmVybmVuPC9idXR0b24+JyArCiAgICAgICAgICAgICc8L2Rpdj4nOwogICAgICAgIH0pOwog +ICAgICAgIGh0bWwgKz0gJzwvZGl2Pic7CiAgICAgICAgaHRtbCArPSAnPGRpdiBzdHlsZT0iYm9y +ZGVyLXRvcDoycHggc29saWQgdmFyKC0tYm9yZGVyLWxpZ2h0KTttYXJnaW4tdG9wOjhweDtwYWRk +aW5nLXRvcDoxMHB4OyI+JyArCiAgICAgICAgICAgICc8ZGl2IGNsYXNzPSJnb3YtY2F0LWFkZC1y +b3ciPicgKwogICAgICAgICAgICAgICAgJzxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0iZ292TmV3Q2F0 +IiBwbGFjZWhvbGRlcj0iTmV1ZSBLYXRlZ29yaWUuLi4iPicgKwogICAgICAgICAgICAgICAgJzxi +dXR0b24gY2xhc3M9Imdvdi1hZGQtYnRuIiBzdHlsZT0icGFkZGluZzo2cHggMTRweDsiIG9uY2xp +Y2s9IkRyaXZlR292ZXJuYW5jZS5hZGRDYXRlZ29yeSgpIj5IaW56dWbDvGdlbjwvYnV0dG9uPicg +KwogICAgICAgICAgICAnPC9kaXY+PC9kaXY+PC9kaXY+JzsKCiAgICAgICAgLy8gRWluc3RlbGx1 +bmdlbiAocmVjaHRlIFNwYWx0ZSkKICAgICAgICBodG1sICs9ICc8ZGl2IHN0eWxlPSJkaXNwbGF5 +OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2JvcmRlci1sZWZ0OjFweCBzb2xpZCB2YXIoLS1i +b3JkZXItbGlnaHQpO3BhZGRpbmctbGVmdDoxNHB4OyI+JyArCiAgICAgICAgICAgICc8ZGl2IGNs +YXNzPSJnb3Ytc2VjdGlvbi10aXRsZSI+RWluc3RlbGx1bmdlbjwvZGl2PicgKwogICAgICAgICAg +ICAnPGxhYmVsIGNsYXNzPSJnb3Ytc2V0dGluZy1yb3ciIHRpdGxlPSJXZW5uIGFrdGl2LCBtw7xz +c2VuIG5ldWUgQXJ0aWtlbCBlcnN0IHZvbiBlaW5lbSBSZXZpZXdlciBmcmVpZ2VnZWJlbiB3ZXJk +ZW4sIGJldm9yIHNpZSBmw7xyIGFsbGUgc2ljaHRiYXIgc2luZC4iPjxpbnB1dCB0eXBlPSJjaGVj +a2JveCIgaWQ9ImdvdlJlcU5ldyIgJyArIChnb3Yuc2V0dGluZ3MucmVxdWlyZUFwcHJvdmFsRm9y +TmV3ID8gJ2NoZWNrZWQnIDogJycpICsgJyBvbmNoYW5nZT0iRHJpdmVHb3Zlcm5hbmNlLnNhdmVT +ZXR0aW5ncygpIj4gRnJlaWdhYmUgZsO8ciBuZXVlIEFydGlrZWw8L2xhYmVsPicgKwogICAgICAg +ICAgICAnPGxhYmVsIGNsYXNzPSJnb3Ytc2V0dGluZy1yb3ciIHRpdGxlPSJXZW5uIGFrdGl2LCBt +dXNzIGplZGUgQmVhcmJlaXR1bmcgZWluZXMgYmVzdGVoZW5kZW4gQXJ0aWtlbHMgZXJuZXV0IGZy +ZWlnZWdlYmVuIHdlcmRlbi4iPjxpbnB1dCB0eXBlPSJjaGVja2JveCIgaWQ9ImdvdlJlcUVkaXQi +ICcgKyAoZ292LnNldHRpbmdzLnJlcXVpcmVBcHByb3ZhbEZvckVkaXQgPyAnY2hlY2tlZCcgOiAn +JykgKyAnIG9uY2hhbmdlPSJEcml2ZUdvdmVybmFuY2Uuc2F2ZVNldHRpbmdzKCkiPiBGcmVpZ2Fi +ZSBuYWNoIEJlYXJiZWl0dW5nPC9sYWJlbD4nICsKICAgICAgICAgICAgJzxsYWJlbCBjbGFzcz0i +Z292LXNldHRpbmctcm93IiB0aXRsZT0iWmVpZ3QgdW50ZXIgamVkZW0gQXJ0aWtlbCBhbiwgd2Vy +IGRhcmFuIG1pdGdld2lya3QgaGF0IChBdXRvciwgUmVkYWt0aW9uLCBLb3JyZWt0dXIgdXN3Liku +Ij48aW5wdXQgdHlwZT0iY2hlY2tib3giIGlkPSJnb3ZTaG93Q29udHJpYiIgJyArIChnb3Yuc2V0 +dGluZ3Muc2hvd0NvbnRyaWJ1dG9ycyAhPT0gZmFsc2UgPyAnY2hlY2tlZCcgOiAnJykgKyAnIG9u +Y2hhbmdlPSJEcml2ZUdvdmVybmFuY2Uuc2F2ZVNldHRpbmdzKCkiPiBNaXR3aXJrZW5kZSBhbnpl +aWdlbjwvbGFiZWw+JyArCiAgICAgICAgICAgICc8bGFiZWwgY2xhc3M9Imdvdi1zZXR0aW5nLXJv +dyIgdGl0bGU9IlplaWd0IHVudGVyIGplZGVtIEFydGlrZWwgZGllIEhpc3RvcmllIGFsbGVyIEZy +ZWlnYWJlbiB1bmQgQWJsZWhudW5nZW4gYW4uIj48aW5wdXQgdHlwZT0iY2hlY2tib3giIGlkPSJn +b3ZTaG93UmV2aWV3SGlzdCIgJyArIChnb3Yuc2V0dGluZ3Muc2hvd1Jldmlld0hpc3RvcnkgIT09 +IGZhbHNlID8gJ2NoZWNrZWQnIDogJycpICsgJyBvbmNoYW5nZT0iRHJpdmVHb3Zlcm5hbmNlLnNh +dmVTZXR0aW5ncygpIj4gUHLDvGZ1bmdzdmVybGF1ZiBhbnplaWdlbjwvbGFiZWw+JyArCiAgICAg +ICAgICAgICc8ZGl2IGNsYXNzPSJnb3Ytc2V0dGluZy1yb3ciIHN0eWxlPSJkaXNwbGF5OmZsZXg7 +YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuO2dhcDo4cHg7 +IiB0aXRsZT0iUGZsaWNodCA9IEplZGVyIEFydGlrZWwgYnJhdWNodCBtaW5kZXN0ZW5zIGVpbiBT +Y2hsYWd3b3J0LiBPcHRpb25hbCA9IFNjaGxhZ3fDtnJ0ZXIgd2VyZGVuIHZvcmdlc2NobGFnZW4s +IHNpbmQgYWJlciBuaWNodCBuw7Z0aWcuIERlYWt0aXZpZXJ0ID0gS2VpbmUgU2NobGFnd8O2cnRl +ci4iPicgKwogICAgICAgICAgICAgICAgJzxsYWJlbCBmb3I9ImdvdktleXdvcmRNb2RlIj5TY2hs +YWd3w7ZydGVyOjwvbGFiZWw+JyArCiAgICAgICAgICAgICAgICAnPHNlbGVjdCBpZD0iZ292S2V5 +d29yZE1vZGUiIG9uY2hhbmdlPSJEcml2ZUdvdmVybmFuY2Uuc2F2ZVNldHRpbmdzKCkiIHN0eWxl +PSJwYWRkaW5nOjRweCA4cHg7Ym9yZGVyLXJhZGl1czo0cHg7Ym9yZGVyOjFweCBzb2xpZCB2YXIo +LS1ib3JkZXItY29sb3IpO2JhY2tncm91bmQ6dmFyKC0tYmctaW5wdXQpO2NvbG9yOnZhcigtLXRl +eHQtcHJpbWFyeSk7Zm9udC1zaXplOjEzcHg7bWluLXdpZHRoOjEzMHB4OyI+JyArCiAgICAgICAg +ICAgICAgICAgICAgJzxvcHRpb24gdmFsdWU9InJlcXVpcmVkIicgKyAoKGdvdi5zZXR0aW5ncy5r +ZXl3b3JkTW9kZSB8fCAncmVxdWlyZWQnKSA9PT0gJ3JlcXVpcmVkJyA/ICcgc2VsZWN0ZWQnIDog +JycpICsgJz5QZmxpY2h0PC9vcHRpb24+JyArCiAgICAgICAgICAgICAgICAgICAgJzxvcHRpb24g +dmFsdWU9Im9wdGlvbmFsIicgKyAoZ292LnNldHRpbmdzLmtleXdvcmRNb2RlID09PSAnb3B0aW9u +YWwnID8gJyBzZWxlY3RlZCcgOiAnJykgKyAnPk9wdGlvbmFsPC9vcHRpb24+JyArCiAgICAgICAg +ICAgICAgICAgICAgJzxvcHRpb24gdmFsdWU9ImRpc2FibGVkIicgKyAoZ292LnNldHRpbmdzLmtl +eXdvcmRNb2RlID09PSAnZGlzYWJsZWQnID8gJyBzZWxlY3RlZCcgOiAnJykgKyAnPkRlYWt0aXZp +ZXJ0PC9vcHRpb24+JyArCiAgICAgICAgICAgICAgICAnPC9zZWxlY3Q+JyArCiAgICAgICAgICAg +ICc8L2Rpdj4nICsKICAgICAgICAgICAgJzxkaXYgY2xhc3M9Imdvdi1zZXR0aW5nLXJvdyIgc3R5 +bGU9ImRpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OnNwYWNl +LWJldHdlZW47Z2FwOjhweDsiIHRpdGxlPSJQZmxpY2h0ID0gUmV2aWV3ZXIgbcO8c3NlbiBiZWkg +QWJsZWhudW5nIGltbWVyIGVpbmUgQmVncsO8bmR1bmcgc2NocmVpYmVuLiBPcHRpb25hbCA9IEJl +Z3LDvG5kdW5nIHdpcmQgZW1wZm9obGVuLiBOZWluID0gS2VpbmUgQmVncsO8bmR1bmcgbsO2dGln +LiI+JyArCiAgICAgICAgICAgICAgICAnPGxhYmVsIGZvcj0iZ292UmVqZWN0aW9uTW9kZSI+QWJs +ZWhudW5nc2JlZ3LDvG5kdW5nOjwvbGFiZWw+JyArCiAgICAgICAgICAgICAgICAnPHNlbGVjdCBp +ZD0iZ292UmVqZWN0aW9uTW9kZSIgb25jaGFuZ2U9IkRyaXZlR292ZXJuYW5jZS5zYXZlU2V0dGlu +Z3MoKSIgc3R5bGU9InBhZGRpbmc6NHB4IDhweDtib3JkZXItcmFkaXVzOjRweDtib3JkZXI6MXB4 +IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvcik7YmFja2dyb3VuZDp2YXIoLS1iZy1pbnB1dCk7Y29s +b3I6dmFyKC0tdGV4dC1wcmltYXJ5KTtmb250LXNpemU6MTNweDttaW4td2lkdGg6MTMwcHg7Ij4n +ICsKICAgICAgICAgICAgICAgICAgICAnPG9wdGlvbiB2YWx1ZT0icmVxdWlyZWQiJyArICgoZ292 +LnNldHRpbmdzLnJlamVjdGlvblJlYXNvbk1vZGUgfHwgJ3JlcXVpcmVkJykgPT09ICdyZXF1aXJl +ZCcgPyAnIHNlbGVjdGVkJyA6ICcnKSArICc+UGZsaWNodDwvb3B0aW9uPicgKwogICAgICAgICAg +ICAgICAgICAgICc8b3B0aW9uIHZhbHVlPSJvcHRpb25hbCInICsgKGdvdi5zZXR0aW5ncy5yZWpl +Y3Rpb25SZWFzb25Nb2RlID09PSAnb3B0aW9uYWwnID8gJyBzZWxlY3RlZCcgOiAnJykgKyAnPk9w +dGlvbmFsPC9vcHRpb24+JyArCiAgICAgICAgICAgICAgICAgICAgJzxvcHRpb24gdmFsdWU9ImRp +c2FibGVkIicgKyAoZ292LnNldHRpbmdzLnJlamVjdGlvblJlYXNvbk1vZGUgPT09ICdkaXNhYmxl +ZCcgPyAnIHNlbGVjdGVkJyA6ICcnKSArICc+TmVpbjwvb3B0aW9uPicgKwogICAgICAgICAgICAg +ICAgJzwvc2VsZWN0PicgKwogICAgICAgICAgICAnPC9kaXY+JyArCiAgICAgICAgICAgICc8ZGl2 +IGNsYXNzPSJnb3Ytc2V0dGluZy1yb3ciIHN0eWxlPSJkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6 +Y2VudGVyO2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuO2dhcDo4cHg7IiB0aXRsZT0iV2Vu +biBha3RpdmllcnQsIGVya2VubnQgZGFzIFBvcnRhbCBhdXRvbWF0aXNjaCBWZXJ3ZWlzZSBhdWYg +YW5kZXJlIEFydGlrZWwgaW0gVGV4dCB1bmQgemVpZ3QgYmVpIE1vdXNlb3ZlciBlaW5lIFZvcnNj +aGF1IGFuLiI+JyArCiAgICAgICAgICAgICAgICAnPGxhYmVsIGZvcj0iZ292Q3Jvc3NsaW5rTW9k +ZSI+Q3Jvc3NsaW5raW5nOjwvbGFiZWw+JyArCiAgICAgICAgICAgICAgICAnPHNlbGVjdCBpZD0i +Z292Q3Jvc3NsaW5rTW9kZSIgb25jaGFuZ2U9IkRyaXZlR292ZXJuYW5jZS5zYXZlU2V0dGluZ3Mo +KSIgc3R5bGU9InBhZGRpbmc6NHB4IDhweDtib3JkZXItcmFkaXVzOjRweDtib3JkZXI6MXB4IHNv +bGlkIHZhcigtLWJvcmRlci1jb2xvcik7YmFja2dyb3VuZDp2YXIoLS1iZy1pbnB1dCk7Y29sb3I6 +dmFyKC0tdGV4dC1wcmltYXJ5KTtmb250LXNpemU6MTNweDttaW4td2lkdGg6MTMwcHg7Ij4nICsK +ICAgICAgICAgICAgICAgICAgICAnPG9wdGlvbiB2YWx1ZT0iZW5hYmxlZCInICsgKChnb3Yuc2V0 +dGluZ3MuY3Jvc3NsaW5rTW9kZSB8fCAnZW5hYmxlZCcpID09PSAnZW5hYmxlZCcgPyAnIHNlbGVj +dGVkJyA6ICcnKSArICc+QWt0aXZpZXJ0PC9vcHRpb24+JyArCiAgICAgICAgICAgICAgICAgICAg +JzxvcHRpb24gdmFsdWU9ImRpc2FibGVkIicgKyAoZ292LnNldHRpbmdzLmNyb3NzbGlua01vZGUg +PT09ICdkaXNhYmxlZCcgPyAnIHNlbGVjdGVkJyA6ICcnKSArICc+RGVha3RpdmllcnQ8L29wdGlv +bj4nICsKICAgICAgICAgICAgICAgICc8L3NlbGVjdD4nICsKICAgICAgICAgICAgJzwvZGl2Picg +KwogICAgICAgICc8L2Rpdj4nOyAvLyBFbmRlIEVpbnN0ZWxsdW5nZW4tU3BhbHRlCgogICAgICAg +IGh0bWwgKz0gJzwvZGl2Pic7IC8vIEVuZGUgZ292LXR3by1jb2wKICAgICAgICBodG1sICs9ICc8 +L2Rpdj4nOyAvLyBFbmRlIGdvdi1zZWN0aW9uIChLYXRlZ29yaWVuK0VpbnN0ZWxsdW5nZW4pCgog +ICAgICAgIC8vIC0tLSBTY2hsYWd3w7ZydGVyIHZlcndhbHRlbiAtLS0KICAgICAgICBodG1sICs9 +ICc8ZGl2IGNsYXNzPSJnb3Ytc2VjdGlvbiI+JyArCiAgICAgICAgICAgICc8ZGl2IGNsYXNzPSJn +b3Ytc2VjdGlvbi10aXRsZSIgdGl0bGU9IlNjaGxhZ3fDtnJ0ZXIgaGVsZmVuIGJlaW0gU3VjaGVu +IHVuZCBGaWx0ZXJuIHZvbiBBcnRpa2Vsbi4gSGllciBrYW5uc3QgZHUgYmVzdGVoZW5kZSBTY2hs +YWd3w7ZydGVyIHVtYmVuZW5uZW4sIHp1c2FtbWVuZsO8aHJlbiBvZGVyIGzDtnNjaGVuLiI+U2No +bGFnd8O2cnRlciB2ZXJ3YWx0ZW48L2Rpdj4nICsKICAgICAgICAgICAgJzxkaXYgc3R5bGU9ImZv +bnQtc2l6ZToxMnB4O2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpO21hcmdpbi1ib3R0b206OHB4OyI+ +S2xpY2tlIGF1ZiBlaW4gU2NobGFnd29ydCwgdW0gZXMgenUgYmVhcmJlaXRlbiBvZGVyIHp1IGzD +tnNjaGVuLiBEaWUgWmFobCB6ZWlndCwgaW4gd2llIHZpZWxlbiBBcnRpa2VsbiBlcyB2ZXJ3ZW5k +ZXQgd2lyZC48L2Rpdj4nICsKICAgICAgICAgICAgJzxkaXYgY2xhc3M9Imdvdi1rdy1saXN0IiBp +ZD0iZ292S3dMaXN0Ij4nOwogICAgICAgIHZhciBhbGxLdyA9IERyaXZlRWRpdG9yLl9nZXRBbGxL +bm93bktleXdvcmRzKCk7CiAgICAgICAgYWxsS3cuZm9yRWFjaChmdW5jdGlvbihrdykgewogICAg +ICAgICAgICB2YXIgY291bnQgPSBEcml2ZUZTLmRvY3VtZW50cy5maWx0ZXIoZnVuY3Rpb24oZCkg +ewogICAgICAgICAgICAgICAgcmV0dXJuIGQuc2NobGFnd29lcnRlciAmJiBkLnNjaGxhZ3dvZXJ0 +ZXIuaW5jbHVkZXMoa3cpOwogICAgICAgICAgICB9KS5sZW5ndGg7CiAgICAgICAgICAgIGh0bWwg +Kz0gJzxzcGFuIGNsYXNzPSJnb3Yta3ctcGlsbCIgb25jbGljaz0iRHJpdmVHb3Zlcm5hbmNlLm9w +ZW5Ld01hbmFnZShcJycgKyBEcml2ZVBvcnRhbC5lc2NhcGVBdHRyKGt3KSArICdcJykiPicgKwog +ICAgICAgICAgICAgICAgRHJpdmVQb3J0YWwuZXNjYXBlSFRNTChrdykgKyAnIDxzcGFuIGNsYXNz +PSJrdy1jb3VudCI+KCcgKyBjb3VudCArICcpPC9zcGFuPjwvc3Bhbj4nOwogICAgICAgIH0pOwog +ICAgICAgIGh0bWwgKz0gJzwvZGl2PjwvZGl2Pic7CgogICAgICAgIGJvZHkuaW5uZXJIVE1MID0g +aHRtbDsKICAgIH0sCgogICAgYXN5bmMgYWRkUmV2aWV3ZXIoKSB7CiAgICAgICAgY29uc3QgdXNl +cm5hbWUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZ292QWRkVXNlcicpLnZhbHVlLnRyaW0o +KTsKICAgICAgICBjb25zdCBkaXNwbGF5TmFtZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdn +b3ZBZGROYW1lJykudmFsdWUudHJpbSgpIHx8IHVzZXJuYW1lOwogICAgICAgIGNvbnN0IG9yZ2Fu +aXNhdGlvbnNlaW5oZWl0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2dvdkFkZE9FJykudmFs +dWUudHJpbSgpOwogICAgICAgIGNvbnN0IGthdFNlbGVjdCA9IGRvY3VtZW50LmdldEVsZW1lbnRC +eUlkKCdnb3ZBZGRLYXQnKTsKICAgICAgICBjb25zdCBrYXRlZ29yaWVuID0gQXJyYXkuZnJvbShr +YXRTZWxlY3Quc2VsZWN0ZWRPcHRpb25zKS5tYXAobyA9PiBvLnZhbHVlKTsKCiAgICAgICAgaWYg +KCF1c2VybmFtZSkgeyBzaG93VG9hc3QoJ05XLUtlbm51bmcgZXJmb3JkZXJsaWNoJywgJ3dhcm5p +bmcnKTsgcmV0dXJuOyB9CiAgICAgICAgaWYgKGthdGVnb3JpZW4ubGVuZ3RoID09PSAwKSB7IHNo +b3dUb2FzdCgnTWluZGVzdGVucyBlaW5lIEthdGVnb3JpZSB3w6RobGVuJywgJ3dhcm5pbmcnKTsg +cmV0dXJuOyB9CgogICAgICAgIGlmICghdGhpcy5kYXRhKSB0aGlzLmRhdGEgPSB7IHZlcnNpb246 +ICcxLjAnLCBzdXBlclVzZXJzOiBbXSwgcmV2aWV3ZXJzOiBbXSwgc2V0dGluZ3M6IHt9IH07CiAg +ICAgICAgY29uc3QgcmV2aWV3ZXIgPSB7IHVzZXJuYW1lOiB1c2VybmFtZSwgZG9tYWluOiAnKics +IGRpc3BsYXlOYW1lOiBkaXNwbGF5TmFtZSwga2F0ZWdvcmllbjoga2F0ZWdvcmllbiB9OwogICAg +ICAgIGlmIChvcmdhbmlzYXRpb25zZWluaGVpdCkgcmV2aWV3ZXIub3JnYW5pc2F0aW9uc2Vpbmhl +aXQgPSBvcmdhbmlzYXRpb25zZWluaGVpdDsKCiAgICAgICAgaWYgKHRoaXMuX2VkaXRpbmdSZXZp +ZXdlckluZGV4ID49IDApIHsKICAgICAgICAgICAgY29uc3QgZWRpdElkeCA9IHRoaXMuX2VkaXRp +bmdSZXZpZXdlckluZGV4OwogICAgICAgICAgICBjb25zdCBiYWNrdXAgPSB7IC4uLnRoaXMuZGF0 +YS5yZXZpZXdlcnNbZWRpdElkeF0gfTsKICAgICAgICAgICAgdGhpcy5kYXRhLnJldmlld2Vyc1tl +ZGl0SWR4XSA9IHJldmlld2VyOwogICAgICAgICAgICB0aGlzLl9lZGl0aW5nUmV2aWV3ZXJJbmRl +eCA9IC0xOwogICAgICAgICAgICBjb25zdCBvayA9IGF3YWl0IHRoaXMuc2F2ZUdvdmVybmFuY2Uo +KTsKICAgICAgICAgICAgaWYgKG9rID09PSBmYWxzZSkgewogICAgICAgICAgICAgICAgdGhpcy5k +YXRhLnJldmlld2Vyc1tlZGl0SWR4XSA9IGJhY2t1cDsKICAgICAgICAgICAgICAgIHJldHVybjsK +ICAgICAgICAgICAgfQogICAgICAgICAgICB0aGlzLnJlbmRlckFkbWluKCk7CiAgICAgICAgICAg +IHNob3dUb2FzdChkaXNwbGF5TmFtZSArICcgYWt0dWFsaXNpZXJ0JywgJ3N1Y2Nlc3MnKTsKICAg +ICAgICB9IGVsc2UgewogICAgICAgICAgICB0aGlzLmRhdGEucmV2aWV3ZXJzLnB1c2gocmV2aWV3 +ZXIpOwogICAgICAgICAgICBjb25zdCBvayA9IGF3YWl0IHRoaXMuc2F2ZUdvdmVybmFuY2UoKTsK +ICAgICAgICAgICAgaWYgKG9rID09PSBmYWxzZSkgewogICAgICAgICAgICAgICAgdGhpcy5kYXRh +LnJldmlld2Vycy5wb3AoKTsKICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgfQog +ICAgICAgICAgICB0aGlzLnJlbmRlckFkbWluKCk7CiAgICAgICAgICAgIHNob3dUb2FzdChkaXNw +bGF5TmFtZSArICcgYWxzIFJldmlld2VyIGhpbnp1Z2Vmw7xndCcsICdzdWNjZXNzJyk7CiAgICAg +ICAgfQogICAgfSwKCiAgICBlZGl0UmV2aWV3ZXIoaW5kZXgpIHsKICAgICAgICBpZiAoIXRoaXMu +ZGF0YSB8fCAhdGhpcy5kYXRhLnJldmlld2Vyc1tpbmRleF0pIHJldHVybjsKICAgICAgICB0aGlz +Ll9lZGl0aW5nUmV2aWV3ZXJJbmRleCA9IGluZGV4OwogICAgICAgIHRoaXMucmVuZGVyQWRtaW4o +KTsKICAgICAgICBjb25zdCBzZWN0aW9uID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2dvdkFk +ZFNlY3Rpb24nKTsKICAgICAgICBpZiAoc2VjdGlvbikgc2VjdGlvbi5zY3JvbGxJbnRvVmlldyh7 +IGJlaGF2aW9yOiAnc21vb3RoJyB9KTsKICAgIH0sCgogICAgY2FuY2VsRWRpdCgpIHsKICAgICAg +ICB0aGlzLl9lZGl0aW5nUmV2aWV3ZXJJbmRleCA9IC0xOwogICAgICAgIHRoaXMucmVuZGVyQWRt +aW4oKTsKICAgIH0sCgogICAgYXN5bmMgcmVtb3ZlUmV2aWV3ZXIoaW5kZXgpIHsKICAgICAgICBp +ZiAoIXRoaXMuZGF0YSB8fCAhdGhpcy5kYXRhLnJldmlld2Vyc1tpbmRleF0pIHJldHVybjsKICAg +ICAgICBjb25zdCBuYW1lID0gdGhpcy5kYXRhLnJldmlld2Vyc1tpbmRleF0uZGlzcGxheU5hbWUg +fHwgdGhpcy5kYXRhLnJldmlld2Vyc1tpbmRleF0udXNlcm5hbWU7CiAgICAgICAgaWYgKCFjb25m +aXJtKCdSZXZpZXdlciAiJyArIG5hbWUgKyAnIiBlbnRmZXJuZW4/JykpIHJldHVybjsKICAgICAg +ICBjb25zdCBiYWNrdXAgPSB0aGlzLmRhdGEucmV2aWV3ZXJzW2luZGV4XTsKICAgICAgICB0aGlz +LmRhdGEucmV2aWV3ZXJzLnNwbGljZShpbmRleCwgMSk7CiAgICAgICAgY29uc3Qgb2sgPSBhd2Fp +dCB0aGlzLnNhdmVHb3Zlcm5hbmNlKCk7CiAgICAgICAgaWYgKG9rID09PSBmYWxzZSkgewogICAg +ICAgICAgICB0aGlzLmRhdGEucmV2aWV3ZXJzLnNwbGljZShpbmRleCwgMCwgYmFja3VwKTsKICAg +ICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgICAgICB0aGlzLnJlbmRlckFkbWluKCk7CiAg +ICAgICAgc2hvd1RvYXN0KG5hbWUgKyAnIGVudGZlcm50JywgJ3N1Y2Nlc3MnKTsKICAgIH0sCgog +ICAgYXN5bmMgYWRkU3VwZXJVc2VyKCkgewogICAgICAgIHZhciB1c2VybmFtZSA9IGRvY3VtZW50 +LmdldEVsZW1lbnRCeUlkKCdnb3ZTVVVzZXInKS52YWx1ZS50cmltKCk7CiAgICAgICAgaWYgKCF1 +c2VybmFtZSkgeyBzaG93VG9hc3QoJ05XLUtlbm51bmcgZXJmb3JkZXJsaWNoJywgJ3dhcm5pbmcn +KTsgcmV0dXJuOyB9CiAgICAgICAgdmFyIGRpc3BsYXlOYW1lID0gZG9jdW1lbnQuZ2V0RWxlbWVu +dEJ5SWQoJ2dvdlNVTmFtZScpLnZhbHVlLnRyaW0oKSB8fCB1c2VybmFtZTsKICAgICAgICB2YXIg +b2UgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZ292U1VPRScpLnZhbHVlLnRyaW0oKTsKICAg +ICAgICBpZiAoIXRoaXMuZGF0YS5zdXBlclVzZXJzKSB0aGlzLmRhdGEuc3VwZXJVc2VycyA9IFtd +OwogICAgICAgIHRoaXMuZGF0YS5zdXBlclVzZXJzLnB1c2goeyB1c2VybmFtZTogdXNlcm5hbWUs +IGRvbWFpbjogJyonLCBkaXNwbGF5TmFtZTogZGlzcGxheU5hbWUsIG9yZ2FuaXNhdGlvbnNlaW5o +ZWl0OiBvZSB9KTsKICAgICAgICBjb25zdCBvayA9IGF3YWl0IHRoaXMuc2F2ZUdvdmVybmFuY2Uo +KTsKICAgICAgICBpZiAob2sgPT09IGZhbHNlKSB7CiAgICAgICAgICAgIHRoaXMuZGF0YS5zdXBl +clVzZXJzLnBvcCgpOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgICAgIHRoaXMu +cmVuZGVyQWRtaW4oKTsKICAgICAgICBzaG93VG9hc3QoZGlzcGxheU5hbWUgKyAnIGFscyBTdXBl +clVzZXIgaGluenVnZWbDvGd0JywgJ3N1Y2Nlc3MnKTsKICAgIH0sCgogICAgYXN5bmMgcmVtb3Zl +U3VwZXJVc2VyKGluZGV4KSB7CiAgICAgICAgaWYgKHRoaXMuZGF0YS5zdXBlclVzZXJzLmxlbmd0 +aCA8PSAxKSB7IHNob3dUb2FzdCgnTWluZGVzdGVucyBlaW4gU3VwZXJVc2VyIGVyZm9yZGVybGlj +aCcsICd3YXJuaW5nJyk7IHJldHVybjsgfQogICAgICAgIGlmICghY29uZmlybSgnU3VwZXJVc2Vy +IHdpcmtsaWNoIGVudGZlcm5lbj8nKSkgcmV0dXJuOwogICAgICAgIGNvbnN0IGJhY2t1cCA9IHRo +aXMuZGF0YS5zdXBlclVzZXJzW2luZGV4XTsKICAgICAgICB0aGlzLmRhdGEuc3VwZXJVc2Vycy5z +cGxpY2UoaW5kZXgsIDEpOwogICAgICAgIGNvbnN0IG9rID0gYXdhaXQgdGhpcy5zYXZlR292ZXJu +YW5jZSgpOwogICAgICAgIGlmIChvayA9PT0gZmFsc2UpIHsKICAgICAgICAgICAgdGhpcy5kYXRh +LnN1cGVyVXNlcnMuc3BsaWNlKGluZGV4LCAwLCBiYWNrdXApOwogICAgICAgICAgICByZXR1cm47 +CiAgICAgICAgfQogICAgICAgIHRoaXMucmVuZGVyQWRtaW4oKTsKICAgICAgICBzaG93VG9hc3Qo +J1N1cGVyVXNlciBlbnRmZXJudCcsICdzdWNjZXNzJyk7CiAgICB9LAoKICAgIGFzeW5jIGFkZEZh +Y2hhdWZzaWNodCgpIHsKICAgICAgICB2YXIgdXNlcm5hbWUgPSBkb2N1bWVudC5nZXRFbGVtZW50 +QnlJZCgnZ292RkFVc2VyJykudmFsdWUudHJpbSgpOwogICAgICAgIGlmICghdXNlcm5hbWUpIHsg +c2hvd1RvYXN0KCdOVy1LZW5udW5nIGVyZm9yZGVybGljaCcsICd3YXJuaW5nJyk7IHJldHVybjsg +fQogICAgICAgIHZhciBkaXNwbGF5TmFtZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdnb3ZG +QU5hbWUnKS52YWx1ZS50cmltKCkgfHwgdXNlcm5hbWU7CiAgICAgICAgdmFyIG9lID0gZG9jdW1l +bnQuZ2V0RWxlbWVudEJ5SWQoJ2dvdkZBT0UnKS52YWx1ZS50cmltKCk7CiAgICAgICAgaWYgKCF0 +aGlzLmRhdGEuZmFjaGF1ZnNpY2h0KSB0aGlzLmRhdGEuZmFjaGF1ZnNpY2h0ID0gW107CiAgICAg +ICAgdGhpcy5kYXRhLmZhY2hhdWZzaWNodC5wdXNoKHsgdXNlcm5hbWU6IHVzZXJuYW1lLCBkb21h +aW46ICcqJywgZGlzcGxheU5hbWU6IGRpc3BsYXlOYW1lLCBvcmdhbmlzYXRpb25zZWluaGVpdDog +b2UgfSk7CiAgICAgICAgY29uc3Qgb2sgPSBhd2FpdCB0aGlzLnNhdmVHb3Zlcm5hbmNlKCk7CiAg +ICAgICAgaWYgKG9rID09PSBmYWxzZSkgewogICAgICAgICAgICB0aGlzLmRhdGEuZmFjaGF1ZnNp +Y2h0LnBvcCgpOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgICAgIHRoaXMucmVu +ZGVyQWRtaW4oKTsKICAgICAgICBzaG93VG9hc3QoZGlzcGxheU5hbWUgKyAnIGFscyBGYWNoYXVm +c2ljaHQgaGluenVnZWbDvGd0JywgJ3N1Y2Nlc3MnKTsKICAgIH0sCgogICAgYXN5bmMgcmVtb3Zl +RmFjaGF1ZnNpY2h0KGluZGV4KSB7CiAgICAgICAgaWYgKCFjb25maXJtKCdGYWNoYXVmc2ljaHQg +d2lya2xpY2ggZW50ZmVybmVuPycpKSByZXR1cm47CiAgICAgICAgY29uc3QgYmFja3VwID0gdGhp +cy5kYXRhLmZhY2hhdWZzaWNodFtpbmRleF07CiAgICAgICAgdGhpcy5kYXRhLmZhY2hhdWZzaWNo +dC5zcGxpY2UoaW5kZXgsIDEpOwogICAgICAgIGNvbnN0IG9rID0gYXdhaXQgdGhpcy5zYXZlR292 +ZXJuYW5jZSgpOwogICAgICAgIGlmIChvayA9PT0gZmFsc2UpIHsKICAgICAgICAgICAgdGhpcy5k +YXRhLmZhY2hhdWZzaWNodC5zcGxpY2UoaW5kZXgsIDAsIGJhY2t1cCk7CiAgICAgICAgICAgIHJl +dHVybjsKICAgICAgICB9CiAgICAgICAgdGhpcy5yZW5kZXJBZG1pbigpOwogICAgICAgIHNob3dU +b2FzdCgnRmFjaGF1ZnNpY2h0IGVudGZlcm50JywgJ3N1Y2Nlc3MnKTsKICAgIH0sCgogICAgYXN5 +bmMgYWRkQ2F0ZWdvcnkoKSB7CiAgICAgICAgdmFyIGlucHV0ID0gZG9jdW1lbnQuZ2V0RWxlbWVu +dEJ5SWQoJ2dvdk5ld0NhdCcpOwogICAgICAgIHZhciBuYW1lID0gaW5wdXQudmFsdWUudHJpbSgp +OwogICAgICAgIGlmICghbmFtZSkgcmV0dXJuOwogICAgICAgIGlmIChEcml2ZUZTLmNvbmZpZy5r +YXRlZ29yaWVuLmluY2x1ZGVzKG5hbWUpKSB7CiAgICAgICAgICAgIHNob3dUb2FzdCgnS2F0ZWdv +cmllIGV4aXN0aWVydCBiZXJlaXRzJywgJ3dhcm5pbmcnKTsKICAgICAgICAgICAgcmV0dXJuOwog +ICAgICAgIH0KICAgICAgICBEcml2ZUZTLmNvbmZpZy5rYXRlZ29yaWVuLnB1c2gobmFtZSk7CiAg +ICAgICAgRHJpdmVGUy5zb3J0S2F0ZWdvcmllbigpOwoKICAgICAgICAvLyAxLiBDb25maWcgc3Bl +aWNoZXJuCiAgICAgICAgY29uc3Qgb2sgPSBhd2FpdCB0aGlzLnNhdmVDb25maWcoKTsKICAgICAg +ICBpZiAob2sgPT09IGZhbHNlKSB7CiAgICAgICAgICAgIHZhciBybUlkeCA9IERyaXZlRlMuY29u +ZmlnLmthdGVnb3JpZW4uaW5kZXhPZihuYW1lKTsKICAgICAgICAgICAgaWYgKHJtSWR4ID49IDAp +IERyaXZlRlMuY29uZmlnLmthdGVnb3JpZW4uc3BsaWNlKHJtSWR4LCAxKTsKICAgICAgICAgICAg +cmV0dXJuOwogICAgICAgIH0KCiAgICAgICAgLy8gMi4gT3JkbmVyIGVyc3RlbGxlbjogZGF0YS9b +S2F0ZWdvcmllXS8KICAgICAgICB0cnkgewogICAgICAgICAgICBpZiAoRHJpdmVGUy5tb2RlID09 +PSAnc2VydmVyJykgewogICAgICAgICAgICAgICAgdmFyIHBsYWNlaG9sZGVyID0geyBfcGxhY2Vo +b2xkZXI6IHRydWUgfTsKICAgICAgICAgICAgICAgIGF3YWl0IGZldGNoKCcvYXBpL3dyaXRlJywg +eyBtZXRob2Q6ICdQT1NUJywgaGVhZGVyczogeydDb250ZW50LVR5cGUnOidhcHBsaWNhdGlvbi9q +c29uOyBjaGFyc2V0PXV0Zi04J30sCiAgICAgICAgICAgICAgICAgICAgYm9keTogSlNPTi5zdHJp +bmdpZnkoeyBwYXRoOiAnZGF0YS8nICsgbmFtZSArICcvX2luaXQuanNvbicsIGRhdGE6IHBsYWNl +aG9sZGVyIH0pIH0pOwogICAgICAgICAgICAgICAgYXdhaXQgZmV0Y2goJy9hcGkvZGVsZXRlJywg +eyBtZXRob2Q6ICdQT1NUJywgaGVhZGVyczogeydDb250ZW50LVR5cGUnOidhcHBsaWNhdGlvbi9q +c29uOyBjaGFyc2V0PXV0Zi04J30sCiAgICAgICAgICAgICAgICAgICAgYm9keTogSlNPTi5zdHJp +bmdpZnkoeyBwYXRoOiAnZGF0YS8nICsgbmFtZSArICcvX2luaXQuanNvbicgfSkgfSk7CiAgICAg +ICAgICAgIH0gZWxzZSBpZiAoRHJpdmVGUy5tb2RlID09PSAnZmlsZXN5c3RlbScgJiYgRHJpdmVG +Uy5fZGF0YUhhbmRsZSkgewogICAgICAgICAgICAgICAgYXdhaXQgRHJpdmVGUy5fZGF0YUhhbmRs +ZS5nZXREaXJlY3RvcnlIYW5kbGUobmFtZSwgeyBjcmVhdGU6IHRydWUgfSk7CiAgICAgICAgICAg +IH0KICAgICAgICB9IGNhdGNoKGUpIHsgY29uc29sZS53YXJuKCdPcmRuZXItRXJzdGVsbHVuZzon +LCBlKTsgfQoKICAgICAgICAvLyAzLiBVSSBrb21wbGV0dCBha3R1YWxpc2llcmVuCiAgICAgICAg +aW5wdXQudmFsdWUgPSAnJzsKICAgICAgICBEcml2ZVBvcnRhbC5zZXR1cEZpbHRlcnMoKTsKICAg +ICAgICBEcml2ZVBvcnRhbC5yZW5kZXIoKTsKICAgICAgICBpZiAodGhpcy50YWJsZVZpZXdBY3Rp +dmUpIERyaXZlUG9ydGFsLnJlbmRlclRhYmxlVmlldygpOwogICAgICAgIHRoaXMucmVuZGVyQWRt +aW4oKTsKICAgICAgICBzaG93VG9hc3QoJ0thdGVnb3JpZSAiJyArIG5hbWUgKyAnIiBoaW56dWdl +ZsO8Z3QnLCAnc3VjY2VzcycpOwogICAgfSwKCiAgICBhc3luYyByZW1vdmVDYXRlZ29yeShpbmRl +eCkgewogICAgICAgIHZhciBrYXQgPSBEcml2ZUZTLmNvbmZpZy5rYXRlZ29yaWVuW2luZGV4XTsK +ICAgICAgICB2YXIgZG9jQ291bnQgPSBEcml2ZUZTLmRvY3VtZW50cy5maWx0ZXIoZnVuY3Rpb24o +ZCl7IHJldHVybiBkLmthdGVnb3JpZSA9PT0ga2F0OyB9KS5sZW5ndGg7CiAgICAgICAgaWYgKGRv +Y0NvdW50ID4gMCkgewogICAgICAgICAgICBpZiAoIWNvbmZpcm0oJ0RpZSBLYXRlZ29yaWUgIicg +KyBrYXQgKyAnIiBlbnRow6RsdCAnICsgZG9jQ291bnQgKyAnIERva3VtZW50KGUpLlxuV2lya2xp +Y2ggZW50ZmVybmVuPyBEaWUgRG9rdW1lbnRlIGJlaGFsdGVuIGlocmUgS2F0ZWdvcmllLicpKSBy +ZXR1cm47CiAgICAgICAgfQogICAgICAgIERyaXZlRlMuY29uZmlnLmthdGVnb3JpZW4uc3BsaWNl +KGluZGV4LCAxKTsKICAgICAgICBjb25zdCBvayA9IGF3YWl0IHRoaXMuc2F2ZUNvbmZpZygpOwog +ICAgICAgIGlmIChvayA9PT0gZmFsc2UpIHsKICAgICAgICAgICAgRHJpdmVGUy5jb25maWcua2F0 +ZWdvcmllbi5zcGxpY2UoaW5kZXgsIDAsIGthdCk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAg +ICB9CiAgICAgICAgRHJpdmVQb3J0YWwuc2V0dXBGaWx0ZXJzKCk7CiAgICAgICAgRHJpdmVQb3J0 +YWwucmVuZGVyKCk7CiAgICAgICAgaWYgKERyaXZlUG9ydGFsLnRhYmxlVmlld0FjdGl2ZSkgRHJp +dmVQb3J0YWwucmVuZGVyVGFibGVWaWV3KCk7CiAgICAgICAgdGhpcy5yZW5kZXJBZG1pbigpOwog +ICAgICAgIHNob3dUb2FzdCgnS2F0ZWdvcmllICInICsga2F0ICsgJyIgZW50ZmVybnQnLCAnc3Vj +Y2VzcycpOwogICAgfSwKCiAgICBhc3luYyBoaWRlQ2F0ZWdvcnkoaW5kZXgpIHsKICAgICAgICB2 +YXIga2F0ID0gRHJpdmVGUy5jb25maWcua2F0ZWdvcmllbltpbmRleF07CiAgICAgICAgaWYgKCFE +cml2ZUZTLmNvbmZpZy5oaWRkZW5LYXRlZ29yaWVuKSBEcml2ZUZTLmNvbmZpZy5oaWRkZW5LYXRl +Z29yaWVuID0gW107CiAgICAgICAgaWYgKCFEcml2ZUZTLmNvbmZpZy5oaWRkZW5LYXRlZ29yaWVu +LmluY2x1ZGVzKGthdCkpIHsKICAgICAgICAgICAgRHJpdmVGUy5jb25maWcuaGlkZGVuS2F0ZWdv +cmllbi5wdXNoKGthdCk7CiAgICAgICAgfQogICAgICAgIGNvbnN0IG9rID0gYXdhaXQgdGhpcy5z +YXZlQ29uZmlnKCk7CiAgICAgICAgaWYgKG9rID09PSBmYWxzZSkgewogICAgICAgICAgICBEcml2 +ZUZTLmNvbmZpZy5oaWRkZW5LYXRlZ29yaWVuID0gRHJpdmVGUy5jb25maWcuaGlkZGVuS2F0ZWdv +cmllbi5maWx0ZXIoZnVuY3Rpb24oayl7IHJldHVybiBrICE9PSBrYXQ7IH0pOwogICAgICAgICAg +ICByZXR1cm47CiAgICAgICAgfQogICAgICAgIERyaXZlUG9ydGFsLnNldHVwRmlsdGVycygpOwog +ICAgICAgIERyaXZlUG9ydGFsLnJlbmRlcigpOwogICAgICAgIGlmIChEcml2ZVBvcnRhbC50YWJs +ZVZpZXdBY3RpdmUpIERyaXZlUG9ydGFsLnJlbmRlclRhYmxlVmlldygpOwogICAgICAgIHRoaXMu +cmVuZGVyQWRtaW4oKTsKICAgICAgICBzaG93VG9hc3QoJ0thdGVnb3JpZSAiJyArIGthdCArICci +IGF1c2dlYmxlbmRldCcsICdzdWNjZXNzJyk7CiAgICB9LAoKICAgIGFzeW5jIHNob3dDYXRlZ29y +eShpbmRleCkgewogICAgICAgIHZhciBrYXQgPSBEcml2ZUZTLmNvbmZpZy5rYXRlZ29yaWVuW2lu +ZGV4XTsKICAgICAgICBpZiAoIURyaXZlRlMuY29uZmlnLmhpZGRlbkthdGVnb3JpZW4pIHJldHVy +bjsKICAgICAgICBEcml2ZUZTLmNvbmZpZy5oaWRkZW5LYXRlZ29yaWVuID0gRHJpdmVGUy5jb25m +aWcuaGlkZGVuS2F0ZWdvcmllbi5maWx0ZXIoZnVuY3Rpb24oayl7IHJldHVybiBrICE9PSBrYXQ7 +IH0pOwogICAgICAgIGNvbnN0IG9rID0gYXdhaXQgdGhpcy5zYXZlQ29uZmlnKCk7CiAgICAgICAg +aWYgKG9rID09PSBmYWxzZSkgewogICAgICAgICAgICBEcml2ZUZTLmNvbmZpZy5oaWRkZW5LYXRl +Z29yaWVuLnB1c2goa2F0KTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgICAgICBE +cml2ZVBvcnRhbC5zZXR1cEZpbHRlcnMoKTsKICAgICAgICBEcml2ZVBvcnRhbC5yZW5kZXIoKTsK +ICAgICAgICBpZiAoRHJpdmVQb3J0YWwudGFibGVWaWV3QWN0aXZlKSBEcml2ZVBvcnRhbC5yZW5k +ZXJUYWJsZVZpZXcoKTsKICAgICAgICB0aGlzLnJlbmRlckFkbWluKCk7CiAgICAgICAgc2hvd1Rv +YXN0KCdLYXRlZ29yaWUgIicgKyBrYXQgKyAnIiB3aWVkZXIgZWluZ2VibGVuZGV0JywgJ3N1Y2Nl +c3MnKTsKICAgIH0sCgogICAgYXN5bmMgZWRpdFN0YXJ0c2VpdGUoKSB7CiAgICAgICAgdGhpcy5j +bG9zZUFkbWluKCk7CiAgICAgICAgLy8gQWt0dWVsbGVuIFN0YXJ0c2VpdGVuLUluaGFsdCBsYWRl +bgogICAgICAgIHZhciB3ZWxjb21lRWwgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcud2VsY29t +ZS1jb250ZW50Jyk7CiAgICAgICAgdmFyIGNvbnRlbnQgPSB3ZWxjb21lRWwgPyB3ZWxjb21lRWwu +aW5uZXJIVE1MIDogJyc7CgogICAgICAgIC8vIEdlc3BlaWNoZXJ0ZW4gSW5oYWx0IGF1cyBEYXRl +aSBsYWRlbiAoZmFsbHMgdm9yaGFuZGVuKQogICAgICAgIHRyeSB7CiAgICAgICAgICAgIGlmIChE +cml2ZUZTLm1vZGUgPT09ICdzZXJ2ZXInKSB7CiAgICAgICAgICAgICAgICB2YXIgcmVzID0gYXdh +aXQgZmV0Y2goJy9kYXRhLy5zdGFydHNlaXRlLmh0bWwnKTsKICAgICAgICAgICAgICAgIGlmIChy +ZXMub2spIGNvbnRlbnQgPSBhd2FpdCByZXMudGV4dCgpOwogICAgICAgICAgICB9IGVsc2UgaWYg +KERyaXZlRlMubW9kZSA9PT0gJ3N0YXRpYycpIHsKICAgICAgICAgICAgICAgIHZhciByZXMyID0g +YXdhaXQgZmV0Y2goJ2RhdGEvLnN0YXJ0c2VpdGUuaHRtbCcpOwogICAgICAgICAgICAgICAgaWYg +KHJlczIub2spIGNvbnRlbnQgPSBhd2FpdCByZXMyLnRleHQoKTsKICAgICAgICAgICAgfSBlbHNl +IGlmIChEcml2ZUZTLm1vZGUgPT09ICdmaWxlc3lzdGVtJyAmJiBEcml2ZUZTLl9kYXRhSGFuZGxl +KSB7CiAgICAgICAgICAgICAgICB2YXIgZmggPSBhd2FpdCBEcml2ZUZTLl9kYXRhSGFuZGxlLmdl +dEZpbGVIYW5kbGUoJy5zdGFydHNlaXRlLmh0bWwnKTsKICAgICAgICAgICAgICAgIHZhciBmaWxl +ID0gYXdhaXQgZmguZ2V0RmlsZSgpOwogICAgICAgICAgICAgICAgY29udGVudCA9IGF3YWl0IGZp +bGUudGV4dCgpOwogICAgICAgICAgICB9CiAgICAgICAgfSBjYXRjaChlKSB7fQoKICAgICAgICAv +LyBFZGl0b3Igb2VmZm5lbiBtaXQgU3RhcnRzZWl0ZW4tSW5oYWx0CiAgICAgICAgRHJpdmVFZGl0 +b3IuaXNOZXcgPSBmYWxzZTsKICAgICAgICBEcml2ZUVkaXRvci5faXNTdGFydHNlaXRlID0gdHJ1 +ZTsKICAgICAgICBEcml2ZUVkaXRvci5jdXJyZW50RG9jID0gewogICAgICAgICAgICBpZDogJ19z +dGFydHNlaXRlJywKICAgICAgICAgICAgdGl0ZWw6ICdTdGFydHNlaXRlJywKICAgICAgICAgICAg +a2F0ZWdvcmllOiAnJywKICAgICAgICAgICAgaW5oYWx0OiBjb250ZW50LAogICAgICAgICAgICBz +dGF0dXM6ICcnLAogICAgICAgICAgICBtZWRpYXM6IFtdCiAgICAgICAgfTsKICAgICAgICBEcml2 +ZUVkaXRvci5vcGVuTW9kYWwoJ1N0YXJ0c2VpdGUgYmVhcmJlaXRlbicpOwogICAgICAgIC8vIEth +dGVnb3JpZS9TdGF0dXMvTWV0YS1GZWxkZXIgYXVzYmxlbmRlbiAobmljaHQgcmVsZXZhbnQgZnVl +ciBTdGFydHNlaXRlKQogICAgICAgIHZhciBtZXRhUm93cyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0 +b3JBbGwoJy5lZGl0b3ItbWV0YS1yb3cnKTsKICAgICAgICBtZXRhUm93cy5mb3JFYWNoKGZ1bmN0 +aW9uKHJvdykgeyByb3cuc3R5bGUuZGlzcGxheSA9ICdub25lJzsgfSk7CiAgICB9LAoKICAgIGFz +eW5jIHNhdmVTdGFydHNlaXRlKGNvbnRlbnQpIHsKICAgICAgICBpZiAoRHJpdmVGUy5tb2RlID09 +PSAnc2VydmVyJykgewogICAgICAgICAgICBhd2FpdCBmZXRjaCgnL2FwaS93cml0ZScsIHsgbWV0 +aG9kOiAnUE9TVCcsIGhlYWRlcnM6IHsnQ29udGVudC1UeXBlJzonYXBwbGljYXRpb24vanNvbjsg +Y2hhcnNldD11dGYtOCd9LAogICAgICAgICAgICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkoeyBw +YXRoOiAnZGF0YS8uc3RhcnRzZWl0ZS5odG1sJywgZGF0YTogY29udGVudCB9KSB9KTsKICAgICAg +ICB9IGVsc2UgaWYgKERyaXZlRlMubW9kZSA9PT0gJ2ZpbGVzeXN0ZW0nICYmIERyaXZlRlMuX2Rh +dGFIYW5kbGUpIHsKICAgICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgICAgIHZhciBmaCA9IGF3 +YWl0IERyaXZlRlMuX2RhdGFIYW5kbGUuZ2V0RmlsZUhhbmRsZSgnLnN0YXJ0c2VpdGUuaHRtbCcs +IHsgY3JlYXRlOiB0cnVlIH0pOwogICAgICAgICAgICAgICAgdmFyIHdyaXRhYmxlID0gYXdhaXQg +ZmguY3JlYXRlV3JpdGFibGUoKTsKICAgICAgICAgICAgICAgIGF3YWl0IHdyaXRhYmxlLndyaXRl +KGNvbnRlbnQpOwogICAgICAgICAgICAgICAgYXdhaXQgd3JpdGFibGUuY2xvc2UoKTsKICAgICAg +ICAgICAgfSBjYXRjaChlKSB7fQogICAgICAgIH0KICAgICAgICAvLyBTdGFydHNlaXRlIGltIERP +TSBha3R1YWxpc2llcmVuICsgQ2FjaGUgZnVlciBzaG93SG9tZSgpIGVybmV1ZXJuCiAgICAgICAg +dmFyIHdlbGNvbWVFbCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy53ZWxjb21lLWNvbnRlbnQn +KTsKICAgICAgICBpZiAod2VsY29tZUVsKSB7CiAgICAgICAgICAgIHdlbGNvbWVFbC5pbm5lckhU +TUwgPSB0aGlzLl9zYW5pdGl6ZUhUTUwoY29udGVudCk7CiAgICAgICAgICAgIERyaXZlUG9ydGFs +Ll93ZWxjb21lSFRNTCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkb2N1bWVudERldGFpbCcp +LmlubmVySFRNTDsKICAgICAgICB9CiAgICAgICAgc2hvd1RvYXN0KCdTdGFydHNlaXRlIGdlc3Bl +aWNoZXJ0JywgJ3N1Y2Nlc3MnKTsKICAgICAgICAvLyBpbmRleC5qcyBmdWVyIExlc2Vtb2R1cyBh +a3R1YWxpc2llcmVuIChTdGFydHNlaXRlIGlzdCBkYXJpbiBlaW5nZWJldHRldCkKICAgICAgICBh +d2FpdCBEcml2ZUZTLnVwZGF0ZUluZGV4KCk7CiAgICB9LAoKICAgIGFzeW5jIGxvYWRTdGFydHNl +aXRlKCkgewogICAgICAgIHRyeSB7CiAgICAgICAgICAgIHZhciByYXcgPSBudWxsOwogICAgICAg +ICAgICBpZiAoRHJpdmVGUy5tb2RlID09PSAnc2VydmVyJykgewogICAgICAgICAgICAgICAgdmFy +IHJlcyA9IGF3YWl0IGZldGNoKCcvZGF0YS8uc3RhcnRzZWl0ZS5odG1sJyk7CiAgICAgICAgICAg +ICAgICBpZiAocmVzLm9rKSByYXcgPSBhd2FpdCByZXMudGV4dCgpOwogICAgICAgICAgICB9IGVs +c2UgaWYgKERyaXZlRlMubW9kZSA9PT0gJ3N0YXRpYycpIHsKICAgICAgICAgICAgICAgIHZhciBy +ZXMyID0gYXdhaXQgZmV0Y2goJ2RhdGEvLnN0YXJ0c2VpdGUuaHRtbCcpOwogICAgICAgICAgICAg +ICAgaWYgKHJlczIub2spIHJhdyA9IGF3YWl0IHJlczIudGV4dCgpOwogICAgICAgICAgICB9IGVs +c2UgaWYgKERyaXZlRlMubW9kZSA9PT0gJ2ZpbGVzeXN0ZW0nICYmIERyaXZlRlMuX2RhdGFIYW5k +bGUpIHsKICAgICAgICAgICAgICAgIHZhciBmaCA9IGF3YWl0IERyaXZlRlMuX2RhdGFIYW5kbGUu +Z2V0RmlsZUhhbmRsZSgnLnN0YXJ0c2VpdGUuaHRtbCcpOwogICAgICAgICAgICAgICAgdmFyIGZp +bGUgPSBhd2FpdCBmaC5nZXRGaWxlKCk7CiAgICAgICAgICAgICAgICByYXcgPSBhd2FpdCBmaWxl +LnRleHQoKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAocmF3ICYmIHJhdy5sZW5ndGgg +PiAxMCkgewogICAgICAgICAgICAgICAgdmFyIHdlbGNvbWVFbCA9IGRvY3VtZW50LnF1ZXJ5U2Vs +ZWN0b3IoJy53ZWxjb21lLWNvbnRlbnQnKTsKICAgICAgICAgICAgICAgIGlmICh3ZWxjb21lRWwp +IHsKICAgICAgICAgICAgICAgICAgICB3ZWxjb21lRWwuaW5uZXJIVE1MID0gdGhpcy5fc2FuaXRp +emVIVE1MKHJhdyk7CiAgICAgICAgICAgICAgICAgICAgLy8gQ2FjaGUgYWt0dWFsaXNpZXJlbiwg +ZGFtaXQgc2hvd0hvbWUoKSBkZW4gZ2VzcGVpY2hlcnRlbiBJbmhhbHQgemVpZ3QKICAgICAgICAg +ICAgICAgICAgICBEcml2ZVBvcnRhbC5fd2VsY29tZUhUTUwgPSBkb2N1bWVudC5nZXRFbGVtZW50 +QnlJZCgnZG9jdW1lbnREZXRhaWwnKS5pbm5lckhUTUw7CiAgICAgICAgICAgICAgICB9CiAgICAg +ICAgICAgIH0KICAgICAgICB9IGNhdGNoKGUpIHt9CiAgICB9LAoKICAgIGFzeW5jIHNhdmVIZWxw +Q29udGVudCgpIHsKICAgICAgICB2YXIgY29udGVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlk +KCdoZWxwQm9keScpLmlubmVySFRNTDsKICAgICAgICAvLyBQZXJzaXN0aWVyZW4gYWxzIGRhdGEv +LmhlbHAtY29udGVudC5odG1sCiAgICAgICAgaWYgKERyaXZlRlMubW9kZSA9PT0gJ3NlcnZlcicp +IHsKICAgICAgICAgICAgYXdhaXQgZmV0Y2goJy9hcGkvd3JpdGUnLCB7IG1ldGhvZDogJ1BPU1Qn +LCBoZWFkZXJzOiB7J0NvbnRlbnQtVHlwZSc6J2FwcGxpY2F0aW9uL2pzb247IGNoYXJzZXQ9dXRm +LTgnfSwKICAgICAgICAgICAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KHsgcGF0aDogJ2RhdGEv +LmhlbHAtY29udGVudC5odG1sJywgZGF0YTogY29udGVudCB9KSB9KTsKICAgICAgICB9IGVsc2Ug +aWYgKERyaXZlRlMubW9kZSA9PT0gJ2ZpbGVzeXN0ZW0nICYmIERyaXZlRlMuX2RhdGFIYW5kbGUp +IHsKICAgICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgICAgIHZhciBmaCA9IGF3YWl0IERyaXZl +RlMuX2RhdGFIYW5kbGUuZ2V0RmlsZUhhbmRsZSgnLmhlbHAtY29udGVudC5odG1sJywgeyBjcmVh +dGU6IHRydWUgfSk7CiAgICAgICAgICAgICAgICB2YXIgd3JpdGFibGUgPSBhd2FpdCBmaC5jcmVh +dGVXcml0YWJsZSgpOwogICAgICAgICAgICAgICAgYXdhaXQgd3JpdGFibGUud3JpdGUoY29udGVu +dCk7CiAgICAgICAgICAgICAgICBhd2FpdCB3cml0YWJsZS5jbG9zZSgpOwogICAgICAgICAgICB9 +IGNhdGNoKGUpIHt9CiAgICAgICAgfQogICAgICAgIHNob3dUb2FzdCgnSGlsZmUtSW5oYWx0IGdl +c3BlaWNoZXJ0JywgJ3N1Y2Nlc3MnKTsKICAgIH0sCgogICAgX3Nhbml0aXplSFRNTChodG1sKSB7 +CiAgICAgICAgLy8gU2NyaXB0LVRhZ3MsIEV2ZW50LUhhbmRsZXIgdW5kIGdlZsOkaHJsaWNoZSBB +dHRyaWJ1dGUgZW50ZmVybmVuCiAgICAgICAgdmFyIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1l +bnQoJ2RpdicpOwogICAgICAgIGRpdi5pbm5lckhUTUwgPSBodG1sOwogICAgICAgIGRpdi5xdWVy +eVNlbGVjdG9yQWxsKCdzY3JpcHQsaWZyYW1lLG9iamVjdCxlbWJlZCxmb3JtJykuZm9yRWFjaChm +dW5jdGlvbihlbCl7IGVsLnJlbW92ZSgpOyB9KTsKICAgICAgICBkaXYucXVlcnlTZWxlY3RvckFs +bCgnKicpLmZvckVhY2goZnVuY3Rpb24oZWwpIHsKICAgICAgICAgICAgQXJyYXkuZnJvbShlbC5h +dHRyaWJ1dGVzKS5mb3JFYWNoKGZ1bmN0aW9uKGF0dHIpIHsKICAgICAgICAgICAgICAgIGlmIChh +dHRyLm5hbWUuc3RhcnRzV2l0aCgnb24nKSB8fCBhdHRyLnZhbHVlLnRyaW0oKS50b0xvd2VyQ2Fz +ZSgpLnN0YXJ0c1dpdGgoJ2phdmFzY3JpcHQ6JykpIHsKICAgICAgICAgICAgICAgICAgICBlbC5y +ZW1vdmVBdHRyaWJ1dGUoYXR0ci5uYW1lKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg +fSk7CiAgICAgICAgfSk7CiAgICAgICAgcmV0dXJuIGRpdi5pbm5lckhUTUw7CiAgICB9LAoKICAg +IGFzeW5jIGxvYWRIZWxwQ29udGVudCgpIHsKICAgICAgICB0cnkgewogICAgICAgICAgICB2YXIg +cmF3ID0gbnVsbDsKICAgICAgICAgICAgaWYgKERyaXZlRlMubW9kZSA9PT0gJ3NlcnZlcicpIHsK +ICAgICAgICAgICAgICAgIHZhciByZXMgPSBhd2FpdCBmZXRjaCgnL2RhdGEvLmhlbHAtY29udGVu +dC5odG1sJyk7CiAgICAgICAgICAgICAgICBpZiAocmVzLm9rKSByYXcgPSBhd2FpdCByZXMudGV4 +dCgpOwogICAgICAgICAgICB9IGVsc2UgaWYgKERyaXZlRlMubW9kZSA9PT0gJ3N0YXRpYycpIHsK +ICAgICAgICAgICAgICAgIHZhciByZXMyID0gYXdhaXQgZmV0Y2goJ2RhdGEvLmhlbHAtY29udGVu +dC5odG1sJyk7CiAgICAgICAgICAgICAgICBpZiAocmVzMi5vaykgcmF3ID0gYXdhaXQgcmVzMi50 +ZXh0KCk7CiAgICAgICAgICAgIH0gZWxzZSBpZiAoRHJpdmVGUy5tb2RlID09PSAnZmlsZXN5c3Rl +bScgJiYgRHJpdmVGUy5fZGF0YUhhbmRsZSkgewogICAgICAgICAgICAgICAgdmFyIGZoID0gYXdh +aXQgRHJpdmVGUy5fZGF0YUhhbmRsZS5nZXRGaWxlSGFuZGxlKCcuaGVscC1jb250ZW50Lmh0bWwn +KTsKICAgICAgICAgICAgICAgIHZhciBmaWxlID0gYXdhaXQgZmguZ2V0RmlsZSgpOwogICAgICAg +ICAgICAgICAgcmF3ID0gYXdhaXQgZmlsZS50ZXh0KCk7CiAgICAgICAgICAgIH0KICAgICAgICAg +ICAgaWYgKHJhdyAmJiByYXcubGVuZ3RoID4gMTApIHsKICAgICAgICAgICAgICAgIGRvY3VtZW50 +LmdldEVsZW1lbnRCeUlkKCdoZWxwQm9keScpLmlubmVySFRNTCA9IHRoaXMuX3Nhbml0aXplSFRN +TChyYXcpOwogICAgICAgICAgICB9CiAgICAgICAgfSBjYXRjaChlKSB7fQogICAgfSwKCiAgICBh +c3luYyBzYXZlQ29uZmlnKCkgewogICAgICAgIHRyeSB7CiAgICAgICAgICAgIGlmIChEcml2ZUZT +Lm1vZGUgPT09ICdzZXJ2ZXInKSB7CiAgICAgICAgICAgICAgICBjb25zdCByZXMgPSBhd2FpdCBm +ZXRjaCgnL2FwaS93cml0ZScsIHsKICAgICAgICAgICAgICAgICAgICBtZXRob2Q6ICdQT1NUJywK +ICAgICAgICAgICAgICAgICAgICBoZWFkZXJzOiB7ICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRp +b24vanNvbjsgY2hhcnNldD11dGYtOCcgfSwKICAgICAgICAgICAgICAgICAgICBib2R5OiBKU09O +LnN0cmluZ2lmeSh7IHBhdGg6ICdkYXRhL2NvbmZpZy5qc29uJywgZGF0YTogRHJpdmVGUy5jb25m +aWcgfSkKICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0g +YXdhaXQgcmVzLmpzb24oKTsKICAgICAgICAgICAgICAgIGlmICghcmVzdWx0Lm9rKSB7CiAgICAg +ICAgICAgICAgICAgICAgc2hvd1RvYXN0KCdLb25maWd1cmF0aW9uIHNwZWljaGVybiBmZWhsZ2Vz +Y2hsYWdlbjogJyArIChyZXN1bHQuZXJyb3IgfHwgJ1VuYmVrYW5udGVyIEZlaGxlcicpLCAnZXJy +b3InLCA1MDAwKTsKICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAg +ICAgICB9CiAgICAgICAgICAgIH0gZWxzZSBpZiAoRHJpdmVGUy5tb2RlID09PSAnZmlsZXN5c3Rl +bScgJiYgRHJpdmVGUy5fZGF0YUhhbmRsZSkgewogICAgICAgICAgICAgICAgdmFyIGZoID0gYXdh +aXQgRHJpdmVGUy5fZGF0YUhhbmRsZS5nZXRGaWxlSGFuZGxlKCdjb25maWcuanNvbicsIHsgY3Jl +YXRlOiB0cnVlIH0pOwogICAgICAgICAgICAgICAgdmFyIHdyaXRhYmxlID0gYXdhaXQgZmguY3Jl +YXRlV3JpdGFibGUoKTsKICAgICAgICAgICAgICAgIGF3YWl0IHdyaXRhYmxlLndyaXRlKEpTT04u +c3RyaW5naWZ5KERyaXZlRlMuY29uZmlnLCBudWxsLCAyKSk7CiAgICAgICAgICAgICAgICBhd2Fp +dCB3cml0YWJsZS5jbG9zZSgpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHJldHVybiB0cnVl +OwogICAgICAgIH0gY2F0Y2ggKGVycikgewogICAgICAgICAgICBzaG93VG9hc3QoJ0tvbmZpZ3Vy +YXRpb24gc3BlaWNoZXJuIGZlaGxnZXNjaGxhZ2VuOiAnICsgZXJyLm1lc3NhZ2UsICdlcnJvcics +IDUwMDApOwogICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgfQogICAgfSwKCiAgICBf +ZW5nYWdlbWVudFNvcnQ6ICd0b3RhbCcsCiAgICBfZW5nYWdlbWVudENhdDogJ2FsbCcsCgogICAg +c2hvd0VuZ2FnZW1lbnRTdGF0cyhzb3J0QnksIGZpbHRlckNhdCkgewogICAgICAgIHRoaXMuY2xv +c2VBZG1pbigpOwogICAgICAgIGlmIChzb3J0QnkpIHRoaXMuX2VuZ2FnZW1lbnRTb3J0ID0gc29y +dEJ5OwogICAgICAgIGlmIChmaWx0ZXJDYXQgIT09IHVuZGVmaW5lZCkgdGhpcy5fZW5nYWdlbWVu +dENhdCA9IGZpbHRlckNhdDsKICAgICAgICB2YXIgc29ydCA9IHRoaXMuX2VuZ2FnZW1lbnRTb3J0 +OwogICAgICAgIHZhciBjYXRGaWx0ZXIgPSB0aGlzLl9lbmdhZ2VtZW50Q2F0OwogICAgICAgIHZh +ciBkb2NzID0gRHJpdmVGUy5kb2N1bWVudHM7CiAgICAgICAgdmFyIGthdGVnb3JpZW4gPSBEcml2 +ZUZTLmNvbmZpZy5rYXRlZ29yaWVuIHx8IFtdOwogICAgICAgIHZhciB0b3RhbERvY3MgPSBkb2Nz +Lmxlbmd0aDsKICAgICAgICB2YXIgdG90YWxGcmVpZ2VnZWJlbiA9IGRvY3MuZmlsdGVyKGZ1bmN0 +aW9uKGQpeyByZXR1cm4gZC5zdGF0dXMgPT09ICdGcmVpZ2VnZWJlbic7IH0pLmxlbmd0aDsKICAg +ICAgICB2YXIgdG90YWxQcnVlZnVuZyA9IGRvY3MuZmlsdGVyKGZ1bmN0aW9uKGQpeyByZXR1cm4g +ZC5zdGF0dXMgPT09ICdQcsO8ZnVuZyc7IH0pLmxlbmd0aDsKICAgICAgICB2YXIgdG90YWxFbnR3 +dXJmID0gZG9jcy5maWx0ZXIoZnVuY3Rpb24oZCl7IHJldHVybiBkLnN0YXR1cyA9PT0gJ0VudHd1 +cmYnOyB9KS5sZW5ndGg7CiAgICAgICAgdmFyIHRvdGFsV2l0aE1lZGlhID0gZG9jcy5maWx0ZXIo +ZnVuY3Rpb24oZCl7IHJldHVybiBkLm1lZGlhcyAmJiBkLm1lZGlhcy5sZW5ndGggPiAwOyB9KS5s +ZW5ndGg7CgogICAgICAgIC8vIFVzZXItQmVpdHLDpGdlIHrDpGhsZW4g4oCTIGF1Zmdlc2NobMO8 +c3NlbHQgbmFjaCBLYXRlZ29yaWUKICAgICAgICB2YXIgdXNlclN0YXRzID0ge307CiAgICAgICAg +ZG9jcy5mb3JFYWNoKGZ1bmN0aW9uKGRvYykgewogICAgICAgICAgICB2YXIga2F0ID0gZG9jLmth +dGVnb3JpZSB8fCAnU29uc3RpZ2UnOwogICAgICAgICAgICBmdW5jdGlvbiBlbnN1cmUobmFtZSkg +ewogICAgICAgICAgICAgICAgaWYgKCF1c2VyU3RhdHNbbmFtZV0pIHVzZXJTdGF0c1tuYW1lXSA9 +IHsgY3JlYXRlZDogMCwgZWRpdGVkOiAwLCByZXZpZXdzOiAwLCBrYXRlZ29yaWVuOiB7fSB9Owog +ICAgICAgICAgICAgICAgaWYgKCF1c2VyU3RhdHNbbmFtZV0ua2F0ZWdvcmllbltrYXRdKSB1c2Vy +U3RhdHNbbmFtZV0ua2F0ZWdvcmllbltrYXRdID0geyBjcmVhdGVkOiAwLCBlZGl0ZWQ6IDAsIHJl +dmlld3M6IDAgfTsKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAoZG9jLmVyc3RlbGx0Vm9u +KSB7CiAgICAgICAgICAgICAgICBlbnN1cmUoZG9jLmVyc3RlbGx0Vm9uKTsKICAgICAgICAgICAg +ICAgIHVzZXJTdGF0c1tkb2MuZXJzdGVsbHRWb25dLmNyZWF0ZWQrKzsKICAgICAgICAgICAgICAg +IHVzZXJTdGF0c1tkb2MuZXJzdGVsbHRWb25dLmthdGVnb3JpZW5ba2F0XS5jcmVhdGVkKys7CiAg +ICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKGRvYy5iZWFyYmVpdGV0Vm9uICYmIGRvYy5iZWFy +YmVpdGV0Vm9uICE9PSBkb2MuZXJzdGVsbHRWb24pIHsKICAgICAgICAgICAgICAgIGVuc3VyZShk +b2MuYmVhcmJlaXRldFZvbik7CiAgICAgICAgICAgICAgICB1c2VyU3RhdHNbZG9jLmJlYXJiZWl0 +ZXRWb25dLmVkaXRlZCsrOwogICAgICAgICAgICAgICAgdXNlclN0YXRzW2RvYy5iZWFyYmVpdGV0 +Vm9uXS5rYXRlZ29yaWVuW2thdF0uZWRpdGVkKys7CiAgICAgICAgICAgIH0KICAgICAgICAgICAg +KGRvYy5jb250cmlidXRvcnMgfHwgW10pLmZvckVhY2goZnVuY3Rpb24oYykgewogICAgICAgICAg +ICAgICAgZW5zdXJlKGMudXNlcm5hbWUpOwogICAgICAgICAgICAgICAgaWYgKGMucm9sZSA9PT0g +J3JldmlldycpIHsKICAgICAgICAgICAgICAgICAgICB1c2VyU3RhdHNbYy51c2VybmFtZV0ucmV2 +aWV3cyArPSAoYy5lbnRyaWVzIHx8IDEpOwogICAgICAgICAgICAgICAgICAgIHVzZXJTdGF0c1tj +LnVzZXJuYW1lXS5rYXRlZ29yaWVuW2thdF0ucmV2aWV3cyArPSAoYy5lbnRyaWVzIHx8IDEpOwog +ICAgICAgICAgICAgICAgfSBlbHNlIGlmIChjLnJvbGUgPT09ICdhdXRvcicpIHsKICAgICAgICAg +ICAgICAgICAgICB1c2VyU3RhdHNbYy51c2VybmFtZV0uY3JlYXRlZCArPSAoYy5lbnRyaWVzIHx8 +IDEpIC0gMTsgLy8gLTEgd2VpbCBlcnN0ZWxsdFZvbiBzY2hvbiB6w6RobHQKICAgICAgICAgICAg +ICAgICAgICB1c2VyU3RhdHNbYy51c2VybmFtZV0ua2F0ZWdvcmllbltrYXRdLmNyZWF0ZWQgKz0g +KGMuZW50cmllcyB8fCAxKSAtIDE7CiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGMucm9sZSA9 +PT0gJ3JlZGFrdGlvbicpIHsKICAgICAgICAgICAgICAgICAgICB1c2VyU3RhdHNbYy51c2VybmFt +ZV0uZWRpdGVkICs9IChjLmVudHJpZXMgfHwgMSk7CiAgICAgICAgICAgICAgICAgICAgdXNlclN0 +YXRzW2MudXNlcm5hbWVdLmthdGVnb3JpZW5ba2F0XS5lZGl0ZWQgKz0gKGMuZW50cmllcyB8fCAx +KTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIHZhciBnb3Yg +PSBkb2MuZ292ZXJuYW5jZSB8fCB7fTsKICAgICAgICAgICAgKGdvdi5yZXZpZXdIaXN0b3J5IHx8 +IFtdKS5mb3JFYWNoKGZ1bmN0aW9uKHIpIHsKICAgICAgICAgICAgICAgIGlmIChyLnJldmlld2Vy +KSB7CiAgICAgICAgICAgICAgICAgICAgZW5zdXJlKHIucmV2aWV3ZXIpOwogICAgICAgICAgICAg +ICAgICAgIHVzZXJTdGF0c1tyLnJldmlld2VyXS5yZXZpZXdzKys7CiAgICAgICAgICAgICAgICAg +ICAgdXNlclN0YXRzW3IucmV2aWV3ZXJdLmthdGVnb3JpZW5ba2F0XS5yZXZpZXdzKys7CiAgICAg +ICAgICAgICAgICB9CiAgICAgICAgICAgIH0pOwogICAgICAgIH0pOwoKICAgICAgICAvLyBTb3J0 +aWVydW5nCiAgICAgICAgdmFyIHNvcnRlZFVzZXJzID0gT2JqZWN0LmVudHJpZXModXNlclN0YXRz +KTsKICAgICAgICB2YXIgZ2V0VmFsID0gZnVuY3Rpb24ocykgewogICAgICAgICAgICB2YXIgZCA9 +IHNbMV07CiAgICAgICAgICAgIGlmIChjYXRGaWx0ZXIgIT09ICdhbGwnKSBkID0gZC5rYXRlZ29y +aWVuW2NhdEZpbHRlcl0gfHwgeyBjcmVhdGVkOjAsIGVkaXRlZDowLCByZXZpZXdzOjAgfTsKICAg +ICAgICAgICAgaWYgKHNvcnQgPT09ICdjcmVhdGVkJykgcmV0dXJuIGQuY3JlYXRlZDsKICAgICAg +ICAgICAgaWYgKHNvcnQgPT09ICdlZGl0ZWQnKSByZXR1cm4gZC5lZGl0ZWQ7CiAgICAgICAgICAg +IGlmIChzb3J0ID09PSAncmV2aWV3cycpIHJldHVybiBkLnJldmlld3M7CiAgICAgICAgICAgIHJl +dHVybiBkLmNyZWF0ZWQgKyBkLmVkaXRlZCArIGQucmV2aWV3czsKICAgICAgICB9OwogICAgICAg +IHNvcnRlZFVzZXJzLnNvcnQoZnVuY3Rpb24oYSxiKXsgcmV0dXJuIGdldFZhbChiKSAtIGdldFZh +bChhKTsgfSk7CiAgICAgICAgc29ydGVkVXNlcnMgPSBzb3J0ZWRVc2Vycy5maWx0ZXIoZnVuY3Rp +b24odSl7IHJldHVybiBnZXRWYWwodSkgPiAwOyB9KTsKCiAgICAgICAgLy8gS2F0ZWdvcmllbi1W +ZXJ0ZWlsdW5nCiAgICAgICAgdmFyIGNhdFN0YXRzID0ge307CiAgICAgICAgZG9jcy5mb3JFYWNo +KGZ1bmN0aW9uKGQpIHsgY2F0U3RhdHNbZC5rYXRlZ29yaWVdID0gKGNhdFN0YXRzW2Qua2F0ZWdv +cmllXSB8fCAwKSArIDE7IH0pOwoKICAgICAgICAvLyBTY2hsYWd3b3J0LUjDpHVmaWdrZWl0ZW4K +ICAgICAgICB2YXIga3dTdGF0cyA9IHt9OwogICAgICAgIGRvY3MuZm9yRWFjaChmdW5jdGlvbihk +KSB7IChkLnNjaGxhZ3dvZXJ0ZXIgfHwgW10pLmZvckVhY2goZnVuY3Rpb24oaykgeyBrd1N0YXRz +W2tdID0gKGt3U3RhdHNba10gfHwgMCkgKyAxOyB9KTsgfSk7CiAgICAgICAgdmFyIHRvcEt3cyA9 +IE9iamVjdC5lbnRyaWVzKGt3U3RhdHMpLnNvcnQoZnVuY3Rpb24oYSxiKXsgcmV0dXJuIGJbMV0t +YVsxXTsgfSkuc2xpY2UoMCwgMTApOwoKICAgICAgICAvLyBNb25hdGxpY2hlIEVyc3RlbGx1bmcK +ICAgICAgICB2YXIgbW9udGhTdGF0cyA9IHt9OwogICAgICAgIGRvY3MuZm9yRWFjaChmdW5jdGlv +bihkKSB7IHZhciBtID0gKGQuZXJzdGVsbHQgfHwgJycpLnN1YnN0cmluZygwLCA3KTsgaWYgKG0p +IG1vbnRoU3RhdHNbbV0gPSAobW9udGhTdGF0c1ttXSB8fCAwKSArIDE7IH0pOwogICAgICAgIHZh +ciBtb250aHMgPSBPYmplY3QuZW50cmllcyhtb250aFN0YXRzKS5zb3J0KGZ1bmN0aW9uKGEsYil7 +IHJldHVybiBhWzBdLmxvY2FsZUNvbXBhcmUoYlswXSk7IH0pOwoKICAgICAgICB2YXIgbWF4Q2F0 +ID0gTWF0aC5tYXguYXBwbHkobnVsbCwgT2JqZWN0LnZhbHVlcyhjYXRTdGF0cykuY29uY2F0KFsx +XSkpOwogICAgICAgIHZhciBtYXhLdyA9IHRvcEt3cy5sZW5ndGggPiAwID8gdG9wS3dzWzBdWzFd +IDogMTsKICAgICAgICB2YXIgbWF4TW9udGggPSBtb250aHMubGVuZ3RoID4gMCA/IE1hdGgubWF4 +LmFwcGx5KG51bGwsIG1vbnRocy5tYXAoZnVuY3Rpb24obSl7cmV0dXJuIG1bMV07fSkpIDogMTsK +CiAgICAgICAgdmFyIGh0bWwgPSAnPGRpdiBzdHlsZT0icGFkZGluZzoyMHB4OyI+PGgyIHN0eWxl +PSJjb2xvcjp2YXIoLS10ZXh0LWhlYWRpbmcpO21hcmdpbi1ib3R0b206MjBweDsiPlVzZXItRW5n +YWdlbWVudCBTdGF0aXN0aWs8L2gyPic7CgogICAgICAgIC8vIMOcYmVyc2ljaHRza2FydGVuCiAg +ICAgICAgaHRtbCArPSAnPGRpdiBjbGFzcz0ic3RhdC1ncmlkIj4nICsKICAgICAgICAgICAgJzxk +aXYgY2xhc3M9InN0YXQtY2FyZCI+PGRpdiBjbGFzcz0ic3RhdC12YWx1ZSI+JyArIHRvdGFsRG9j +cyArICc8L2Rpdj48ZGl2IGNsYXNzPSJzdGF0LWxhYmVsIj5Eb2t1bWVudGUgZ2VzYW10PC9kaXY+ +PC9kaXY+JyArCiAgICAgICAgICAgICc8ZGl2IGNsYXNzPSJzdGF0LWNhcmQiPjxkaXYgY2xhc3M9 +InN0YXQtdmFsdWUiIHN0eWxlPSJjb2xvcjojMTU1NzI0OyI+JyArIHRvdGFsRnJlaWdlZ2ViZW4g +KyAnPC9kaXY+PGRpdiBjbGFzcz0ic3RhdC1sYWJlbCI+RnJlaWdlZ2ViZW48L2Rpdj48L2Rpdj4n +ICsKICAgICAgICAgICAgJzxkaXYgY2xhc3M9InN0YXQtY2FyZCI+PGRpdiBjbGFzcz0ic3RhdC12 +YWx1ZSIgc3R5bGU9ImNvbG9yOiM3QTQ0MTk7Ij4nICsgdG90YWxQcnVlZnVuZyArICc8L2Rpdj48 +ZGl2IGNsYXNzPSJzdGF0LWxhYmVsIj5JbiBQcsO8ZnVuZzwvZGl2PjwvZGl2PicgKwogICAgICAg +ICAgICAnPGRpdiBjbGFzcz0ic3RhdC1jYXJkIj48ZGl2IGNsYXNzPSJzdGF0LXZhbHVlIiBzdHls +ZT0iY29sb3I6Izg1NjQwNDsiPicgKyB0b3RhbEVudHd1cmYgKyAnPC9kaXY+PGRpdiBjbGFzcz0i +c3RhdC1sYWJlbCI+RW50d8O8cmZlPC9kaXY+PC9kaXY+JyArCiAgICAgICAgICAgICc8ZGl2IGNs +YXNzPSJzdGF0LWNhcmQiPjxkaXYgY2xhc3M9InN0YXQtdmFsdWUiPicgKyB0b3RhbFdpdGhNZWRp +YSArICc8L2Rpdj48ZGl2IGNsYXNzPSJzdGF0LWxhYmVsIj5NaXQgTWVkaWVuPC9kaXY+PC9kaXY+ +JyArCiAgICAgICAgICAgICc8ZGl2IGNsYXNzPSJzdGF0LWNhcmQiPjxkaXYgY2xhc3M9InN0YXQt +dmFsdWUiPicgKyBPYmplY3Qua2V5cyh1c2VyU3RhdHMpLmxlbmd0aCArICc8L2Rpdj48ZGl2IGNs +YXNzPSJzdGF0LWxhYmVsIj5Ba3RpdmUgQmVudXR6ZXI8L2Rpdj48L2Rpdj4nICsKICAgICAgICAn +PC9kaXY+JzsKCiAgICAgICAgLy8gLS0tIEJlbnV0emVyLUFrdGl2aXTDpHQgbWl0IEZpbHRlciAr +IFNvcnRpZXJ1bmcgLS0tCiAgICAgICAgaHRtbCArPSAnPGgzIHN0eWxlPSJjb2xvcjp2YXIoLS10 +ZXh0LWhlYWRpbmcpO21hcmdpbjoyMHB4IDAgOHB4OyI+QmVudXR6ZXItQWt0aXZpdMOkdCBuYWNo +IEJlcmVpY2g8L2gzPic7CgogICAgICAgIC8vIEZpbHRlci1MZWlzdGUKICAgICAgICB2YXIgYnRu +U3R5bGUgPSBmdW5jdGlvbih2YWwsIGN1cnJlbnQsIGVtcHR5KSB7CiAgICAgICAgICAgIGlmICh2 +YWwgPT09IGN1cnJlbnQpIHsKICAgICAgICAgICAgICAgIHJldHVybiAncGFkZGluZzo0cHggMTJw +eDtib3JkZXI6MXB4IHNvbGlkIHZhcigtLXRleHQtaGVhZGluZyk7YmFja2dyb3VuZDp2YXIoLS10 +ZXh0LWhlYWRpbmcpO2NvbG9yOndoaXRlO2JvcmRlci1yYWRpdXM6NHB4O2N1cnNvcjpwb2ludGVy +O2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjUwMDsnOwogICAgICAgICAgICB9CiAgICAgICAg +ICAgIGlmIChlbXB0eSkgewogICAgICAgICAgICAgICAgcmV0dXJuICdwYWRkaW5nOjRweCAxMnB4 +O2JvcmRlcjoxcHggc29saWQgIzhiMWExYTtiYWNrZ3JvdW5kOiM4YjFhMWE7Y29sb3I6I2ZmZjti +b3JkZXItcmFkaXVzOjRweDtjdXJzb3I6cG9pbnRlcjtmb250LXNpemU6MTJweDtmb250LXdlaWdo +dDo1MDA7JzsKICAgICAgICAgICAgfQogICAgICAgICAgICByZXR1cm4gJ3BhZGRpbmc6NHB4IDEy +cHg7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3IpO2JhY2tncm91bmQ6dmFyKC0t +YmctY2FyZCk7Y29sb3I6dmFyKC0tdGV4dC1wcmltYXJ5KTtib3JkZXItcmFkaXVzOjRweDtjdXJz +b3I6cG9pbnRlcjtmb250LXNpemU6MTJweDtmb250LXdlaWdodDo1MDA7JzsKICAgICAgICB9Owog +ICAgICAgIGh0bWwgKz0gJzxkaXYgc3R5bGU9ImRpc3BsYXk6ZmxleDtnYXA6NnB4O2ZsZXgtd3Jh +cDp3cmFwO21hcmdpbi1ib3R0b206NnB4O2FsaWduLWl0ZW1zOmNlbnRlcjsiPicgKwogICAgICAg +ICAgICAnPHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMnB4O2NvbG9yOnZhcigtLXRleHQtbXV0ZWQp +O21hcmdpbi1yaWdodDo0cHg7Ij5LYXRlZ29yaWU6PC9zcGFuPicgKwogICAgICAgICAgICAnPGJ1 +dHRvbiBzdHlsZT0iJyArIGJ0blN0eWxlKCdhbGwnLCBjYXRGaWx0ZXIsIGZhbHNlKSArICciIG9u +Y2xpY2s9IkRyaXZlR292ZXJuYW5jZS5zaG93RW5nYWdlbWVudFN0YXRzKG51bGwsXCdhbGxcJyki +PkFsbGU8L2J1dHRvbj4nOwogICAgICAgIGthdGVnb3JpZW4uZm9yRWFjaChmdW5jdGlvbihrKSB7 +CiAgICAgICAgICAgIHZhciBoYXNOb0RvY3MgPSAhY2F0U3RhdHNba107CiAgICAgICAgICAgIGh0 +bWwgKz0gJzxidXR0b24gc3R5bGU9IicgKyBidG5TdHlsZShrLCBjYXRGaWx0ZXIsIGhhc05vRG9j +cykgKyAnIiBvbmNsaWNrPSJEcml2ZUdvdmVybmFuY2Uuc2hvd0VuZ2FnZW1lbnRTdGF0cyhudWxs +LFwnJyArIERyaXZlUG9ydGFsLmVzY2FwZUF0dHIoaykgKyAnXCcpIj4nICsgRHJpdmVQb3J0YWwu +ZXNjYXBlSFRNTChrKSArICc8L2J1dHRvbj4nOwogICAgICAgIH0pOwogICAgICAgIGh0bWwgKz0g +JzwvZGl2Pic7CgogICAgICAgIGh0bWwgKz0gJzxkaXYgc3R5bGU9ImRpc3BsYXk6ZmxleDtnYXA6 +NnB4O2ZsZXgtd3JhcDp3cmFwO21hcmdpbi1ib3R0b206MTBweDthbGlnbi1pdGVtczpjZW50ZXI7 +Ij4nICsKICAgICAgICAgICAgJzxzcGFuIHN0eWxlPSJmb250LXNpemU6MTJweDtjb2xvcjp2YXIo +LS10ZXh0LW11dGVkKTttYXJnaW4tcmlnaHQ6NHB4OyI+U29ydGllcnVuZzo8L3NwYW4+JyArCiAg +ICAgICAgICAgICc8YnV0dG9uIHN0eWxlPSInICsgYnRuU3R5bGUoJ3RvdGFsJywgc29ydCkgKyAn +IiBvbmNsaWNrPSJEcml2ZUdvdmVybmFuY2Uuc2hvd0VuZ2FnZW1lbnRTdGF0cyhcJ3RvdGFsXCcp +Ij5HZXNhbXQ8L2J1dHRvbj4nICsKICAgICAgICAgICAgJzxidXR0b24gc3R5bGU9IicgKyBidG5T +dHlsZSgnY3JlYXRlZCcsIHNvcnQpICsgJyIgb25jbGljaz0iRHJpdmVHb3Zlcm5hbmNlLnNob3dF +bmdhZ2VtZW50U3RhdHMoXCdjcmVhdGVkXCcpIj5FcnN0ZWxsdDwvYnV0dG9uPicgKwogICAgICAg +ICAgICAnPGJ1dHRvbiBzdHlsZT0iJyArIGJ0blN0eWxlKCdlZGl0ZWQnLCBzb3J0KSArICciIG9u +Y2xpY2s9IkRyaXZlR292ZXJuYW5jZS5zaG93RW5nYWdlbWVudFN0YXRzKFwnZWRpdGVkXCcpIj5C +ZWFyYmVpdGV0PC9idXR0b24+JyArCiAgICAgICAgICAgICc8YnV0dG9uIHN0eWxlPSInICsgYnRu +U3R5bGUoJ3Jldmlld3MnLCBzb3J0KSArICciIG9uY2xpY2s9IkRyaXZlR292ZXJuYW5jZS5zaG93 +RW5nYWdlbWVudFN0YXRzKFwncmV2aWV3c1wnKSI+UmV2aWV3czwvYnV0dG9uPicgKwogICAgICAg +ICc8L2Rpdj4nOwoKICAgICAgICAvLyBVc2VyLVRhYmVsbGUKICAgICAgICBpZiAoc29ydGVkVXNl +cnMubGVuZ3RoID4gMCkgewogICAgICAgICAgICBodG1sICs9ICc8dGFibGUgY2xhc3M9ImRyaXZl +LXRhYmxlIiBzdHlsZT0ibWFyZ2luLWJvdHRvbToxNnB4OyI+PHRoZWFkPjx0cj4nICsKICAgICAg +ICAgICAgICAgICc8dGg+QmVudXR6ZXI8L3RoPjx0aCBzdHlsZT0idGV4dC1hbGlnbjpjZW50ZXI7 +Ij5FcnN0ZWxsdDwvdGg+PHRoIHN0eWxlPSJ0ZXh0LWFsaWduOmNlbnRlcjsiPkJlYXJiZWl0ZXQ8 +L3RoPjx0aCBzdHlsZT0idGV4dC1hbGlnbjpjZW50ZXI7Ij5SZXZpZXdzPC90aD48dGggc3R5bGU9 +InRleHQtYWxpZ246Y2VudGVyOyI+R2VzYW10PC90aD48dGg+QWt0aXZzdGUgQmVyZWljaGU8L3Ro +PicgKwogICAgICAgICAgICAnPC90cj48L3RoZWFkPjx0Ym9keT4nOwogICAgICAgICAgICBzb3J0 +ZWRVc2Vycy5mb3JFYWNoKGZ1bmN0aW9uKHUpIHsKICAgICAgICAgICAgICAgIHZhciBkID0gdVsx +XTsKICAgICAgICAgICAgICAgIHZhciB2YWxzID0gKGNhdEZpbHRlciAhPT0gJ2FsbCcgJiYgZC5r +YXRlZ29yaWVuW2NhdEZpbHRlcl0pID8gZC5rYXRlZ29yaWVuW2NhdEZpbHRlcl0gOiBkOwogICAg +ICAgICAgICAgICAgdmFyIHRvdGFsID0gdmFscy5jcmVhdGVkICsgdmFscy5lZGl0ZWQgKyB2YWxz +LnJldmlld3M7CiAgICAgICAgICAgICAgICAvLyBUb3AtS2F0ZWdvcmllbiBmw7xyIGRpZXNlbiBV +c2VyCiAgICAgICAgICAgICAgICB2YXIgdG9wQ2F0cyA9IE9iamVjdC5lbnRyaWVzKGQua2F0ZWdv +cmllbikuc29ydChmdW5jdGlvbihhLGIpewogICAgICAgICAgICAgICAgICAgIHJldHVybiAoYlsx +XS5jcmVhdGVkK2JbMV0uZWRpdGVkK2JbMV0ucmV2aWV3cykgLSAoYVsxXS5jcmVhdGVkK2FbMV0u +ZWRpdGVkK2FbMV0ucmV2aWV3cyk7CiAgICAgICAgICAgICAgICB9KS5zbGljZSgwLCAzKTsKICAg +ICAgICAgICAgICAgIHZhciBjYXRUYWdzID0gdG9wQ2F0cy5tYXAoZnVuY3Rpb24oYykgewogICAg +ICAgICAgICAgICAgICAgIHZhciBjdCA9IGNbMV0uY3JlYXRlZCArIGNbMV0uZWRpdGVkICsgY1sx +XS5yZXZpZXdzOwogICAgICAgICAgICAgICAgICAgIHJldHVybiAnPHNwYW4gY2xhc3M9ImtleXdv +cmQtdGFnIj4nICsgRHJpdmVQb3J0YWwuZXNjYXBlSFRNTChjWzBdKSArICcgKCcgKyBjdCArICcp +PC9zcGFuPic7CiAgICAgICAgICAgICAgICB9KS5qb2luKCcgJyk7CgogICAgICAgICAgICAgICAg +aHRtbCArPSAnPHRyPicgKwogICAgICAgICAgICAgICAgICAgICc8dGQ+PHN0cm9uZz4nICsgRHJp +dmVQb3J0YWwuZXNjYXBlSFRNTCh1WzBdKSArICc8L3N0cm9uZz48L3RkPicgKwogICAgICAgICAg +ICAgICAgICAgICc8dGQgc3R5bGU9InRleHQtYWxpZ246Y2VudGVyOyI+JyArIHZhbHMuY3JlYXRl +ZCArICc8L3RkPicgKwogICAgICAgICAgICAgICAgICAgICc8dGQgc3R5bGU9InRleHQtYWxpZ246 +Y2VudGVyOyI+JyArIHZhbHMuZWRpdGVkICsgJzwvdGQ+JyArCiAgICAgICAgICAgICAgICAgICAg +Jzx0ZCBzdHlsZT0idGV4dC1hbGlnbjpjZW50ZXI7Ij4nICsgdmFscy5yZXZpZXdzICsgJzwvdGQ+ +JyArCiAgICAgICAgICAgICAgICAgICAgJzx0ZCBzdHlsZT0idGV4dC1hbGlnbjpjZW50ZXI7Zm9u +dC13ZWlnaHQ6NjAwOyI+JyArIHRvdGFsICsgJzwvdGQ+JyArCiAgICAgICAgICAgICAgICAgICAg +Jzx0ZD4nICsgY2F0VGFncyArICc8L3RkPicgKwogICAgICAgICAgICAgICAgJzwvdHI+JzsKICAg +ICAgICAgICAgfSk7CiAgICAgICAgICAgIGh0bWwgKz0gJzwvdGJvZHk+PC90YWJsZT4nOwogICAg +ICAgIH0gZWxzZSB7CiAgICAgICAgICAgIGh0bWwgKz0gJzxkaXYgc3R5bGU9InBhZGRpbmc6MjBw +eDt0ZXh0LWFsaWduOmNlbnRlcjtjb2xvcjp2YXIoLS10ZXh0LW11dGVkKTsiPktlaW5lIERhdGVu +IGbDvHIgZGllc2UgQXVzd2FobC48L2Rpdj4nOwogICAgICAgIH0KCiAgICAgICAgLy8gQmFsa2Vu +ZGlhZ3JhbW0gKGtvbXBha3QpCiAgICAgICAgaWYgKHNvcnRlZFVzZXJzLmxlbmd0aCA+IDApIHsK +ICAgICAgICAgICAgdmFyIG1heFVzZXIgPSBnZXRWYWwoc29ydGVkVXNlcnNbMF0pIHx8IDE7CiAg +ICAgICAgICAgIHNvcnRlZFVzZXJzLmZvckVhY2goZnVuY3Rpb24odSkgewogICAgICAgICAgICAg +ICAgdmFyIGQgPSB1WzFdOwogICAgICAgICAgICAgICAgdmFyIHZhbHMgPSAoY2F0RmlsdGVyICE9 +PSAnYWxsJyAmJiBkLmthdGVnb3JpZW5bY2F0RmlsdGVyXSkgPyBkLmthdGVnb3JpZW5bY2F0Rmls +dGVyXSA6IGQ7CiAgICAgICAgICAgICAgICB2YXIgdG90YWwgPSB2YWxzLmNyZWF0ZWQgKyB2YWxz +LmVkaXRlZCArIHZhbHMucmV2aWV3czsKICAgICAgICAgICAgICAgIGlmICh0b3RhbCA9PT0gMCkg +cmV0dXJuOwogICAgICAgICAgICAgICAgaHRtbCArPSAnPGRpdiBjbGFzcz0ic3RhdC1iYXItcm93 +Ij48c3BhbiBjbGFzcz0ic3RhdC1iYXItbGFiZWwiPicgKyBEcml2ZVBvcnRhbC5lc2NhcGVIVE1M +KHVbMF0pICsgJzwvc3Bhbj4nICsKICAgICAgICAgICAgICAgICAgICAnPGRpdiBjbGFzcz0ic3Rh +dC1iYXIiPjxkaXYgY2xhc3M9InN0YXQtYmFyLWZpbGwiIHN0eWxlPSJ3aWR0aDonICsgKHRvdGFs +L21heFVzZXIqMTAwKSArICclO2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDkwZGVnLCMyZDlk +NzggJyArICh2YWxzLmNyZWF0ZWQvdG90YWwqMTAwKSArICclLCMzYjgyZjYgJyArICh2YWxzLmNy +ZWF0ZWQvdG90YWwqMTAwKSArICclICcgKyAoKHZhbHMuY3JlYXRlZCt2YWxzLmVkaXRlZCkvdG90 +YWwqMTAwKSArICclLCNlNjdlMjIgJyArICgodmFscy5jcmVhdGVkK3ZhbHMuZWRpdGVkKS90b3Rh +bCoxMDApICsgJyUgMTAwJSk7Ij48L2Rpdj48L2Rpdj4nICsKICAgICAgICAgICAgICAgICAgICAn +PHNwYW4gY2xhc3M9InN0YXQtYmFyLXZhbCI+JyArIHRvdGFsICsgJzwvc3Bhbj48L2Rpdj4nOwog +ICAgICAgICAgICB9KTsKICAgICAgICAgICAgaHRtbCArPSAnPGRpdiBzdHlsZT0iZm9udC1zaXpl +OjExcHg7Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCk7bWFyZ2luLXRvcDo0cHg7Ij5MZWdlbmRlOiA8 +c3BhbiBzdHlsZT0iY29sb3I6IzJkOWQ3ODsiPuKWoDwvc3Bhbj4gRXJzdGVsbHQgLyA8c3BhbiBz +dHlsZT0iY29sb3I6IzNiODJmNjsiPuKWoDwvc3Bhbj4gQmVhcmJlaXRldCAvIDxzcGFuIHN0eWxl +PSJjb2xvcjojZTY3ZTIyOyI+4pagPC9zcGFuPiBSZXZpZXdzPC9kaXY+JzsKICAgICAgICB9Cgog +ICAgICAgIC8vIC0tLSBLYXRlZ29yaWUtVmVydGVpbHVuZyArIFRvcCBTY2hsYWd3w7ZydGVyIG5l +YmVuZWluYW5kZXIgLS0tCiAgICAgICAgaHRtbCArPSAnPGRpdiBzdHlsZT0iZGlzcGxheTpncmlk +O2dyaWQtdGVtcGxhdGUtY29sdW1uczoxZnIgMWZyO2dhcDoyMHB4O21hcmdpbi10b3A6MTZweDsi +Pic7CgogICAgICAgIC8vIEthdGVnb3JpZW4KICAgICAgICBodG1sICs9ICc8ZGl2PjxoMyBzdHls +ZT0iY29sb3I6dmFyKC0tdGV4dC1oZWFkaW5nKTttYXJnaW4tYm90dG9tOjhweDsiPkRva3VtZW50 +ZSBwcm8gS2F0ZWdvcmllPC9oMz4nOwogICAgICAgIHZhciBhbGxDYXRFbnRyaWVzID0ga2F0ZWdv +cmllbi5tYXAoZnVuY3Rpb24oaykgeyByZXR1cm4gW2ssIGNhdFN0YXRzW2tdIHx8IDBdOyB9KTsK +ICAgICAgICBhbGxDYXRFbnRyaWVzLnNvcnQoZnVuY3Rpb24oYSxiKSB7IHJldHVybiBiWzFdIC0g +YVsxXSB8fCBhWzBdLmxvY2FsZUNvbXBhcmUoYlswXSwgJ2RlJyk7IH0pOwogICAgICAgIGFsbENh +dEVudHJpZXMuZm9yRWFjaChmdW5jdGlvbihjKSB7CiAgICAgICAgICAgIGh0bWwgKz0gJzxkaXYg +Y2xhc3M9InN0YXQtYmFyLXJvdyI+PHNwYW4gY2xhc3M9InN0YXQtYmFyLWxhYmVsIj4nICsgRHJp +dmVQb3J0YWwuZXNjYXBlSFRNTChjWzBdKSArICc8L3NwYW4+JyArCiAgICAgICAgICAgICAgICAn +PGRpdiBjbGFzcz0ic3RhdC1iYXIiPjxkaXYgY2xhc3M9InN0YXQtYmFyLWZpbGwiIHN0eWxlPSJ3 +aWR0aDonICsgKGNbMV0vbWF4Q2F0KjEwMCkgKyAnJTtiYWNrZ3JvdW5kOiMzYjgyZjY7Ij48L2Rp +dj48L2Rpdj4nICsKICAgICAgICAgICAgICAgICc8c3BhbiBjbGFzcz0ic3RhdC1iYXItdmFsIj4n +ICsgY1sxXSArICc8L3NwYW4+PC9kaXY+JzsKICAgICAgICB9KTsKICAgICAgICBodG1sICs9ICc8 +L2Rpdj4nOwoKICAgICAgICAvLyBUb3AgU2NobGFnd8O2cnRlcgogICAgICAgIGh0bWwgKz0gJzxk +aXY+PGgzIHN0eWxlPSJjb2xvcjp2YXIoLS10ZXh0LWhlYWRpbmcpO21hcmdpbi1ib3R0b206OHB4 +OyI+VG9wIDEwIFNjaGxhZ3fDtnJ0ZXI8L2gzPic7CiAgICAgICAgaWYgKHRvcEt3cy5sZW5ndGgg +PiAwKSB7CiAgICAgICAgICAgIHRvcEt3cy5mb3JFYWNoKGZ1bmN0aW9uKGspIHsKICAgICAgICAg +ICAgICAgIGh0bWwgKz0gJzxkaXYgY2xhc3M9InN0YXQtYmFyLXJvdyI+PHNwYW4gY2xhc3M9InN0 +YXQtYmFyLWxhYmVsIj4nICsgRHJpdmVQb3J0YWwuZXNjYXBlSFRNTChrWzBdKSArICc8L3NwYW4+ +JyArCiAgICAgICAgICAgICAgICAgICAgJzxkaXYgY2xhc3M9InN0YXQtYmFyIj48ZGl2IGNsYXNz +PSJzdGF0LWJhci1maWxsIiBzdHlsZT0id2lkdGg6JyArIChrWzFdL21heEt3KjEwMCkgKyAnJTti +YWNrZ3JvdW5kOiMyZDlkNzg7Ij48L2Rpdj48L2Rpdj4nICsKICAgICAgICAgICAgICAgICAgICAn +PHNwYW4gY2xhc3M9InN0YXQtYmFyLXZhbCI+JyArIGtbMV0gKyAnPC9zcGFuPjwvZGl2Pic7CiAg +ICAgICAgICAgIH0pOwogICAgICAgIH0gZWxzZSB7IGh0bWwgKz0gJzxkaXYgc3R5bGU9ImNvbG9y +OnZhcigtLXRleHQtbXV0ZWQpO2ZvbnQtc2l6ZToxM3B4OyI+S2VpbmUgU2NobGFnd8O2cnRlciB2 +b3JoYW5kZW4uPC9kaXY+JzsgfQogICAgICAgIGh0bWwgKz0gJzwvZGl2PjwvZGl2Pic7CgogICAg +ICAgIC8vIE1vbmF0bGljaGUgRXJzdGVsbHVuZwogICAgICAgIGlmIChtb250aHMubGVuZ3RoID4g +MCkgewogICAgICAgICAgICBodG1sICs9ICc8aDMgc3R5bGU9ImNvbG9yOnZhcigtLXRleHQtaGVh +ZGluZyk7bWFyZ2luOjE2cHggMCA4cHg7Ij5FcnN0ZWxsdW5nIHBybyBNb25hdDwvaDM+JzsKICAg +ICAgICAgICAgbW9udGhzLmZvckVhY2goZnVuY3Rpb24obSkgewogICAgICAgICAgICAgICAgaHRt +bCArPSAnPGRpdiBjbGFzcz0ic3RhdC1iYXItcm93Ij48c3BhbiBjbGFzcz0ic3RhdC1iYXItbGFi +ZWwiPicgKyBtWzBdICsgJzwvc3Bhbj4nICsKICAgICAgICAgICAgICAgICAgICAnPGRpdiBjbGFz +cz0ic3RhdC1iYXIiPjxkaXYgY2xhc3M9InN0YXQtYmFyLWZpbGwiIHN0eWxlPSJ3aWR0aDonICsg +KG1bMV0vbWF4TW9udGgqMTAwKSArICclO2JhY2tncm91bmQ6IzNhN2FhMzsiPjwvZGl2PjwvZGl2 +PicgKwogICAgICAgICAgICAgICAgICAgICc8c3BhbiBjbGFzcz0ic3RhdC1iYXItdmFsIj4nICsg +bVsxXSArICc8L3NwYW4+PC9kaXY+JzsKICAgICAgICAgICAgfSk7CiAgICAgICAgfQoKICAgICAg +ICBodG1sICs9ICc8L2Rpdj4nOwogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkb2N1 +bWVudERldGFpbCcpLmlubmVySFRNTCA9IGh0bWw7CiAgICB9LAoKICAgIC8vID09PSBTY2hsYWd3 +b3J0LVZlcndhbHR1bmcgPT09CiAgICBfa3dNYW5hZ2VDdXJyZW50OiBudWxsLAoKICAgIG9wZW5L +d01hbmFnZShrZXl3b3JkKSB7CiAgICAgICAgdGhpcy5fa3dNYW5hZ2VDdXJyZW50ID0ga2V5d29y +ZDsKICAgICAgICB2YXIgYWZmZWN0ZWREb2NzID0gRHJpdmVGUy5kb2N1bWVudHMuZmlsdGVyKGZ1 +bmN0aW9uKGQpIHsKICAgICAgICAgICAgcmV0dXJuIGQuc2NobGFnd29lcnRlciAmJiBkLnNjaGxh +Z3dvZXJ0ZXIuaW5jbHVkZXMoa2V5d29yZCk7CiAgICAgICAgfSk7CgogICAgICAgIHZhciBib2R5 +ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2t3TWFuYWdlQm9keScpOwogICAgICAgIHZhciBm +b290ZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgna3dNYW5hZ2VGb290ZXInKTsKICAgICAg +ICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgna3dNYW5hZ2VUaXRsZScpLnRleHRDb250ZW50ID0g +J1NjaGxhZ3dvcnQ6ICcgKyBrZXl3b3JkOwoKICAgICAgICB2YXIgaHRtbCA9ICcnOwogICAgICAg +IC8vIEJlYXJiZWl0dW5nc2ZlbGQKICAgICAgICBodG1sICs9ICc8ZGl2IHN0eWxlPSJtYXJnaW4t +Ym90dG9tOjE0cHg7Ij4nICsKICAgICAgICAgICAgJzxsYWJlbCBzdHlsZT0iZm9udC1zaXplOjEy +cHg7Zm9udC13ZWlnaHQ6NjAwO2NvbG9yOnZhcigtLXRleHQtc2Vjb25kYXJ5KTtkaXNwbGF5OmJs +b2NrO21hcmdpbi1ib3R0b206NHB4OyI+U2NobGFnd29ydCB1bWJlbmVubmVuPC9sYWJlbD4nICsK +ICAgICAgICAgICAgJzxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0ia3dNYW5hZ2VOZXdOYW1lIiB2YWx1 +ZT0iJyArIERyaXZlUG9ydGFsLmVzY2FwZUF0dHIoa2V5d29yZCkgKyAnIiAnICsKICAgICAgICAg +ICAgJ3N0eWxlPSJ3aWR0aDoxMDAlO3BhZGRpbmc6OHB4IDEwcHg7Ym9yZGVyOjFweCBzb2xpZCB2 +YXIoLS1ib3JkZXItY29sb3IpO2JvcmRlci1yYWRpdXM6NHB4O2ZvbnQtc2l6ZToxNHB4O2JhY2tn +cm91bmQ6dmFyKC0tYmctaW5wdXQpO2NvbG9yOnZhcigtLXRleHQtcHJpbWFyeSk7Ij4nICsKICAg +ICAgICAnPC9kaXY+JzsKCiAgICAgICAgLy8gQmV0cm9mZmVuZSBBcnRpa2VsCiAgICAgICAgaWYg +KGFmZmVjdGVkRG9jcy5sZW5ndGggPiAwKSB7CiAgICAgICAgICAgIGh0bWwgKz0gJzxkaXYgc3R5 +bGU9ImZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjYwMDtjb2xvcjp2YXIoLS10ZXh0LXNlY29u +ZGFyeSk7bWFyZ2luLWJvdHRvbTo2cHg7Ij5WZXJ3ZW5kZXQgaW4gJyArIGFmZmVjdGVkRG9jcy5s +ZW5ndGggKyAnIEFydGlrZWwnICsgKGFmZmVjdGVkRG9jcy5sZW5ndGggPiAxID8gJ24nIDogJycp +ICsgJzo8L2Rpdj4nOwogICAgICAgICAgICBodG1sICs9ICc8ZGl2IGNsYXNzPSJrdy1kb2MtbGlz +dCI+JzsKICAgICAgICAgICAgYWZmZWN0ZWREb2NzLmZvckVhY2goZnVuY3Rpb24oZG9jKSB7CiAg +ICAgICAgICAgICAgICBodG1sICs9ICc8ZGl2IGNsYXNzPSJrdy1kb2MtaXRlbSI+JyArCiAgICAg +ICAgICAgICAgICAgICAgJzxkaXY+PHNwYW4gY2xhc3M9Imt3LWRvYy10aXRsZSI+JyArIERyaXZl +UG9ydGFsLmVzY2FwZUhUTUwoZG9jLnRpdGVsKSArICc8L3NwYW4+JyArCiAgICAgICAgICAgICAg +ICAgICAgJzxkaXYgY2xhc3M9Imt3LWRvYy1rYXQiPicgKyBEcml2ZVBvcnRhbC5lc2NhcGVIVE1M +KGRvYy5rYXRlZ29yaWUpICsKICAgICAgICAgICAgICAgICAgICAoZG9jLmVyc3RlbGx0Vm9uID8g +JyDCtyB2b24gJyArIERyaXZlUG9ydGFsLmVzY2FwZUhUTUwoZG9jLmVyc3RlbGx0Vm9uKSA6ICcn +KSArCiAgICAgICAgICAgICAgICAgICAgJzwvZGl2PjwvZGl2PicgKwogICAgICAgICAgICAgICAg +JzwvZGl2Pic7CiAgICAgICAgICAgIH0pOwogICAgICAgICAgICBodG1sICs9ICc8L2Rpdj4nOwog +ICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIGh0bWwgKz0gJzxkaXYgc3R5bGU9ImZvbnQtc2l6 +ZToxM3B4O2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpO3BhZGRpbmc6MTBweCAwOyI+V2lyZCBpbiBr +ZWluZW0gQXJ0aWtlbCB2ZXJ3ZW5kZXQuPC9kaXY+JzsKICAgICAgICB9CgogICAgICAgIC8vIEVy +c2V0emVuLU9wdGlvbgogICAgICAgIHZhciBvdGhlckt3ID0gRHJpdmVFZGl0b3IuX2dldEFsbEtu +b3duS2V5d29yZHMoKS5maWx0ZXIoZnVuY3Rpb24oaykgeyByZXR1cm4gayAhPT0ga2V5d29yZDsg +fSk7CiAgICAgICAgaHRtbCArPSAnPGRpdiBzdHlsZT0ibWFyZ2luLXRvcDoxNHB4O2JvcmRlci10 +b3A6MXB4IHNvbGlkIHZhcigtLWJvcmRlci1saWdodCk7cGFkZGluZy10b3A6MTJweDsiPicgKwog +ICAgICAgICAgICAnPGxhYmVsIHN0eWxlPSJmb250LXNpemU6MTJweDtmb250LXdlaWdodDo2MDA7 +Y29sb3I6dmFyKC0tdGV4dC1zZWNvbmRhcnkpO2Rpc3BsYXk6YmxvY2s7bWFyZ2luLWJvdHRvbTo2 +cHg7Ij5FcnNldHplbiBkdXJjaDwvbGFiZWw+JyArCiAgICAgICAgICAgICc8aW5wdXQgdHlwZT0i +aGlkZGVuIiBpZD0ia3dNYW5hZ2VSZXBsYWNlIiB2YWx1ZT0iIj4nICsKICAgICAgICAgICAgJzxk +aXYgc3R5bGU9ImZvbnQtc2l6ZToxMnB4O2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpO21hcmdpbi1i +b3R0b206NnB4OyI+V8OkaGxlIGVpbiBTY2hsYWd3b3J0LCBkdXJjaCBkYXMgZGllc2VzIGJlaW0g +TMO2c2NoZW4gb2RlciBVbWJlbmVubmVuIGVyc2V0enQgd2VyZGVuIHNvbGw6PC9kaXY+JyArCiAg +ICAgICAgICAgICc8ZGl2IGlkPSJrd1JlcGxhY2VTZWxlY3RlZCIgc3R5bGU9Im1hcmdpbi1ib3R0 +b206OHB4O2Rpc3BsYXk6bm9uZTtwYWRkaW5nOjZweCAxMHB4O2JvcmRlci1yYWRpdXM6NHB4O2Jh +Y2tncm91bmQ6dmFyKC0tYmctYWN0aXZlKTtib3JkZXI6MXB4IHNvbGlkIHZhcigtLXRleHQtaGVh +ZGluZyk7Zm9udC1zaXplOjEzcHg7Y29sb3I6dmFyKC0tdGV4dC1oZWFkaW5nKTtkaXNwbGF5Om5v +bmU7Ij4nICsKICAgICAgICAgICAgICAgICc8c3BhbiBpZD0ia3dSZXBsYWNlTGFiZWwiPjwvc3Bh +bj4gPHNwYW4gc3R5bGU9ImN1cnNvcjpwb2ludGVyO21hcmdpbi1sZWZ0OjZweDtjb2xvcjp2YXIo +LS10ZXh0LW11dGVkKTsiIG9uY2xpY2s9IkRyaXZlR292ZXJuYW5jZS5fY2xlYXJLd1JlcGxhY2Uo +KSI+4pyVPC9zcGFuPicgKwogICAgICAgICAgICAnPC9kaXY+JyArCiAgICAgICAgICAgICc8ZGl2 +IGNsYXNzPSJnb3Yta3ctbGlzdCIgc3R5bGU9Im1heC1oZWlnaHQ6MTIwcHg7IiBpZD0ia3dSZXBs +YWNlT3B0aW9ucyI+JzsKICAgICAgICBvdGhlckt3LmZvckVhY2goZnVuY3Rpb24oa3cpIHsKICAg +ICAgICAgICAgaHRtbCArPSAnPHNwYW4gY2xhc3M9Imdvdi1rdy1waWxsIiBvbmNsaWNrPSJEcml2 +ZUdvdmVybmFuY2UuX3NlbGVjdEt3UmVwbGFjZShcJycgKyBEcml2ZVBvcnRhbC5lc2NhcGVBdHRy +KGt3KSArICdcJykiPicgKwogICAgICAgICAgICAgICAgRHJpdmVQb3J0YWwuZXNjYXBlSFRNTChr +dykgKyAnPC9zcGFuPic7CiAgICAgICAgfSk7CiAgICAgICAgaWYgKG90aGVyS3cubGVuZ3RoID09 +PSAwKSB7CiAgICAgICAgICAgIGh0bWwgKz0gJzxzcGFuIHN0eWxlPSJmb250LXNpemU6MTJweDtj +b2xvcjp2YXIoLS10ZXh0LW11dGVkKTsiPktlaW5lIGFuZGVyZW4gU2NobGFnd8O2cnRlciB2b3Jo +YW5kZW48L3NwYW4+JzsKICAgICAgICB9CiAgICAgICAgaHRtbCArPSAnPC9kaXY+PC9kaXY+JzsK +CiAgICAgICAgYm9keS5pbm5lckhUTUwgPSBodG1sOwoKICAgICAgICBmb290ZXIuaW5uZXJIVE1M +ID0KICAgICAgICAgICAgJzxidXR0b24gb25jbGljaz0iRHJpdmVHb3Zlcm5hbmNlLmNsb3NlS3dN +YW5hZ2UoKSI+U2NobGllw59lbjwvYnV0dG9uPicgKwogICAgICAgICAgICAnPGJ1dHRvbiBjbGFz +cz0iZGFuZ2VyIiBvbmNsaWNrPSJEcml2ZUdvdmVybmFuY2UuZGVsZXRlS2V5d29yZCgpIj5Mw7Zz +Y2hlbjwvYnV0dG9uPicgKwogICAgICAgICAgICAnPGJ1dHRvbiBjbGFzcz0icHJpbWFyeSIgb25j +bGljaz0iRHJpdmVHb3Zlcm5hbmNlLnJlbmFtZUtleXdvcmQoKSI+VW1iZW5lbm5lbjwvYnV0dG9u +Pic7CgogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdrd01hbmFnZU1vZGFsJykuY2xh +c3NMaXN0LmFkZCgnb3BlbicpOwogICAgfSwKCiAgICBjbG9zZUt3TWFuYWdlKCkgewogICAgICAg +IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdrd01hbmFnZU1vZGFsJykuY2xhc3NMaXN0LnJlbW92 +ZSgnb3BlbicpOwogICAgICAgIHRoaXMuX2t3TWFuYWdlQ3VycmVudCA9IG51bGw7CiAgICB9LAoK +ICAgIF9zZWxlY3RLd1JlcGxhY2Uoa3cpIHsKICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJ +ZCgna3dNYW5hZ2VSZXBsYWNlJykudmFsdWUgPSBrdzsKICAgICAgICB2YXIgc2VsID0gZG9jdW1l +bnQuZ2V0RWxlbWVudEJ5SWQoJ2t3UmVwbGFjZVNlbGVjdGVkJyk7CiAgICAgICAgc2VsLnN0eWxl +LmRpc3BsYXkgPSAnZmxleCc7CiAgICAgICAgc2VsLnN0eWxlLmFsaWduSXRlbXMgPSAnY2VudGVy +JzsKICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgna3dSZXBsYWNlTGFiZWwnKS50ZXh0 +Q29udGVudCA9IGt3OwogICAgICAgIC8vIEF1c2dld8OkaGx0ZSBQaWxsIGhlcnZvcmhlYmVuCiAg +ICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnI2t3UmVwbGFjZU9wdGlvbnMgLmdvdi1r +dy1waWxsJykuZm9yRWFjaChmdW5jdGlvbihlbCkgewogICAgICAgICAgICBlbC5zdHlsZS5vdXRs +aW5lID0gZWwudGV4dENvbnRlbnQudHJpbSgpID09PSBrdyA/ICcycHggc29saWQgdmFyKC0tdGV4 +dC1oZWFkaW5nKScgOiAnJzsKICAgICAgICB9KTsKICAgIH0sCgogICAgX2NsZWFyS3dSZXBsYWNl +KCkgewogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdrd01hbmFnZVJlcGxhY2UnKS52 +YWx1ZSA9ICcnOwogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdrd1JlcGxhY2VTZWxl +Y3RlZCcpLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7CiAgICAgICAgZG9jdW1lbnQucXVlcnlTZWxl +Y3RvckFsbCgnI2t3UmVwbGFjZU9wdGlvbnMgLmdvdi1rdy1waWxsJykuZm9yRWFjaChmdW5jdGlv +bihlbCkgewogICAgICAgICAgICBlbC5zdHlsZS5vdXRsaW5lID0gJyc7CiAgICAgICAgfSk7CiAg +ICB9LAoKICAgIGFzeW5jIHJlbmFtZUtleXdvcmQoKSB7CiAgICAgICAgdmFyIG9sZE5hbWUgPSB0 +aGlzLl9rd01hbmFnZUN1cnJlbnQ7CiAgICAgICAgdmFyIG5ld05hbWUgPSBkb2N1bWVudC5nZXRF +bGVtZW50QnlJZCgna3dNYW5hZ2VOZXdOYW1lJykudmFsdWUudHJpbSgpOwogICAgICAgIGlmICgh +bmV3TmFtZSB8fCBuZXdOYW1lID09PSBvbGROYW1lKSB7CiAgICAgICAgICAgIHNob3dUb2FzdCgn +Qml0dGUgZWluZW4gbmV1ZW4gTmFtZW4gZWluZ2ViZW4nLCAnd2FybmluZycpOwogICAgICAgICAg +ICByZXR1cm47CiAgICAgICAgfQoKICAgICAgICB2YXIgYWZmZWN0ZWQgPSBEcml2ZUZTLmRvY3Vt +ZW50cy5maWx0ZXIoZnVuY3Rpb24oZCkgewogICAgICAgICAgICByZXR1cm4gZC5zY2hsYWd3b2Vy +dGVyICYmIGQuc2NobGFnd29lcnRlci5pbmNsdWRlcyhvbGROYW1lKTsKICAgICAgICB9KTsKCiAg +ICAgICAgdmFyIGNvdW50ID0gMDsKICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGFmZmVjdGVk +Lmxlbmd0aDsgaSsrKSB7CiAgICAgICAgICAgIHZhciBkb2MgPSBhZmZlY3RlZFtpXTsKICAgICAg +ICAgICAgdmFyIGlkeCA9IGRvYy5zY2hsYWd3b2VydGVyLmluZGV4T2Yob2xkTmFtZSk7CiAgICAg +ICAgICAgIGlmIChpZHggPj0gMCkgewogICAgICAgICAgICAgICAgZG9jLnNjaGxhZ3dvZXJ0ZXJb +aWR4XSA9IG5ld05hbWU7CiAgICAgICAgICAgICAgICAvLyBEdXBsaWthdGUgZW50ZmVybmVuCiAg +ICAgICAgICAgICAgICBkb2Muc2NobGFnd29lcnRlciA9IFsuLi5uZXcgU2V0KGRvYy5zY2hsYWd3 +b2VydGVyKV07CiAgICAgICAgICAgICAgICB2YXIgcmVzdWx0ID0gYXdhaXQgRHJpdmVGUy5zYXZl +RG9jdW1lbnQoZG9jKTsKICAgICAgICAgICAgICAgIGlmIChyZXN1bHQgPT09IHRydWUpIGNvdW50 +Kys7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIC8vIEF1Y2ggaW4gUFJFREVGSU5F +RF9LRVlXT1JEUyBlcnNldHplbgogICAgICAgIHZhciBwcmVkSWR4ID0gRHJpdmVFZGl0b3IuUFJF +REVGSU5FRF9LRVlXT1JEUy5pbmRleE9mKG9sZE5hbWUpOwogICAgICAgIGlmIChwcmVkSWR4ID49 +IDApIERyaXZlRWRpdG9yLlBSRURFRklORURfS0VZV09SRFNbcHJlZElkeF0gPSBuZXdOYW1lOwoK +ICAgICAgICBzaG93VG9hc3QoJ1NjaGxhZ3dvcnQgdW1iZW5hbm50OiAiJyArIG9sZE5hbWUgKyAn +IiDihpIgIicgKyBuZXdOYW1lICsgJyIgKCcgKyBjb3VudCArICcgQXJ0aWtlbCknLCAnc3VjY2Vz +cycpOwogICAgICAgIHRoaXMuY2xvc2VLd01hbmFnZSgpOwogICAgICAgIHRoaXMucmVuZGVyQWRt +aW4oKTsKICAgICAgICBEcml2ZVBvcnRhbC5yZW5kZXIoKTsKICAgIH0sCgogICAgYXN5bmMgZGVs +ZXRlS2V5d29yZCgpIHsKICAgICAgICB2YXIga2V5d29yZCA9IHRoaXMuX2t3TWFuYWdlQ3VycmVu +dDsKICAgICAgICB2YXIgcmVwbGFjZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgna3dN +YW5hZ2VSZXBsYWNlJykudmFsdWUudHJpbSgpOwoKICAgICAgICB2YXIgYWZmZWN0ZWQgPSBEcml2 +ZUZTLmRvY3VtZW50cy5maWx0ZXIoZnVuY3Rpb24oZCkgewogICAgICAgICAgICByZXR1cm4gZC5z +Y2hsYWd3b2VydGVyICYmIGQuc2NobGFnd29lcnRlci5pbmNsdWRlcyhrZXl3b3JkKTsKICAgICAg +ICB9KTsKCiAgICAgICAgaWYgKGFmZmVjdGVkLmxlbmd0aCA+IDAgJiYgIWNvbmZpcm0oJ1NjaGxh +Z3dvcnQgIicgKyBrZXl3b3JkICsgJyIgYXVzICcgKyBhZmZlY3RlZC5sZW5ndGggKyAnIEFydGlr +ZWwnICsgKGFmZmVjdGVkLmxlbmd0aCA+IDEgPyAnbicgOiAnJykgKyAnIGVudGZlcm5lbj8nICsg +KHJlcGxhY2VtZW50ID8gJ1xuRXJzZXR6dCBkdXJjaDogIicgKyByZXBsYWNlbWVudCArICciJyA6 +ICcnKSkpIHsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KCiAgICAgICAgdmFyIGNvdW50 +ID0gMDsKICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGFmZmVjdGVkLmxlbmd0aDsgaSsrKSB7 +CiAgICAgICAgICAgIHZhciBkb2MgPSBhZmZlY3RlZFtpXTsKICAgICAgICAgICAgZG9jLnNjaGxh +Z3dvZXJ0ZXIgPSBkb2Muc2NobGFnd29lcnRlci5maWx0ZXIoZnVuY3Rpb24oaykgeyByZXR1cm4g +ayAhPT0ga2V5d29yZDsgfSk7CiAgICAgICAgICAgIGlmIChyZXBsYWNlbWVudCAmJiAhZG9jLnNj +aGxhZ3dvZXJ0ZXIuaW5jbHVkZXMocmVwbGFjZW1lbnQpKSB7CiAgICAgICAgICAgICAgICBkb2Mu +c2NobGFnd29lcnRlci5wdXNoKHJlcGxhY2VtZW50KTsKICAgICAgICAgICAgfQogICAgICAgICAg +ICB2YXIgcmVzdWx0ID0gYXdhaXQgRHJpdmVGUy5zYXZlRG9jdW1lbnQoZG9jKTsKICAgICAgICAg +ICAgaWYgKHJlc3VsdCA9PT0gdHJ1ZSkgY291bnQrKzsKICAgICAgICB9CgogICAgICAgIC8vIEF1 +cyBQUkVERUZJTkVEX0tFWVdPUkRTIGVudGZlcm5lbgogICAgICAgIHZhciBwcmVkSWR4ID0gRHJp +dmVFZGl0b3IuUFJFREVGSU5FRF9LRVlXT1JEUy5pbmRleE9mKGtleXdvcmQpOwogICAgICAgIGlm +IChwcmVkSWR4ID49IDApIERyaXZlRWRpdG9yLlBSRURFRklORURfS0VZV09SRFMuc3BsaWNlKHBy +ZWRJZHgsIDEpOwoKICAgICAgICBzaG93VG9hc3QoJ1NjaGxhZ3dvcnQgIicgKyBrZXl3b3JkICsg +JyIgZ2Vsw7ZzY2h0JyArIChyZXBsYWNlbWVudCA/ICcsIGVyc2V0enQgZHVyY2ggIicgKyByZXBs +YWNlbWVudCArICciJyA6ICcnKSArICcgKCcgKyBjb3VudCArICcgQXJ0aWtlbCknLCAnc3VjY2Vz +cycpOwogICAgICAgIHRoaXMuY2xvc2VLd01hbmFnZSgpOwogICAgICAgIHRoaXMucmVuZGVyQWRt +aW4oKTsKICAgICAgICBEcml2ZVBvcnRhbC5yZW5kZXIoKTsKICAgIH0sCgogICAgLy8gPT09IEFk +bWluLUFubGVpdHVuZyBmdWVyIEVpbnN0ZWlnZXIgPT09CiAgICBzaG93QWRtaW5HdWlkZSgpIHsK +ICAgICAgICB2YXIgYm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdnb3ZBZG1pbkJvZHkn +KTsKICAgICAgICBib2R5LmlubmVySFRNTCA9CiAgICAgICAgJzxkaXYgc3R5bGU9Im1heC13aWR0 +aDo4MDBweDttYXJnaW46MCBhdXRvOyI+JyArCiAgICAgICAgICAgICc8ZGl2IHN0eWxlPSJkaXNw +bGF5OmZsZXg7anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47YWxpZ24taXRlbXM6Y2VudGVy +O21hcmdpbi1ib3R0b206MTZweDsiPicgKwogICAgICAgICAgICAgICAgJzxoMiBzdHlsZT0iY29s +b3I6dmFyKC0tdGV4dC1oZWFkaW5nKTttYXJnaW46MDsiPkFkbWluLUFubGVpdHVuZzwvaDI+JyAr +CiAgICAgICAgICAgICAgICAnPGJ1dHRvbiBjbGFzcz0iZ292LWFkZC1idG4iIHN0eWxlPSJwYWRk +aW5nOjZweCAxNHB4OyIgb25jbGljaz0iRHJpdmVHb3Zlcm5hbmNlLnJlbmRlckFkbWluKCk7Ij5a +dXLDvGNrIHp1ciBWZXJ3YWx0dW5nPC9idXR0b24+JyArCiAgICAgICAgICAgICc8L2Rpdj4nICsK +CiAgICAgICAgICAgICc8ZGl2IHN0eWxlPSJiYWNrZ3JvdW5kOnZhcigtLWJnLWNhcmQpO2JvcmRl +cjoxcHggc29saWQgdmFyKC0tYm9yZGVyLWxpZ2h0KTtib3JkZXItcmFkaXVzOjhweDtwYWRkaW5n +OjE2cHggMjBweDttYXJnaW4tYm90dG9tOjE0cHg7Ij4nICsKICAgICAgICAgICAgICAgICc8aDMg +c3R5bGU9ImNvbG9yOnZhcigtLXRleHQtaGVhZGluZyk7Zm9udC1zaXplOjE1cHg7bWFyZ2luLWJv +dHRvbTo4cHg7Ij5XYXMgaXN0IGRpZXNlIERhdGVpPzwvaDM+JyArCiAgICAgICAgICAgICAgICAn +PHAgc3R5bGU9ImZvbnQtc2l6ZToxM3B4O2xpbmUtaGVpZ2h0OjEuNztjb2xvcjp2YXIoLS10ZXh0 +LXByaW1hcnkpOyI+JyArCiAgICAgICAgICAgICAgICAgICAgJ0RhcyBnZXNhbXRlIEQuUi5JLlYu +RS4gUG9ydGFsIGJlc3RlaHQgYXVzIDxzdHJvbmc+ZWluZXIgZWluemlnZW4gRGF0ZWk8L3N0cm9u +Zz46IDxjb2RlIHN0eWxlPSJiYWNrZ3JvdW5kOnZhcigtLWJnLWNhcmQtYWx0KTtwYWRkaW5nOjJw +eCA2cHg7Ym9yZGVyLXJhZGl1czozcHg7Ij5pbmRleC5odG1sPC9jb2RlPi4gJyArCiAgICAgICAg +ICAgICAgICAgICAgJ0luIGRpZXNlciBEYXRlaSBzdGVja3QgYWxsZXM6IGRhcyBBdXNzZWhlbiAo +RmFyYmVuLCBTY2hyaWZ0Z3LDtsOfZW4sIEFic3TDpG5kZSksIGRpZSBTdHJ1a3R1ciAod2FzIHdv +IGFuZ2V6ZWlndCB3aXJkKSB1bmQgZGllIExvZ2lrICh3YXMgcGFzc2llcnQgd2VubiBtYW4ga2xp +Y2t0KS4gJyArCiAgICAgICAgICAgICAgICAgICAgJ01hbiBrYW5uIHNpZSBtaXQgamVkZW0gVGV4 +dGVkaXRvciDDtmZmbmVuIOKAkyBmw7xyIHVucyBrbGFwcHQgaGllciBudXIgZGVyIG5vcm1hbGUg +V2luZG93cy1FZGl0b3IgKFdpbmRvd3MgU3VjaGU6IEVkaXRvciknICsKICAgICAgICAgICAgICAg +ICc8L3A+JyArCiAgICAgICAgICAgICc8L2Rpdj4nICsKCiAgICAgICAgICAgICc8ZGl2IHN0eWxl +PSJiYWNrZ3JvdW5kOnZhcigtLWJnLWNhcmQpO2JvcmRlcjoxcHggc29saWQgdmFyKC0tYm9yZGVy +LWxpZ2h0KTtib3JkZXItcmFkaXVzOjhweDtwYWRkaW5nOjE2cHggMjBweDttYXJnaW4tYm90dG9t +OjE0cHg7Ij4nICsKICAgICAgICAgICAgICAgICc8aDMgc3R5bGU9ImNvbG9yOnZhcigtLXRleHQt +aGVhZGluZyk7Zm9udC1zaXplOjE1cHg7bWFyZ2luLWJvdHRvbTo4cHg7Ij5BdWZiYXUgZGVyIERh +dGVpICgzIEJlcmVpY2hlKTwvaDM+JyArCiAgICAgICAgICAgICAgICAnPHAgc3R5bGU9ImZvbnQt +c2l6ZToxM3B4O2xpbmUtaGVpZ2h0OjEuNztjb2xvcjp2YXIoLS10ZXh0LXByaW1hcnkpO21hcmdp +bi1ib3R0b206MTBweDsiPicgKwogICAgICAgICAgICAgICAgICAgICdEaWUgRGF0ZWkgaGF0IGRy +ZWkgZ3Jvw59lIEFic2Nobml0dGUuIElociBlcmtlbm50IHNpZSBhbiBkZW4gS29tbWVudGFyZW4g +aW0gQ29kZTonICsKICAgICAgICAgICAgICAgICc8L3A+JyArCiAgICAgICAgICAgICAgICAnPHRh +YmxlIHN0eWxlPSJ3aWR0aDoxMDAlO2JvcmRlci1jb2xsYXBzZTpjb2xsYXBzZTtmb250LXNpemU6 +MTNweDsiPicgKwogICAgICAgICAgICAgICAgICAgICc8dHIgc3R5bGU9ImJvcmRlci1ib3R0b206 +MXB4IHNvbGlkIHZhcigtLWJvcmRlci1saWdodCk7Ij4nICsKICAgICAgICAgICAgICAgICAgICAg +ICAgJzx0ZCBzdHlsZT0icGFkZGluZzo4cHg7Zm9udC13ZWlnaHQ6NzAwO2NvbG9yOnZhcigtLXRl +eHQtaGVhZGluZyk7d2lkdGg6MTIwcHg7Ij4xLiBDU1M8L3RkPicgKwogICAgICAgICAgICAgICAg +ICAgICAgICAnPHRkIHN0eWxlPSJwYWRkaW5nOjhweDtjb2xvcjp2YXIoLS10ZXh0LXByaW1hcnkp +OyI+QWxsZXMgendpc2NoZW4gPGNvZGUgc3R5bGU9ImJhY2tncm91bmQ6dmFyKC0tYmctY2FyZC1h +bHQpO3BhZGRpbmc6MXB4IDRweDtib3JkZXItcmFkaXVzOjJweDsiPiZsdDtzdHlsZSZndDs8L2Nv +ZGU+IHVuZCA8Y29kZSBzdHlsZT0iYmFja2dyb3VuZDp2YXIoLS1iZy1jYXJkLWFsdCk7cGFkZGlu +ZzoxcHggNHB4O2JvcmRlci1yYWRpdXM6MnB4OyI+Jmx0Oy9zdHlsZSZndDs8L2NvZGU+IOKAkyBo +aWVyIHN0ZWhlbiA8c3Ryb25nPkZhcmJlbiwgU2NocmlmdGdyw7bDn2VuLCBBYnN0w6RuZGU8L3N0 +cm9uZz4uIERhcyBpc3QgZGVyIEJlcmVpY2gsIGRlbiBpaHIgYW0gaMOkdWZpZ3N0ZW4gYW5wYXNz +ZW4gd2VyZGV0LjwvdGQ+JyArCiAgICAgICAgICAgICAgICAgICAgJzwvdHI+JyArCiAgICAgICAg +ICAgICAgICAgICAgJzx0ciBzdHlsZT0iYm9yZGVyLWJvdHRvbToxcHggc29saWQgdmFyKC0tYm9y +ZGVyLWxpZ2h0KTsiPicgKwogICAgICAgICAgICAgICAgICAgICAgICAnPHRkIHN0eWxlPSJwYWRk +aW5nOjhweDtmb250LXdlaWdodDo3MDA7Y29sb3I6dmFyKC0tdGV4dC1oZWFkaW5nKTsiPjIuIEhU +TUw8L3RkPicgKwogICAgICAgICAgICAgICAgICAgICAgICAnPHRkIHN0eWxlPSJwYWRkaW5nOjhw +eDtjb2xvcjp2YXIoLS10ZXh0LXByaW1hcnkpOyI+RGVyIG1pdHRsZXJlIFRlaWwg4oCTIGhpZXIg +c3RlaHQgZGllIDxzdHJvbmc+U3RydWt0dXI8L3N0cm9uZz46IEJ1dHRvbnMsIMOcYmVyc2Nocmlm +dGVuLCBFaW5nYWJlZmVsZGVyLiBUZXh0ZSB3aWUg4oCeUHLDvGZ1bmdlbiIgb2RlciDigJ5Hb3Zl +cm5hbmNlIiBmaW5kZXQgaWhyIGhpZXIuPC90ZD4nICsKICAgICAgICAgICAgICAgICAgICAnPC90 +cj4nICsKICAgICAgICAgICAgICAgICAgICAnPHRyPicgKwogICAgICAgICAgICAgICAgICAgICAg +ICAnPHRkIHN0eWxlPSJwYWRkaW5nOjhweDtmb250LXdlaWdodDo3MDA7Y29sb3I6dmFyKC0tdGV4 +dC1oZWFkaW5nKTsiPjMuIEphdmFTY3JpcHQ8L3RkPicgKwogICAgICAgICAgICAgICAgICAgICAg +ICAnPHRkIHN0eWxlPSJwYWRkaW5nOjhweDtjb2xvcjp2YXIoLS10ZXh0LXByaW1hcnkpOyI+QWxs +ZXMgendpc2NoZW4gPGNvZGUgc3R5bGU9ImJhY2tncm91bmQ6dmFyKC0tYmctY2FyZC1hbHQpO3Bh +ZGRpbmc6MXB4IDRweDtib3JkZXItcmFkaXVzOjJweDsiPiZsdDtzY3JpcHQmZ3Q7PC9jb2RlPiB1 +bmQgPGNvZGUgc3R5bGU9ImJhY2tncm91bmQ6dmFyKC0tYmctY2FyZC1hbHQpO3BhZGRpbmc6MXB4 +IDRweDtib3JkZXItcmFkaXVzOjJweDsiPiZsdDsvc2NyaXB0Jmd0OzwvY29kZT4g4oCTIGRpZSA8 +c3Ryb25nPkxvZ2lrPC9zdHJvbmc+LiBIaWVyIHBhc3NpZXJ0IGFsbGVzLCB3YXMgYmVpIEtsaWNr +cywgU3BlaWNoZXJuIHVzdy4gYXVzZ2Vmw7xocnQgd2lyZC4gPHN0cm9uZyBzdHlsZT0iY29sb3I6 +I2RjMzU0NTsiPlZPUlNJQ0hUOiDDhG5kZXJ1bmdlbiBoaWVyIGvDtm5uZW4gZGFzIGdlc2FtdGUg +U3lzdGVtIGthcHV0dG1hY2hlbiE8L3N0cm9uZz48L3RkPicgKwogICAgICAgICAgICAgICAgICAg +ICc8L3RyPicgKwogICAgICAgICAgICAgICAgJzwvdGFibGU+JyArCiAgICAgICAgICAgICc8L2Rp +dj4nICsKCiAgICAgICAgICAgICc8ZGl2IHN0eWxlPSJiYWNrZ3JvdW5kOnZhcigtLWJnLWNhcmQp +O2JvcmRlcjoxcHggc29saWQgdmFyKC0tYm9yZGVyLWxpZ2h0KTtib3JkZXItcmFkaXVzOjhweDtw +YWRkaW5nOjE2cHggMjBweDttYXJnaW4tYm90dG9tOjE0cHg7Ij4nICsKICAgICAgICAgICAgICAg +ICc8aDMgc3R5bGU9ImNvbG9yOnZhcigtLXRleHQtaGVhZGluZyk7Zm9udC1zaXplOjE1cHg7bWFy +Z2luLWJvdHRvbTo4cHg7Ij5GYXJiZW4gw6RuZGVybiDigJMgc28gZ2VodFwnczwvaDM+JyArCiAg +ICAgICAgICAgICAgICAnPHAgc3R5bGU9ImZvbnQtc2l6ZToxM3B4O2xpbmUtaGVpZ2h0OjEuNztj +b2xvcjp2YXIoLS10ZXh0LXByaW1hcnkpO21hcmdpbi1ib3R0b206MTBweDsiPicgKwogICAgICAg +ICAgICAgICAgICAgICdHYW56IG9iZW4gaW4gZGVyIERhdGVpIChjYS4gWmVpbGUgMTYpIHN0ZWh0 +IGVpbiBCbG9jayBtaXQgPHN0cm9uZz5DU1MtVmFyaWFibGVuPC9zdHJvbmc+LiBEYXMgc2luZCBk +aWUg4oCeR3J1bmRmYXJiZW4iIGRlcyBnZXNhbXRlbiBTeXN0ZW1zLiAnICsKICAgICAgICAgICAg +ICAgICAgICAnV2VubiBpaHIgaGllciBlaW5lIEZhcmJlIMOkbmRlcnQsIMOkbmRlcnQgc2llIHNp +Y2ggPHN0cm9uZz7DvGJlcmFsbDwvc3Ryb25nPiBhdWYgZGVyIFNlaXRlOicgKwogICAgICAgICAg +ICAgICAgJzwvcD4nICsKICAgICAgICAgICAgICAgICc8cHJlIHN0eWxlPSJiYWNrZ3JvdW5kOnZh +cigtLWJnLWNhcmQtYWx0KTtib3JkZXI6MXB4IHNvbGlkIHZhcigtLWJvcmRlci1saWdodCk7Ym9y +ZGVyLXJhZGl1czo2cHg7cGFkZGluZzoxMnB4IDE2cHg7Zm9udC1zaXplOjEycHg7bGluZS1oZWln +aHQ6MS44O292ZXJmbG93LXg6YXV0bztjb2xvcjp2YXIoLS10ZXh0LXByaW1hcnkpOyI+JyArCic6 +cm9vdCB7JyArICdcXG4nICsKJyAgICAtLWJnLXByaW1hcnk6ICMxYTIzMzI7ICAgICAgPHNwYW4g +c3R5bGU9ImNvbG9yOnZhcigtLXRleHQtbXV0ZWQpOyI+LyogS29wZnplaWxlIChkdW5rbGVzIEJs +YXUpICovPC9zcGFuPicgKyAnXFxuJyArCicgICAgLS1iZy1ib2R5OiAjZjVmNWY1OyAgICAgICAg +IDxzcGFuIHN0eWxlPSJjb2xvcjp2YXIoLS10ZXh0LW11dGVkKTsiPi8qIFNlaXRlbmhpbnRlcmdy +dW5kIChoZWxsZ3JhdSkgKi88L3NwYW4+JyArICdcXG4nICsKJyAgICAtLWJnLWNhcmQ6ICNmZmZm +ZmY7ICAgICAgICAgPHNwYW4gc3R5bGU9ImNvbG9yOnZhcigtLXRleHQtbXV0ZWQpOyI+LyogS2Fy +dGVuL0JveGVuICh3ZWnDnykgKi88L3NwYW4+JyArICdcXG4nICsKJyAgICAtLXRleHQtcHJpbWFy +eTogIzMzMzsgICAgICAgPHNwYW4gc3R5bGU9ImNvbG9yOnZhcigtLXRleHQtbXV0ZWQpOyI+Lyog +Tm9ybWFsZXIgVGV4dCAoZHVua2VsZ3JhdSkgKi88L3NwYW4+JyArICdcXG4nICsKJyAgICAtLXRl +eHQtaGVhZGluZzogIzJFNEE2MjsgICAgPHNwYW4gc3R5bGU9ImNvbG9yOnZhcigtLXRleHQtbXV0 +ZWQpOyI+Lyogw5xiZXJzY2hyaWZ0ZW4gKFBvbGl6ZWktQmxhdSkgKi88L3NwYW4+JyArICdcXG4n +ICsKJyAgICAtLWJvcmRlci1jb2xvcjogI2RkZDsgICAgICAgPHNwYW4gc3R5bGU9ImNvbG9yOnZh +cigtLXRleHQtbXV0ZWQpOyI+LyogUmFobWVubGluaWVuIChoZWxsZ3JhdSkgKi88L3NwYW4+JyAr +ICdcXG4nICsKJ30nICsKICAgICAgICAgICAgICAgICc8L3ByZT4nICsKICAgICAgICAgICAgICAg +ICc8cCBzdHlsZT0iZm9udC1zaXplOjEzcHg7bGluZS1oZWlnaHQ6MS43O2NvbG9yOnZhcigtLXRl +eHQtcHJpbWFyeSk7bWFyZ2luLXRvcDoxMHB4OyI+JyArCiAgICAgICAgICAgICAgICAgICAgJzxz +dHJvbmc+QmVpc3BpZWw6PC9zdHJvbmc+IElociB3b2xsdCBkaWUgS29wZnplaWxlIHJvdCBtYWNo +ZW4/IMOEbmRlcnQgPGNvZGUgc3R5bGU9ImJhY2tncm91bmQ6dmFyKC0tYmctY2FyZC1hbHQpO3Bh +ZGRpbmc6MXB4IDRweDtib3JkZXItcmFkaXVzOjJweDsiPiMxYTIzMzI8L2NvZGU+ICcgKwogICAg +ICAgICAgICAgICAgICAgICdoaW50ZXIgPGNvZGUgc3R5bGU9ImJhY2tncm91bmQ6dmFyKC0tYmct +Y2FyZC1hbHQpO3BhZGRpbmc6MXB4IDRweDtib3JkZXItcmFkaXVzOjJweDsiPi0tYmctcHJpbWFy +eTwvY29kZT4genUgPGNvZGUgc3R5bGU9ImJhY2tncm91bmQ6dmFyKC0tYmctY2FyZC1hbHQpO3Bh +ZGRpbmc6MXB4IDRweDtib3JkZXItcmFkaXVzOjJweDsiPiNjYzAwMDA8L2NvZGU+LiBTcGVpY2hl +cm4sIFNlaXRlIG5ldSBsYWRlbiDigJMgZmVydGlnLicgKwogICAgICAgICAgICAgICAgJzwvcD4n +ICsKICAgICAgICAgICAgICAgICc8cCBzdHlsZT0iZm9udC1zaXplOjEzcHg7bGluZS1oZWlnaHQ6 +MS43O2NvbG9yOnZhcigtLXRleHQtcHJpbWFyeSk7bWFyZ2luLXRvcDo2cHg7Ij4nICsKICAgICAg +ICAgICAgICAgICAgICAnPHN0cm9uZz5UaXBwOjwvc3Ryb25nPiBGYXJiZW4gc2luZCBhbHMg4oCe +SGV4LUNvZGVzIiBhbmdlZ2ViZW4gKHouQi4gPGNvZGUgc3R5bGU9ImJhY2tncm91bmQ6dmFyKC0t +YmctY2FyZC1hbHQpO3BhZGRpbmc6MXB4IDRweDtib3JkZXItcmFkaXVzOjJweDsiPiMyRTRBNjI8 +L2NvZGU+KS4gJyArCiAgICAgICAgICAgICAgICAgICAgJ1N1Y2h0IGltIEludGVybmV0IG5hY2gg +4oCeSFRNTCBDb2xvciBQaWNrZXIiIOKAkyBkYSBrw7ZubnQgaWhyIEZhcmJlbiB2aXN1ZWxsIGF1 +c3fDpGhsZW4gdW5kIGRlbiBDb2RlIGtvcGllcmVuLicgKwogICAgICAgICAgICAgICAgJzwvcD4n +ICsKICAgICAgICAgICAgJzwvZGl2PicgKwoKICAgICAgICAgICAgJzxkaXYgc3R5bGU9ImJhY2tn +cm91bmQ6dmFyKC0tYmctY2FyZCk7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1ib3JkZXItbGlnaHQp +O2JvcmRlci1yYWRpdXM6OHB4O3BhZGRpbmc6MTZweCAyMHB4O21hcmdpbi1ib3R0b206MTRweDsi +PicgKwogICAgICAgICAgICAgICAgJzxoMyBzdHlsZT0iY29sb3I6dmFyKC0tdGV4dC1oZWFkaW5n +KTtmb250LXNpemU6MTVweDttYXJnaW4tYm90dG9tOjhweDsiPk5hY2h0LU1vZHVzIEZhcmJlbiDD +pG5kZXJuPC9oMz4nICsKICAgICAgICAgICAgICAgICc8cCBzdHlsZT0iZm9udC1zaXplOjEzcHg7 +bGluZS1oZWlnaHQ6MS43O2NvbG9yOnZhcigtLXRleHQtcHJpbWFyeSk7Ij4nICsKICAgICAgICAg +ICAgICAgICAgICAnRGlyZWt0IHVudGVyIGRlbSA8Y29kZSBzdHlsZT0iYmFja2dyb3VuZDp2YXIo +LS1iZy1jYXJkLWFsdCk7cGFkZGluZzoxcHggNHB4O2JvcmRlci1yYWRpdXM6MnB4OyI+OnJvb3Q8 +L2NvZGU+LUJsb2NrIChjYS4gWmVpbGUgNDEpIHN0ZWh0IGVpbiB6d2VpdGVyIEJsb2NrIG1pdCAn +ICsKICAgICAgICAgICAgICAgICAgICAnPGNvZGUgc3R5bGU9ImJhY2tncm91bmQ6dmFyKC0tYmct +Y2FyZC1hbHQpO3BhZGRpbmc6MXB4IDRweDtib3JkZXItcmFkaXVzOjJweDsiPltkYXRhLXRoZW1l +PSJuaWdodCJdPC9jb2RlPi4gRGFzIHNpbmQgZGllIEZhcmJlbiBmw7xyIGRlbiA8c3Ryb25nPkR1 +bmtlbG1vZHVzPC9zdHJvbmc+LiAnICsKICAgICAgICAgICAgICAgICAgICAnR2xlaWNoZSBWYXJp +YWJsZW4tTmFtZW4sIGFuZGVyZSBXZXJ0ZS4gV2VubiBpaHIgei5CLiBkZW4gSGludGVyZ3J1bmQg +aW0gRHVua2VsbW9kdXMgaGVsbGVyIHdvbGx0LCDDpG5kZXJ0IGlociAnICsKICAgICAgICAgICAg +ICAgICAgICAnPGNvZGUgc3R5bGU9ImJhY2tncm91bmQ6dmFyKC0tYmctY2FyZC1hbHQpO3BhZGRp +bmc6MXB4IDRweDtib3JkZXItcmFkaXVzOjJweDsiPi0tYmctYm9keTwvY29kZT4gZG9ydC4nICsK +ICAgICAgICAgICAgICAgICc8L3A+JyArCiAgICAgICAgICAgICc8L2Rpdj4nICsKCiAgICAgICAg +ICAgICc8ZGl2IHN0eWxlPSJiYWNrZ3JvdW5kOnZhcigtLWJnLWNhcmQpO2JvcmRlcjoxcHggc29s +aWQgdmFyKC0tYm9yZGVyLWxpZ2h0KTtib3JkZXItcmFkaXVzOjhweDtwYWRkaW5nOjE2cHggMjBw +eDttYXJnaW4tYm90dG9tOjE0cHg7Ij4nICsKICAgICAgICAgICAgICAgICc8aDMgc3R5bGU9ImNv +bG9yOnZhcigtLXRleHQtaGVhZGluZyk7Zm9udC1zaXplOjE1cHg7bWFyZ2luLWJvdHRvbTo4cHg7 +Ij5UZXh0ZSB1bmQgQmVzY2hyaWZ0dW5nZW4gw6RuZGVybjwvaDM+JyArCiAgICAgICAgICAgICAg +ICAnPHAgc3R5bGU9ImZvbnQtc2l6ZToxM3B4O2xpbmUtaGVpZ2h0OjEuNztjb2xvcjp2YXIoLS10 +ZXh0LXByaW1hcnkpO21hcmdpbi1ib3R0b206MTBweDsiPicgKwogICAgICAgICAgICAgICAgICAg +ICdOdXR6dCBkaWUgPHN0cm9uZz5TdWNoZW4tRnVua3Rpb248L3N0cm9uZz4gZXVyZXMgRWRpdG9y +cyAoU3RyZytGKSB1bmQgc3VjaHQgbmFjaCBkZW0gVGV4dCwgZGVuIGlociDDpG5kZXJuIHdvbGx0 +LiBCZWlzcGllbGU6JyArCiAgICAgICAgICAgICAgICAnPC9wPicgKwogICAgICAgICAgICAgICAg +Jzx1bCBzdHlsZT0iZm9udC1zaXplOjEzcHg7bGluZS1oZWlnaHQ6Mjtjb2xvcjp2YXIoLS10ZXh0 +LXByaW1hcnkpO3BhZGRpbmctbGVmdDoyMHB4OyI+JyArCiAgICAgICAgICAgICAgICAgICAgJzxs +aT5Lb3BmemVpbGUg4oCeRGlnaXRhbGVzIFJlc3NvdXJjZW4tIHVuZCBJbmZvcm1hdGlvbnNwb3J0 +YWwgVmVya2VociIg4oaSIHN1Y2h0IGdlbmF1IGRpZXNlbiBUZXh0PC9saT4nICsKICAgICAgICAg +ICAgICAgICAgICAnPGxpPkZvb3Rlci1UZXh0IOKAnkQuUi5JLlYuRS4gLSBQb2xpemVpIE5SVyIg +4oaSIHN1Y2h0IGRpZXNlbiBUZXh0PC9saT4nICsKICAgICAgICAgICAgICAgICAgICAnPGxpPkJ1 +dHRvbi1CZXNjaHJpZnR1bmdlbiB3aWUg4oCeQmVhcmJlaXRlbiIsIOKAnkzDtnNjaGVuIiDihpIg +c3VjaHQgZGVuIEJ1dHRvbi1UZXh0PC9saT4nICsKICAgICAgICAgICAgICAgICAgICAnPGxpPkth +dGVnb3JpZW4gd2llIOKAnlZlcmtlaHIiLCDigJ5TaWNoZXJoZWl0IiDihpIgZGllc2Ugc3RlaGVu +IGluIDxjb2RlIHN0eWxlPSJiYWNrZ3JvdW5kOnZhcigtLWJnLWNhcmQtYWx0KTtwYWRkaW5nOjFw +eCA0cHg7Ym9yZGVyLXJhZGl1czoycHg7Ij5kYXRhL2NvbmZpZy5qc29uPC9jb2RlPiAobmljaHQg +aW4gaW5kZXguaHRtbCEpPC9saT4nICsKICAgICAgICAgICAgICAgICc8L3VsPicgKwogICAgICAg +ICAgICAnPC9kaXY+JyArCgogICAgICAgICAgICAnPGRpdiBzdHlsZT0iYmFja2dyb3VuZDp2YXIo +LS1iZy1jYXJkKTtib3JkZXI6MXB4IHNvbGlkIHZhcigtLWJvcmRlci1saWdodCk7Ym9yZGVyLXJh +ZGl1czo4cHg7cGFkZGluZzoxNnB4IDIwcHg7bWFyZ2luLWJvdHRvbToxNHB4OyI+JyArCiAgICAg +ICAgICAgICAgICAnPGgzIHN0eWxlPSJjb2xvcjp2YXIoLS10ZXh0LWhlYWRpbmcpO2ZvbnQtc2l6 +ZToxNXB4O21hcmdpbi1ib3R0b206OHB4OyI+QnJvd3Nlci1FbnR3aWNrbGVydG9vbHMgbnV0emVu +IChkZXIgYmVzdGUgVHJpY2shKTwvaDM+JyArCiAgICAgICAgICAgICAgICAnPHAgc3R5bGU9ImZv +bnQtc2l6ZToxM3B4O2xpbmUtaGVpZ2h0OjEuNztjb2xvcjp2YXIoLS10ZXh0LXByaW1hcnkpO21h +cmdpbi1ib3R0b206MTBweDsiPicgKwogICAgICAgICAgICAgICAgICAgICdEcsO8Y2t0IGltIEJy +b3dzZXIgPHN0cm9uZz5GMTI8L3N0cm9uZz4gKG9kZXIgUmVjaHRza2xpY2sg4oaSIOKAnlVudGVy +c3VjaGVuIikuIEVzIMO2ZmZuZXQgc2ljaCBlaW4gV2Vya3pldWctRmVuc3Rlci4gRGFtaXQga8O2 +bm50IGlocjonICsKICAgICAgICAgICAgICAgICc8L3A+JyArCiAgICAgICAgICAgICAgICAnPG9s +IHN0eWxlPSJmb250LXNpemU6MTNweDtsaW5lLWhlaWdodDoyO2NvbG9yOnZhcigtLXRleHQtcHJp +bWFyeSk7cGFkZGluZy1sZWZ0OjIwcHg7Ij4nICsKICAgICAgICAgICAgICAgICAgICAnPGxpPk1p +dCBkZW0gPHN0cm9uZz5BdXN3YWhsLVdlcmt6ZXVnPC9zdHJvbmc+IChQZmVpbC1JY29uIG9iZW4g +bGlua3MgaW0gV2Vya3pldWcpIGF1ZiBlaW4gYmVsaWViaWdlcyBFbGVtZW50IGtsaWNrZW48L2xp +PicgKwogICAgICAgICAgICAgICAgICAgICc8bGk+SW0gcmVjaHRlbiBCZXJlaWNoIHNlaHQgaWhy +IGRpZSA8c3Ryb25nPkNTUy1FaWdlbnNjaGFmdGVuPC9zdHJvbmc+IGRpZXNlcyBFbGVtZW50czwv +bGk+JyArCiAgICAgICAgICAgICAgICAgICAgJzxsaT5JaHIga8O2bm50IEZhcmJlbiwgU2Nocmlm +dGdyw7bDn2VuIHVzdy4gPHN0cm9uZz5saXZlIMOkbmRlcm48L3N0cm9uZz4gdW5kIGRhcyBFcmdl +Ym5pcyBzb2ZvcnQgc2VoZW48L2xpPicgKwogICAgICAgICAgICAgICAgICAgICc8bGk+V2VubiBl +cyBndXQgYXVzc2llaHQ6IGRlbiBXZXJ0IG5vdGllcmVuIHVuZCBpbiBkZXIgZWNodGVuIERhdGVp +IMOkbmRlcm48L2xpPicgKwogICAgICAgICAgICAgICAgJzwvb2w+JyArCiAgICAgICAgICAgICAg +ICAnPHAgc3R5bGU9ImZvbnQtc2l6ZToxM3B4O2xpbmUtaGVpZ2h0OjEuNztjb2xvcjp2YXIoLS10 +ZXh0LXByaW1hcnkpO21hcmdpbi10b3A6NnB4OyI+JyArCiAgICAgICAgICAgICAgICAgICAgJzxz +dHJvbmc+V2ljaHRpZzo8L3N0cm9uZz4gw4RuZGVydW5nZW4gaW0gQnJvd3Nlci1XZXJremV1ZyBz +aW5kIDxlbT50ZW1wb3LDpHI8L2VtPiDigJMgbmFjaCBkZW0gTmV1bGFkZW4gc2luZCBzaWUgd2Vn +LiAnICsKICAgICAgICAgICAgICAgICAgICAnWnVtIGRhdWVyaGFmdGVuIMOEbmRlcm4gbcO8c3N0 +IGlociBkaWUgPGNvZGUgc3R5bGU9ImJhY2tncm91bmQ6dmFyKC0tYmctY2FyZC1hbHQpO3BhZGRp +bmc6MXB4IDRweDtib3JkZXItcmFkaXVzOjJweDsiPmluZGV4Lmh0bWw8L2NvZGU+IGJlYXJiZWl0 +ZW4uJyArCiAgICAgICAgICAgICAgICAnPC9wPicgKwogICAgICAgICAgICAnPC9kaXY+JyArCgog +ICAgICAgICAgICAnPGRpdiBzdHlsZT0iYmFja2dyb3VuZDp2YXIoLS1iZy1jYXJkKTtib3JkZXI6 +MXB4IHNvbGlkIHZhcigtLWJvcmRlci1saWdodCk7Ym9yZGVyLXJhZGl1czo4cHg7cGFkZGluZzox +NnB4IDIwcHg7bWFyZ2luLWJvdHRvbToxNHB4OyI+JyArCiAgICAgICAgICAgICAgICAnPGgzIHN0 +eWxlPSJjb2xvcjp2YXIoLS10ZXh0LWhlYWRpbmcpO2ZvbnQtc2l6ZToxNXB4O21hcmdpbi1ib3R0 +b206OHB4OyI+V2ljaHRpZ2UgRGF0ZWllbiBpbSDDnGJlcmJsaWNrPC9oMz4nICsKICAgICAgICAg +ICAgICAgICc8dGFibGUgc3R5bGU9IndpZHRoOjEwMCU7Ym9yZGVyLWNvbGxhcHNlOmNvbGxhcHNl +O2ZvbnQtc2l6ZToxM3B4OyI+JyArCiAgICAgICAgICAgICAgICAgICAgJzx0ciBzdHlsZT0iYm9y +ZGVyLWJvdHRvbToxcHggc29saWQgdmFyKC0tYm9yZGVyLWxpZ2h0KTsiPicgKwogICAgICAgICAg +ICAgICAgICAgICAgICAnPHRkIHN0eWxlPSJwYWRkaW5nOjhweDtmb250LXdlaWdodDo2MDA7Y29s +b3I6dmFyKC0tdGV4dC1oZWFkaW5nKTt3aWR0aDoyMDBweDsiPmluZGV4Lmh0bWw8L3RkPicgKwog +ICAgICAgICAgICAgICAgICAgICAgICAnPHRkIHN0eWxlPSJwYWRkaW5nOjhweDtjb2xvcjp2YXIo +LS10ZXh0LXByaW1hcnkpOyI+RGllIGtvbXBsZXR0ZSBBcHAg4oCTIEF1c3NlaGVuICsgTG9naWsu +IEhpZXIgw6RuZGVydCBpaHIgRmFyYmVuLCBUZXh0ZSwgTGF5b3V0LjwvdGQ+JyArCiAgICAgICAg +ICAgICAgICAgICAgJzwvdHI+JyArCiAgICAgICAgICAgICAgICAgICAgJzx0ciBzdHlsZT0iYm9y +ZGVyLWJvdHRvbToxcHggc29saWQgdmFyKC0tYm9yZGVyLWxpZ2h0KTsiPicgKwogICAgICAgICAg +ICAgICAgICAgICAgICAnPHRkIHN0eWxlPSJwYWRkaW5nOjhweDtmb250LXdlaWdodDo2MDA7Y29s +b3I6dmFyKC0tdGV4dC1oZWFkaW5nKTsiPmRhdGEvY29uZmlnLmpzb248L3RkPicgKwogICAgICAg +ICAgICAgICAgICAgICAgICAnPHRkIHN0eWxlPSJwYWRkaW5nOjhweDtjb2xvcjp2YXIoLS10ZXh0 +LXByaW1hcnkpOyI+S2F0ZWdvcmllbiB1bmQgU3RhdHVzLURlZmluaXRpb25lbi4gSGllciBzdGVo +ZW4gZGllIDI3IEZhY2hiZXJlaWNoZS48L3RkPicgKwogICAgICAgICAgICAgICAgICAgICc8L3Ry +PicgKwogICAgICAgICAgICAgICAgICAgICc8dHIgc3R5bGU9ImJvcmRlci1ib3R0b206MXB4IHNv +bGlkIHZhcigtLWJvcmRlci1saWdodCk7Ij4nICsKICAgICAgICAgICAgICAgICAgICAgICAgJzx0 +ZCBzdHlsZT0icGFkZGluZzo4cHg7Zm9udC13ZWlnaHQ6NjAwO2NvbG9yOnZhcigtLXRleHQtaGVh +ZGluZyk7Ij5kYXRhL2dvdmVybmFuY2UuanNvbjwvdGQ+JyArCiAgICAgICAgICAgICAgICAgICAg +ICAgICc8dGQgc3R5bGU9InBhZGRpbmc6OHB4O2NvbG9yOnZhcigtLXRleHQtcHJpbWFyeSk7Ij5S +b2xsZW4gKFN1cGVyVXNlciwgUmV2aWV3ZXIpLiA8c3Ryb25nPlZlcnNjaGzDvHNzZWx0PC9zdHJv +bmc+IOKAkyBudXIgw7xiZXIgZGllc2VzIFBhbmVsIGhpZXIgYmVhcmJlaXRiYXIhPC90ZD4nICsK +ICAgICAgICAgICAgICAgICAgICAnPC90cj4nICsKICAgICAgICAgICAgICAgICAgICAnPHRyIHN0 +eWxlPSJib3JkZXItYm90dG9tOjFweCBzb2xpZCB2YXIoLS1ib3JkZXItbGlnaHQpOyI+JyArCiAg +ICAgICAgICAgICAgICAgICAgICAgICc8dGQgc3R5bGU9InBhZGRpbmc6OHB4O2ZvbnQtd2VpZ2h0 +OjYwMDtjb2xvcjp2YXIoLS10ZXh0LWhlYWRpbmcpOyI+ZGF0YS9bS2F0ZWdvcmllXS8qLmpzb248 +L3RkPicgKwogICAgICAgICAgICAgICAgICAgICAgICAnPHRkIHN0eWxlPSJwYWRkaW5nOjhweDtj +b2xvcjp2YXIoLS10ZXh0LXByaW1hcnkpOyI+RGllIGVpZ2VudGxpY2hlbiBEb2t1bWVudGUuIEpl +ZGVyIEFydGlrZWwgaXN0IGVpbmUgSlNPTi1EYXRlaSBpbSBLYXRlZ29yaWUtT3JkbmVyLjwvdGQ+ +JyArCiAgICAgICAgICAgICAgICAgICAgJzwvdHI+JyArCiAgICAgICAgICAgICAgICAgICAgJzx0 +ciBzdHlsZT0iYm9yZGVyLWJvdHRvbToxcHggc29saWQgdmFyKC0tYm9yZGVyLWxpZ2h0KTsiPicg +KwogICAgICAgICAgICAgICAgICAgICAgICAnPHRkIHN0eWxlPSJwYWRkaW5nOjhweDtmb250LXdl +aWdodDo2MDA7Y29sb3I6dmFyKC0tdGV4dC1oZWFkaW5nKTsiPnNlcnZlci5wczE8L3RkPicgKwog +ICAgICAgICAgICAgICAgICAgICAgICAnPHRkIHN0eWxlPSJwYWRkaW5nOjhweDtjb2xvcjp2YXIo +LS10ZXh0LXByaW1hcnkpOyI+RGVyIFNlcnZlciAoUG93ZXJTaGVsbCkuIFN0YXJ0ZXQgYXV0b21h +dGlzY2ggw7xiZXIgRFJJVkVfU3RhcnQuYmF0LjwvdGQ+JyArCiAgICAgICAgICAgICAgICAgICAg +JzwvdHI+JyArCiAgICAgICAgICAgICAgICAgICAgJzx0cj4nICsKICAgICAgICAgICAgICAgICAg +ICAgICAgJzx0ZCBzdHlsZT0icGFkZGluZzo4cHg7Zm9udC13ZWlnaHQ6NjAwO2NvbG9yOnZhcigt +LXRleHQtaGVhZGluZyk7Ij5EUklWRV9TdGFydC5iYXQ8L3RkPicgKwogICAgICAgICAgICAgICAg +ICAgICAgICAnPHRkIHN0eWxlPSJwYWRkaW5nOjhweDtjb2xvcjp2YXIoLS10ZXh0LXByaW1hcnkp +OyI+RG9wcGVsa2xpY2sgenVtIFN0YXJ0ZW4uIMOWZmZuZXQgZGVuIFNlcnZlciB1bmQgZGVuIEJy +b3dzZXIuPC90ZD4nICsKICAgICAgICAgICAgICAgICAgICAnPC90cj4nICsKICAgICAgICAgICAg +ICAgICc8L3RhYmxlPicgKwogICAgICAgICAgICAnPC9kaXY+JyArCgogICAgICAgICAgICAnPGRp +diBzdHlsZT0iYmFja2dyb3VuZDp2YXIoLS1iZy1jYXJkKTtib3JkZXI6MXB4IHNvbGlkIHZhcigt +LWJvcmRlci1saWdodCk7Ym9yZGVyLXJhZGl1czo4cHg7cGFkZGluZzoxNnB4IDIwcHg7bWFyZ2lu +LWJvdHRvbToxNHB4OyI+JyArCiAgICAgICAgICAgICAgICAnPGgzIHN0eWxlPSJjb2xvcjp2YXIo +LS10ZXh0LWhlYWRpbmcpO2ZvbnQtc2l6ZToxNXB4O21hcmdpbi1ib3R0b206OHB4OyI+SMOkdWZp +Z2UgQW5wYXNzdW5nZW4g4oCTIFNjaHJpdHQgZsO8ciBTY2hyaXR0PC9oMz4nICsKICAgICAgICAg +ICAgICAgICc8ZGl2IHN0eWxlPSJmb250LXNpemU6MTNweDtsaW5lLWhlaWdodDoxLjc7Y29sb3I6 +dmFyKC0tdGV4dC1wcmltYXJ5KTsiPicgKwogICAgICAgICAgICAgICAgICAgICc8cCBzdHlsZT0i +Zm9udC13ZWlnaHQ6NzAwO21hcmdpbi10b3A6MTBweDtjb2xvcjp2YXIoLS10ZXh0LWhlYWRpbmcp +OyI+TG9nby9UaXRlbCBpbiBkZXIgS29wZnplaWxlIMOkbmRlcm46PC9wPicgKwogICAgICAgICAg +ICAgICAgICAgICc8cD5TdWNodCBuYWNoIOKAnkRpZ2l0YWxlcyBSZXNzb3VyY2VuLSB1bmQgSW5m +b3JtYXRpb25zcG9ydGFsIiBpbiBkZXIgaW5kZXguaHRtbC4gRGVyIFRleHQgc3RlaHQgaW0gSFRN +TC1CZXJlaWNoIGluIGVpbmVtIDxjb2RlIHN0eWxlPSJiYWNrZ3JvdW5kOnZhcigtLWJnLWNhcmQt +YWx0KTtwYWRkaW5nOjFweCA0cHg7Ym9yZGVyLXJhZGl1czoycHg7Ij4mbHQ7aGVhZGVyJmd0Ozwv +Y29kZT4tVGFnLjwvcD4nICsKCiAgICAgICAgICAgICAgICAgICAgJzxwIHN0eWxlPSJmb250LXdl +aWdodDo3MDA7bWFyZ2luLXRvcDoxMnB4O2NvbG9yOnZhcigtLXRleHQtaGVhZGluZyk7Ij5OZXVl +IEthdGVnb3JpZSBoaW56dWbDvGdlbjo8L3A+JyArCiAgICAgICAgICAgICAgICAgICAgJzxwPkdl +aHQgw7xiZXIgZGllc2VzIEdvdmVybmFuY2UtUGFuZWwgKEthdGVnb3JpZW4tU2VrdGlvbiB1bnRl +biBsaW5rcykuIEFsdGVybmF0aXY6IDxjb2RlIHN0eWxlPSJiYWNrZ3JvdW5kOnZhcigtLWJnLWNh +cmQtYWx0KTtwYWRkaW5nOjFweCA0cHg7Ym9yZGVyLXJhZGl1czoycHg7Ij5kYXRhL2NvbmZpZy5q +c29uPC9jb2RlPiDDtmZmbmVuIHVuZCBkZW4gS2F0ZWdvcmllbmFtZW4gaW4gZGllIExpc3RlIGVp +bmbDvGdlbi48L3A+JyArCgogICAgICAgICAgICAgICAgICAgICc8cCBzdHlsZT0iZm9udC13ZWln +aHQ6NzAwO21hcmdpbi10b3A6MTJweDtjb2xvcjp2YXIoLS10ZXh0LWhlYWRpbmcpOyI+U2Nocmlm +dGFydCDDpG5kZXJuOjwvcD4nICsKICAgICAgICAgICAgICAgICAgICAnPHA+U3VjaHQgbmFjaCA8 +Y29kZSBzdHlsZT0iYmFja2dyb3VuZDp2YXIoLS1iZy1jYXJkLWFsdCk7cGFkZGluZzoxcHggNHB4 +O2JvcmRlci1yYWRpdXM6MnB4OyI+Zm9udC1mYW1pbHk8L2NvZGU+IGluIGRlciBpbmRleC5odG1s +LiBEaWUgSGF1cHRzY2hyaWZ0YXJ0IHN0ZWh0IGJlaW0gPGNvZGUgc3R5bGU9ImJhY2tncm91bmQ6 +dmFyKC0tYmctY2FyZC1hbHQpO3BhZGRpbmc6MXB4IDRweDtib3JkZXItcmFkaXVzOjJweDsiPmJv +ZHk8L2NvZGU+LUVsZW1lbnQuICcgKwogICAgICAgICAgICAgICAgICAgICdEYSBkYXMgU3lzdGVt +IG9mZmxpbmUgbMOkdWZ0LCBmdW5rdGlvbmllcmVuIG51ciBTY2hyaWZ0YXJ0ZW4sIGRpZSBhdWYg +ZGVtIFJlY2huZXIgaW5zdGFsbGllcnQgc2luZCAoei5CLiBBcmlhbCwgU2Vnb2UgVUksIENhbGli +cmkpLjwvcD4nICsKCiAgICAgICAgICAgICAgICAgICAgJzxwIHN0eWxlPSJmb250LXdlaWdodDo3 +MDA7bWFyZ2luLXRvcDoxMnB4O2NvbG9yOnZhcigtLXRleHQtaGVhZGluZyk7Ij5TY2hyaWZ0Z3LD +tsOfZSDDpG5kZXJuOjwvcD4nICsKICAgICAgICAgICAgICAgICAgICAnPHA+U3VjaHQgbmFjaCA8 +Y29kZSBzdHlsZT0iYmFja2dyb3VuZDp2YXIoLS1iZy1jYXJkLWFsdCk7cGFkZGluZzoxcHggNHB4 +O2JvcmRlci1yYWRpdXM6MnB4OyI+Zm9udC1zaXplPC9jb2RlPiBpbSBDU1MtQmVyZWljaC4gV2Vy +dGUgd2llIDxjb2RlIHN0eWxlPSJiYWNrZ3JvdW5kOnZhcigtLWJnLWNhcmQtYWx0KTtwYWRkaW5n +OjFweCA0cHg7Ym9yZGVyLXJhZGl1czoycHg7Ij4xNHB4PC9jb2RlPiBvZGVyIDxjb2RlIHN0eWxl +PSJiYWNrZ3JvdW5kOnZhcigtLWJnLWNhcmQtYWx0KTtwYWRkaW5nOjFweCA0cHg7Ym9yZGVyLXJh +ZGl1czoycHg7Ij4xNnB4PC9jb2RlPiBiZXN0aW1tZW4gZGllIEdyw7bDn2UuIEdyw7bDn2VyZSBa +YWhsID0gZ3LDtsOfZXJlIFNjaHJpZnQuPC9wPicgKwoKICAgICAgICAgICAgICAgICAgICAnPHAg +c3R5bGU9ImZvbnQtd2VpZ2h0OjcwMDttYXJnaW4tdG9wOjEycHg7Y29sb3I6dmFyKC0tdGV4dC1o +ZWFkaW5nKTsiPlZvcmhhbmRlbmUgU2NobGFnd8O2cnRlciBhbnBhc3Nlbjo8L3A+JyArCiAgICAg +ICAgICAgICAgICAgICAgJzxwPlN1Y2h0IG5hY2ggPGNvZGUgc3R5bGU9ImJhY2tncm91bmQ6dmFy +KC0tYmctY2FyZC1hbHQpO3BhZGRpbmc6MXB4IDRweDtib3JkZXItcmFkaXVzOjJweDsiPlBSRURF +RklORURfS0VZV09SRFM8L2NvZGU+IGluIGRlciBpbmRleC5odG1sIChpbSBKYXZhU2NyaXB0LUJl +cmVpY2gpLiBEb3J0IHN0ZWh0IGRpZSBMaXN0ZSBkZXIgdm9yZGVmaW5pZXJ0ZW4gU2NobGFnd8O2 +cnRlci4gJyArCiAgICAgICAgICAgICAgICAgICAgJ0Jlc3RlaGVuZGUgU2NobGFnd8O2cnRlciBr +w7ZubnQgaWhyIGF1Y2ggYmVxdWVtIMO8YmVyIOKAnlNjaGxhZ3fDtnJ0ZXIgdmVyd2FsdGVuIiBv +YmVuIGluIGRpZXNlbSBQYW5lbCB1bWJlbmVubmVuIG9kZXIgbMO2c2NoZW4uPC9wPicgKwogICAg +ICAgICAgICAgICAgJzwvZGl2PicgKwogICAgICAgICAgICAnPC9kaXY+JyArCgogICAgICAgICAg +ICAnPGRpdiBzdHlsZT0iYmFja2dyb3VuZDojZmZmM2NkO2JvcmRlcjoxcHggc29saWQgI2ZmYzEw +Nztib3JkZXItcmFkaXVzOjhweDtwYWRkaW5nOjE2cHggMjBweDttYXJnaW4tYm90dG9tOjE0cHg7 +Y29sb3I6IzY2NGQwMzsiPicgKwogICAgICAgICAgICAgICAgJzxoMyBzdHlsZT0iZm9udC1zaXpl +OjE1cHg7bWFyZ2luLWJvdHRvbTo4cHg7Ij5XaWNodGlnZSBSZWdlbG48L2gzPicgKwogICAgICAg +ICAgICAgICAgJzx1bCBzdHlsZT0iZm9udC1zaXplOjEzcHg7bGluZS1oZWlnaHQ6MjtwYWRkaW5n +LWxlZnQ6MjBweDsiPicgKwogICAgICAgICAgICAgICAgICAgICc8bGk+PHN0cm9uZz5JbW1lciBl +aW5lIFNpY2hlcnVuZ3Nrb3BpZSBtYWNoZW48L3N0cm9uZz4gYmV2b3IgaWhyIGV0d2FzIMOkbmRl +cnQhIEtvcGllcnQgZGllIGluZGV4Lmh0bWwgdm9yaGVyIHouQi4gYWxzIGluZGV4X2JhY2t1cC5o +dG1sLjwvbGk+JyArCiAgICAgICAgICAgICAgICAgICAgJzxsaT48c3Ryb25nPk51ciBlaW5lIFNh +Y2hlIGF1ZiBlaW5tYWwgw6RuZGVybjwvc3Ryb25nPiwgZGFubiB0ZXN0ZW4uIFNvIGZpbmRldCBp +aHIgRmVobGVyIHNvZm9ydC48L2xpPicgKwogICAgICAgICAgICAgICAgICAgICc8bGk+PHN0cm9u +Zz5BbmbDvGhydW5nc3plaWNoZW4gdW5kIEtsYW1tZXJuPC9zdHJvbmc+IG3DvHNzZW4gaW1tZXIg +cGFhcndlaXNlIHZvcmtvbW1lbi4gRmVobHQgZWlucywgZ2VodCBkaWUgU2VpdGUga2FwdXR0Ljwv +bGk+JyArCiAgICAgICAgICAgICAgICAgICAgJzxsaT48c3Ryb25nPkZhcmItQ29kZXM8L3N0cm9u +Zz4gYmVnaW5uZW4gaW1tZXIgbWl0ICMgdW5kIGhhYmVuIDMgb2RlciA2IFplaWNoZW4gZGFoaW50 +ZXIgKHouQi4gI2ZmZiBvZGVyICMyRTRBNjIpLjwvbGk+JyArCiAgICAgICAgICAgICAgICAgICAg +JzxsaT5JbSBad2VpZmVsOiA8c3Ryb25nPkJhY2t1cCB6dXLDvGNra29waWVyZW48L3N0cm9uZz4g +dW5kIG5vY2htYWwgdm9uIHZvcm5lLjwvbGk+JyArCiAgICAgICAgICAgICAgICAnPC91bD4nICsK +ICAgICAgICAgICAgJzwvZGl2PicgKwoKICAgICAgICAgICAgJzxkaXYgc3R5bGU9ImJhY2tncm91 +bmQ6dmFyKC0tYmctY2FyZCk7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1ib3JkZXItbGlnaHQpO2Jv +cmRlci1yYWRpdXM6OHB4O3BhZGRpbmc6MTZweCAyMHB4O21hcmdpbi1ib3R0b206MTRweDsiPicg +KwogICAgICAgICAgICAgICAgJzxoMyBzdHlsZT0iY29sb3I6dmFyKC0tdGV4dC1oZWFkaW5nKTtm +b250LXNpemU6MTVweDttYXJnaW4tYm90dG9tOjhweDsiPkZlaGxlciBnZW1hY2h0PyBLZWluIFBy +b2JsZW0hPC9oMz4nICsKICAgICAgICAgICAgICAgICc8cCBzdHlsZT0iZm9udC1zaXplOjEzcHg7 +bGluZS1oZWlnaHQ6MS43O2NvbG9yOnZhcigtLXRleHQtcHJpbWFyeSk7Ij4nICsKICAgICAgICAg +ICAgICAgICAgICAnV2VubiBuYWNoIGVpbmVyIMOEbmRlcnVuZyBkaWUgU2VpdGUgbmljaHQgbWVo +ciBmdW5rdGlvbmllcnQ6JyArCiAgICAgICAgICAgICAgICAnPC9wPicgKwogICAgICAgICAgICAg +ICAgJzxvbCBzdHlsZT0iZm9udC1zaXplOjEzcHg7bGluZS1oZWlnaHQ6Mjtjb2xvcjp2YXIoLS10 +ZXh0LXByaW1hcnkpO3BhZGRpbmctbGVmdDoyMHB4OyI+JyArCiAgICAgICAgICAgICAgICAgICAg +JzxsaT5Ccm93c2VyLVRhYiBzY2hsaWXDn2VuIChkZXIgU2VydmVyIGJlZW5kZXQgc2ljaCBhdXRv +bWF0aXNjaCBuYWNoIDIwIFNla3VuZGVuKTwvbGk+JyArCiAgICAgICAgICAgICAgICAgICAgJzxs +aT5FdXJlIFNpY2hlcnVuZ3Nrb3BpZSAoei5CLiBpbmRleF9iYWNrdXAuaHRtbCkgd2llZGVyIGFs +cyA8Y29kZSBzdHlsZT0iYmFja2dyb3VuZDp2YXIoLS1iZy1jYXJkLWFsdCk7cGFkZGluZzoxcHgg +NHB4O2JvcmRlci1yYWRpdXM6MnB4OyI+aW5kZXguaHRtbDwvY29kZT4gdW1iZW5lbm5lbjwvbGk+ +JyArCiAgICAgICAgICAgICAgICAgICAgJzxsaT5EUklWRV9TdGFydC5iYXQgZG9wcGVsa2xpY2tl +biDigJMgZmVydGlnLCBhbGxlcyB3aWVkZXIgd2llIHZvcmhlcjwvbGk+JyArCiAgICAgICAgICAg +ICAgICAnPC9vbD4nICsKICAgICAgICAgICAgICAgICc8cCBzdHlsZT0iZm9udC1zaXplOjEzcHg7 +bGluZS1oZWlnaHQ6MS43O2NvbG9yOnZhcigtLXRleHQtcHJpbWFyeSk7bWFyZ2luLXRvcDo2cHg7 +Ij4nICsKICAgICAgICAgICAgICAgICAgICAnPHN0cm9uZz5FdXJlIEFydGlrZWwtRGF0ZW4gc2lu +ZCBzaWNoZXIhPC9zdHJvbmc+IERpZSBsaWVnZW4gaW0gPGNvZGUgc3R5bGU9ImJhY2tncm91bmQ6 +dmFyKC0tYmctY2FyZC1hbHQpO3BhZGRpbmc6MXB4IDRweDtib3JkZXItcmFkaXVzOjJweDsiPmRh +dGEvPC9jb2RlPi1PcmRuZXIgdW5kIHdlcmRlbiBkdXJjaCDDhG5kZXJ1bmdlbiBhbiBkZXIgaW5k +ZXguaHRtbCBuaWNodCB2ZXLDpG5kZXJ0LicgKwogICAgICAgICAgICAgICAgJzwvcD4nICsKICAg +ICAgICAgICAgJzwvZGl2PicgKwoKICAgICAgICAnPC9kaXY+JzsKICAgIH0sCgogICAgLy8gPT09 +IEltcG9ydCAvIEV4cG9ydCA9PT0KICAgIHNob3dJbXBvcnRFeHBvcnQoKSB7CiAgICAgICAgdmFy +IGJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZ292QWRtaW5Cb2R5Jyk7CiAgICAgICAg +dmFyIGRvY3MgPSBEcml2ZUZTLmRvY3VtZW50czsKICAgICAgICB2YXIga2F0ZWdvcmllbiA9IERy +aXZlRlMuY29uZmlnLmthdGVnb3JpZW4gfHwgW107CgogICAgICAgIHZhciBodG1sID0gJzxkaXYg +c3R5bGU9Im1heC13aWR0aDo4MDBweDttYXJnaW46MCBhdXRvOyI+JyArCiAgICAgICAgICAgICc8 +aDIgc3R5bGU9ImNvbG9yOnZhcigtLXRleHQtaGVhZGluZyk7bWFyZ2luLWJvdHRvbToxNnB4OyI+ +SW1wb3J0IC8gRXhwb3J0PC9oMj4nOwoKICAgICAgICAvLyA9PT0gRVhQT1JUID09PQogICAgICAg +IGh0bWwgKz0gJzxkaXYgY2xhc3M9Imdvdi1zZWN0aW9uIj4nICsKICAgICAgICAgICAgJzxkaXYg +Y2xhc3M9Imdvdi1zZWN0aW9uLXRpdGxlIj5FeHBvcnQ8L2Rpdj4nICsKICAgICAgICAgICAgJzxw +IHN0eWxlPSJmb250LXNpemU6MTJweDtjb2xvcjp2YXIoLS10ZXh0LW11dGVkKTttYXJnaW4tYm90 +dG9tOjEwcHg7Ij5Xw6RobGUgS2F0ZWdvcmllbiBvZGVyIGVpbnplbG5lIEFydGlrZWwgYXVzLiBE +aWUgTWVkaWVuLVZlcmxpbmt1bmdlbiBibGVpYmVuIGluIGRlciBFeHBvcnQtRGF0ZWkgZXJoYWx0 +ZW4uIERlbiA8Y29kZSBzdHlsZT0iYmFja2dyb3VuZDp2YXIoLS1iZy1jYXJkLWFsdCk7cGFkZGlu +ZzoxcHggNHB4O2JvcmRlci1yYWRpdXM6MnB4OyI+bWVkaWEvPC9jb2RlPi1PcmRuZXIgYml0dGUg +bWFudWVsbCBtaXRrb3BpZXJlbi48L3A+JyArCgogICAgICAgICAgICAvLyBLYXRlZ29yaWUtRmls +dGVyCiAgICAgICAgICAgICc8ZGl2IHN0eWxlPSJtYXJnaW4tYm90dG9tOjhweDsiPicgKwogICAg +ICAgICAgICAgICAgJzxsYWJlbCBzdHlsZT0iZm9udC1zaXplOjExcHg7Zm9udC13ZWlnaHQ6NjAw +O2NvbG9yOnZhcigtLXRleHQtc2Vjb25kYXJ5KTtkaXNwbGF5OmJsb2NrO21hcmdpbi1ib3R0b206 +NHB4OyI+S2F0ZWdvcmllbjwvbGFiZWw+JyArCiAgICAgICAgICAgICAgICAnPGRpdiBzdHlsZT0i +ZGlzcGxheTpmbGV4O2dhcDo0cHg7ZmxleC13cmFwOndyYXA7IiBpZD0iZXhwb3J0Q2F0RmlsdGVy +Ij4nOwogICAgICAgIGthdGVnb3JpZW4uZm9yRWFjaChmdW5jdGlvbihrYXQpIHsKICAgICAgICAg +ICAgdmFyIGNvdW50ID0gZG9jcy5maWx0ZXIoZnVuY3Rpb24oZCkgeyByZXR1cm4gZC5rYXRlZ29y +aWUgPT09IGthdDsgfSkubGVuZ3RoOwogICAgICAgICAgICBpZiAoY291bnQgPT09IDApIHJldHVy +bjsKICAgICAgICAgICAgaHRtbCArPSAnPGxhYmVsIGNsYXNzPSJnb3Yta3ctcGlsbCIgc3R5bGU9 +ImN1cnNvcjpwb2ludGVyOyI+PGlucHV0IHR5cGU9ImNoZWNrYm94IiBjbGFzcz0iZXhwb3J0LWNh +dC1jYiIgdmFsdWU9IicgKyBEcml2ZVBvcnRhbC5lc2NhcGVBdHRyKGthdCkgKyAnIiBjaGVja2Vk +IHN0eWxlPSJtYXJnaW4tcmlnaHQ6NHB4OyIgb25jaGFuZ2U9IkRyaXZlR292ZXJuYW5jZS5fZXhw +b3J0RmlsdGVyQnlDYXRlZ29yeSgpIj4gJyArIERyaXZlUG9ydGFsLmVzY2FwZUhUTUwoa2F0KSAr +ICcgPHNwYW4gY2xhc3M9Imt3LWNvdW50Ij4oJyArIGNvdW50ICsgJyk8L3NwYW4+PC9sYWJlbD4n +OwogICAgICAgIH0pOwogICAgICAgIGh0bWwgKz0gJzwvZGl2PjwvZGl2PicgKwoKICAgICAgICAg +ICAgLy8gQnV0dG9ucwogICAgICAgICAgICAnPGRpdiBzdHlsZT0ibWFyZ2luLWJvdHRvbTo4cHg7 +ZGlzcGxheTpmbGV4O2dhcDo4cHg7Ij4nICsKICAgICAgICAgICAgICAgICc8YnV0dG9uIGNsYXNz +PSJnb3YtYWRkLWJ0biIgc3R5bGU9InBhZGRpbmc6NHB4IDEycHg7Zm9udC1zaXplOjEycHg7IiBv +bmNsaWNrPSJEcml2ZUdvdmVybmFuY2UuX2V4cG9ydFNlbGVjdEFsbCh0cnVlKSI+QWxsZSBBcnRp +a2VsPC9idXR0b24+JyArCiAgICAgICAgICAgICAgICAnPGJ1dHRvbiBjbGFzcz0iZ292LWFkZC1i +dG4iIHN0eWxlPSJwYWRkaW5nOjRweCAxMnB4O2ZvbnQtc2l6ZToxMnB4OyIgb25jbGljaz0iRHJp +dmVHb3Zlcm5hbmNlLl9leHBvcnRTZWxlY3RBbGwoZmFsc2UpIj5LZWluZSBBcnRpa2VsPC9idXR0 +b24+JyArCiAgICAgICAgICAgICc8L2Rpdj4nICsKCiAgICAgICAgICAgIC8vIEFydGlrZWxsaXN0 +ZQogICAgICAgICAgICAnPGRpdiBzdHlsZT0ibWF4LWhlaWdodDoyMjBweDtvdmVyZmxvdy15OmF1 +dG87Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1ib3JkZXItbGlnaHQpO2JvcmRlci1yYWRpdXM6NHB4 +O3BhZGRpbmc6NHB4OyIgaWQ9ImV4cG9ydERvY0xpc3QiPic7CgogICAgICAgIGRvY3MuZm9yRWFj +aChmdW5jdGlvbihkb2MpIHsKICAgICAgICAgICAgdmFyIGhhc01lZGlhID0gZG9jLm1lZGlhcyAm +JiBkb2MubWVkaWFzLmxlbmd0aCA+IDA7CiAgICAgICAgICAgIGh0bWwgKz0gJzxsYWJlbCBjbGFz +cz0iZXhwb3J0LWRvYy1yb3ciIGRhdGEta2F0ZWdvcmllPSInICsgRHJpdmVQb3J0YWwuZXNjYXBl +QXR0cihkb2Mua2F0ZWdvcmllKSArICciIHN0eWxlPSJkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6 +Y2VudGVyO2dhcDo4cHg7cGFkZGluZzo2cHggOHB4O2N1cnNvcjpwb2ludGVyO2JvcmRlci1ib3R0 +b206MXB4IHNvbGlkIHZhcigtLWJvcmRlci1saWdodCk7Zm9udC1zaXplOjEzcHg7Ij4nICsKICAg +ICAgICAgICAgICAgICc8aW5wdXQgdHlwZT0iY2hlY2tib3giIGNsYXNzPSJleHBvcnQtZG9jLWNi +IiB2YWx1ZT0iJyArIERyaXZlUG9ydGFsLmVzY2FwZUF0dHIoZG9jLmlkKSArICciIGNoZWNrZWQ+ +JyArCiAgICAgICAgICAgICAgICAnPHNwYW4gc3R5bGU9ImZsZXg6MTtjb2xvcjp2YXIoLS10ZXh0 +LXByaW1hcnkpOyI+JyArIERyaXZlUG9ydGFsLmVzY2FwZUhUTUwoZG9jLnRpdGVsKSArICc8L3Nw +YW4+JyArCiAgICAgICAgICAgICAgICAnPHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMXB4O2NvbG9y +OnZhcigtLXRleHQtbXV0ZWQpOyI+JyArIERyaXZlUG9ydGFsLmVzY2FwZUhUTUwoZG9jLmthdGVn +b3JpZSkgKyAnPC9zcGFuPicgKwogICAgICAgICAgICAgICAgKGhhc01lZGlhID8gJzxzcGFuIHN0 +eWxlPSJmb250LXNpemU6MTBweDtjb2xvcjp2YXIoLS10ZXh0LWhlYWRpbmcpOyI+JyArIGRvYy5t +ZWRpYXMubGVuZ3RoICsgJyBNZWRpZW48L3NwYW4+JyA6ICcnKSArCiAgICAgICAgICAgICc8L2xh +YmVsPic7CiAgICAgICAgfSk7CgogICAgICAgIGh0bWwgKz0gJzwvZGl2PicgKwogICAgICAgICAg +ICAnPGRpdiBzdHlsZT0ibWFyZ2luLXRvcDoxMHB4O2Rpc3BsYXk6ZmxleDtnYXA6OHB4O2FsaWdu +LWl0ZW1zOmNlbnRlcjsiPicgKwogICAgICAgICAgICAgICAgJzxsYWJlbCBzdHlsZT0iZm9udC1z +aXplOjEzcHg7Y29sb3I6dmFyKC0tdGV4dC1wcmltYXJ5KTtkaXNwbGF5OmZsZXg7YWxpZ24taXRl +bXM6Y2VudGVyO2dhcDo2cHg7Y3Vyc29yOnBvaW50ZXI7IiB0aXRsZT0iTWVkaWVuLVZlcmxpbmt1 +bmdlbiBpbiBkZXIgRXhwb3J0LURhdGVpIGJlaWJlaGFsdGVuIj4nICsKICAgICAgICAgICAgICAg +ICAgICAnPGlucHV0IHR5cGU9ImNoZWNrYm94IiBpZD0iZXhwb3J0SW5jbHVkZU1lZGlhIiBjaGVj +a2VkPiBNZWRpZW4tVmVybGlua3VuZ2VuIGJlaWJlaGFsdGVuJyArCiAgICAgICAgICAgICAgICAn +PC9sYWJlbD4nICsKICAgICAgICAgICAgICAgICc8c3BhbiBzdHlsZT0iZmxleDoxOyI+PC9zcGFu +PicgKwogICAgICAgICAgICAgICAgJzxidXR0b24gY2xhc3M9Imdvdi1hZGQtYnRuIiBzdHlsZT0i +cGFkZGluZzo4cHggMjBweDsiIG9uY2xpY2s9IkRyaXZlR292ZXJuYW5jZS5fZG9FeHBvcnQoKSI+ +RXhwb3J0aWVyZW48L2J1dHRvbj4nICsKICAgICAgICAgICAgJzwvZGl2PicgKwogICAgICAgICc8 +L2Rpdj4nOwoKICAgICAgICAvLyA9PT0gSU1QT1JUID09PQogICAgICAgIGh0bWwgKz0gJzxkaXYg +Y2xhc3M9Imdvdi1zZWN0aW9uIj4nICsKICAgICAgICAgICAgJzxkaXYgY2xhc3M9Imdvdi1zZWN0 +aW9uLXRpdGxlIj5JbXBvcnQ8L2Rpdj4nICsKICAgICAgICAgICAgJzxwIHN0eWxlPSJmb250LXNp +emU6MTJweDtjb2xvcjp2YXIoLS10ZXh0LW11dGVkKTttYXJnaW4tYm90dG9tOjEwcHg7Ij5JbXBv +cnRpZXJlIGVpbmUgenV2b3IgZXhwb3J0aWVydGUgSlNPTi1EYXRlaS4gQXJ0aWtlbCB3ZXJkZW4g +YXV0b21hdGlzY2ggaW4gZGllIGVudHNwcmVjaGVuZGVuIEthdGVnb3JpZW4gZWluc29ydGllcnQu +IE5ldWUgS2F0ZWdvcmllbiB3ZXJkZW4gYmVpIEJlZGFyZiBhbmdlbGVndC48L3A+JyArCiAgICAg +ICAgICAgICc8ZGl2IHN0eWxlPSJkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2dh +cDo4cHg7Ij4nICsKICAgICAgICAgICAgICAgICc8ZGl2PicgKwogICAgICAgICAgICAgICAgICAg +ICc8bGFiZWwgc3R5bGU9ImZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjYwMDtjb2xvcjp2YXIo +LS10ZXh0LXNlY29uZGFyeSk7ZGlzcGxheTpibG9jazttYXJnaW4tYm90dG9tOjRweDsiPkV4cG9y +dC1EYXRlaSAoSlNPTik8L2xhYmVsPicgKwogICAgICAgICAgICAgICAgICAgICc8aW5wdXQgdHlw +ZT0iZmlsZSIgaWQ9ImltcG9ydEpzb25GaWxlIiBhY2NlcHQ9Ii5qc29uIiBzdHlsZT0iZm9udC1z +aXplOjEzcHg7Y29sb3I6dmFyKC0tdGV4dC1wcmltYXJ5KTsiPicgKwogICAgICAgICAgICAgICAg +JzwvZGl2PicgKwogICAgICAgICAgICAgICAgJzxwIHN0eWxlPSJmb250LXNpemU6MTFweDtjb2xv +cjp2YXIoLS10ZXh0LW11dGVkKTtsaW5lLWhlaWdodDoxLjU7bWFyZ2luLXRvcDo0cHg7Ij5GYWxs +cyBkaWUgRXhwb3J0LURhdGVpIE1lZGllbi1WZXJsaW5rdW5nZW4gZW50aMOkbHQsIGtvcGllcmUg +ZGVuIDxjb2RlIHN0eWxlPSJiYWNrZ3JvdW5kOnZhcigtLWJnLWNhcmQtYWx0KTtwYWRkaW5nOjFw +eCA0cHg7Ym9yZGVyLXJhZGl1czoycHg7Ij5tZWRpYS88L2NvZGU+LU9yZG5lciBkZXIgUXVlbGxl +IGluIGRhcyBaaWVsdmVyemVpY2huaXMsIGRhbWl0IGRpZSBBbmjDpG5nZSB2ZXJmw7xnYmFyIHNp +bmQuPC9wPicgKwogICAgICAgICAgICAgICAgJzxkaXYgc3R5bGU9Im1hcmdpbi10b3A6NnB4OyI+ +JyArCiAgICAgICAgICAgICAgICAgICAgJzxidXR0b24gY2xhc3M9Imdvdi1hZGQtYnRuIiBzdHls +ZT0icGFkZGluZzo4cHggMjBweDsiIG9uY2xpY2s9IkRyaXZlR292ZXJuYW5jZS5fZG9JbXBvcnQo +KSI+SW1wb3J0aWVyZW48L2J1dHRvbj4nICsKICAgICAgICAgICAgICAgICc8L2Rpdj4nICsKICAg +ICAgICAgICAgJzwvZGl2PicgKwogICAgICAgICc8L2Rpdj4nOwoKICAgICAgICBodG1sICs9ICc8 +L2Rpdj4nOwogICAgICAgIGJvZHkuaW5uZXJIVE1MID0gaHRtbDsKICAgIH0sCgogICAgX2V4cG9y +dFNlbGVjdEFsbChjaGVja2VkKSB7CiAgICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgn +LmV4cG9ydC1kb2MtY2I6bm90KDpkaXNhYmxlZCknKS5mb3JFYWNoKGZ1bmN0aW9uKGNiKSB7IGNi +LmNoZWNrZWQgPSBjaGVja2VkOyB9KTsKICAgIH0sCgogICAgX2V4cG9ydEZpbHRlckJ5Q2F0ZWdv +cnkoKSB7CiAgICAgICAgdmFyIHNlbGVjdGVkQ2F0cyA9IFtdOwogICAgICAgIGRvY3VtZW50LnF1 +ZXJ5U2VsZWN0b3JBbGwoJy5leHBvcnQtY2F0LWNiOmNoZWNrZWQnKS5mb3JFYWNoKGZ1bmN0aW9u +KGNiKSB7IHNlbGVjdGVkQ2F0cy5wdXNoKGNiLnZhbHVlKTsgfSk7CiAgICAgICAgZG9jdW1lbnQu +cXVlcnlTZWxlY3RvckFsbCgnLmV4cG9ydC1kb2Mtcm93JykuZm9yRWFjaChmdW5jdGlvbihyb3cp +IHsKICAgICAgICAgICAgdmFyIGthdCA9IHJvdy5nZXRBdHRyaWJ1dGUoJ2RhdGEta2F0ZWdvcmll +Jyk7CiAgICAgICAgICAgIHZhciBjYiA9IHJvdy5xdWVyeVNlbGVjdG9yKCcuZXhwb3J0LWRvYy1j +YicpOwogICAgICAgICAgICBpZiAoc2VsZWN0ZWRDYXRzLmluY2x1ZGVzKGthdCkpIHsKICAgICAg +ICAgICAgICAgIHJvdy5zdHlsZS5kaXNwbGF5ID0gJyc7CiAgICAgICAgICAgICAgICBjYi5kaXNh +YmxlZCA9IGZhbHNlOwogICAgICAgICAgICAgICAgY2IuY2hlY2tlZCA9IHRydWU7CiAgICAgICAg +ICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICByb3cuc3R5bGUuZGlzcGxheSA9ICdub25lJzsK +ICAgICAgICAgICAgICAgIGNiLmRpc2FibGVkID0gdHJ1ZTsKICAgICAgICAgICAgICAgIGNiLmNo +ZWNrZWQgPSBmYWxzZTsKICAgICAgICAgICAgfQogICAgICAgIH0pOwogICAgfSwKCiAgICBhc3lu +YyBfZG9FeHBvcnQoKSB7CiAgICAgICAgdmFyIHNlbGVjdGVkSWRzID0gW107CiAgICAgICAgZG9j +dW1lbnQucXVlcnlTZWxlY3RvckFsbCgnLmV4cG9ydC1kb2MtY2I6Y2hlY2tlZCcpLmZvckVhY2go +ZnVuY3Rpb24oY2IpIHsgc2VsZWN0ZWRJZHMucHVzaChjYi52YWx1ZSk7IH0pOwogICAgICAgIGlm +IChzZWxlY3RlZElkcy5sZW5ndGggPT09IDApIHsgc2hvd1RvYXN0KCdCaXR0ZSBtaW5kZXN0ZW5z +IGVpbmVuIEFydGlrZWwgYXVzd8OkaGxlbicsICd3YXJuaW5nJyk7IHJldHVybjsgfQoKICAgICAg +ICB2YXIgaW5jbHVkZU1lZGlhID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4cG9ydEluY2x1 +ZGVNZWRpYScpLmNoZWNrZWQ7CiAgICAgICAgdmFyIGV4cG9ydERvY3MgPSBEcml2ZUZTLmRvY3Vt +ZW50cy5maWx0ZXIoZnVuY3Rpb24oZCkgeyByZXR1cm4gc2VsZWN0ZWRJZHMuaW5jbHVkZXMoZC5p +ZCk7IH0pOwoKICAgICAgICAvLyBBcnRpa2VsIGJlcmVpbmlnZW4KICAgICAgICB2YXIgY2xlYW5E +b2NzID0gZXhwb3J0RG9jcy5tYXAoZnVuY3Rpb24oZG9jKSB7CiAgICAgICAgICAgIHZhciBjb3B5 +ID0ge307CiAgICAgICAgICAgIGZvciAodmFyIGsgaW4gZG9jKSB7IGlmIChrLmNoYXJBdCgwKSAh +PT0gJ18nKSBjb3B5W2tdID0gZG9jW2tdOyB9CiAgICAgICAgICAgIHJldHVybiBjb3B5OwogICAg +ICAgIH0pOwoKICAgICAgICAvLyBNZWRpZW4tUGZhZGUgc2FtbWVsbiAoZnVlciBIaW53ZWlzKQog +ICAgICAgIHZhciBtZWRpYVBhdGhzID0gW107CiAgICAgICAgaWYgKGluY2x1ZGVNZWRpYSkgewog +ICAgICAgICAgICBjbGVhbkRvY3MuZm9yRWFjaChmdW5jdGlvbihkb2MpIHsKICAgICAgICAgICAg +ICAgIGlmIChkb2MubWVkaWFzKSBkb2MubWVkaWFzLmZvckVhY2goZnVuY3Rpb24obSkgewogICAg +ICAgICAgICAgICAgICAgIGlmIChtLnVybCkgbWVkaWFQYXRocy5wdXNoKG0udXJsKTsKICAgICAg +ICAgICAgICAgIH0pOwogICAgICAgICAgICB9KTsKICAgICAgICB9CgogICAgICAgIHZhciBleHBv +cnREYXRhID0gewogICAgICAgICAgICBleHBvcnRWZXJzaW9uOiAnMS4wJywKICAgICAgICAgICAg +ZXhwb3J0RGF0ZTogbmV3IERhdGUoKS50b0lTT1N0cmluZygpLAogICAgICAgICAgICBleHBvcnRl +ZEJ5OiAoRHJpdmVGUy5lbnZpcm9uICYmIERyaXZlRlMuZW52aXJvbi51c2VybmFtZSkgfHwgJ1Vu +YmVrYW5udCcsCiAgICAgICAgICAgIGFydGljbGVDb3VudDogY2xlYW5Eb2NzLmxlbmd0aCwKICAg +ICAgICAgICAgYXJ0aWNsZXM6IGNsZWFuRG9jcywKICAgICAgICAgICAgbWVkaWFQYXRoczogbWVk +aWFQYXRocy5sZW5ndGggPiAwID8gbWVkaWFQYXRocyA6IHVuZGVmaW5lZAogICAgICAgIH07Cgog +ICAgICAgIC8vIEpTT04gaGVydW50ZXJsYWRlbgogICAgICAgIHZhciBqc29uU3RyID0gSlNPTi5z +dHJpbmdpZnkoZXhwb3J0RGF0YSwgbnVsbCwgMik7CiAgICAgICAgdmFyIGpzb25CbG9iID0gbmV3 +IEJsb2IoW2pzb25TdHJdLCB7IHR5cGU6ICdhcHBsaWNhdGlvbi9qc29uJyB9KTsKICAgICAgICB2 +YXIganNvblVybCA9IFVSTC5jcmVhdGVPYmplY3RVUkwoanNvbkJsb2IpOwogICAgICAgIHZhciBh +ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYScpOwogICAgICAgIGEuaHJlZiA9IGpzb25Vcmw7 +CiAgICAgICAgYS5kb3dubG9hZCA9ICdEUklWRV9FeHBvcnRfJyArIG5ldyBEYXRlKCkudG9JU09T +dHJpbmcoKS5zcGxpdCgnVCcpWzBdICsgJy5qc29uJzsKICAgICAgICBhLmNsaWNrKCk7CiAgICAg +ICAgVVJMLnJldm9rZU9iamVjdFVSTChqc29uVXJsKTsKCiAgICAgICAgdmFyIG1zZyA9IGNsZWFu +RG9jcy5sZW5ndGggKyAnIEFydGlrZWwgZXhwb3J0aWVydCc7CiAgICAgICAgaWYgKG1lZGlhUGF0 +aHMubGVuZ3RoID4gMCkgewogICAgICAgICAgICBtc2cgKz0gJyAoJyArIG1lZGlhUGF0aHMubGVu +Z3RoICsgJyBNZWRpZW4tVmVybGlua3VuZ2VuIGVudGhhbHRlbiknOwogICAgICAgICAgICBzaG93 +VG9hc3QobXNnLCAnc3VjY2VzcycsIDQwMDApOwogICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0 +aW9uKCkgewogICAgICAgICAgICAgICAgc2hvd1RvYXN0KCdCaXR0ZSBrb3BpZXJlIGRlbiBtZWRp +YS8tT3JkbmVyIG1hbnVlbGwgenVtIFppZWwsIGRhbWl0IGRpZSBBbmjDpG5nZSB2ZXJmw7xnYmFy +IGJsZWliZW4uJywgJ2luZm8nLCA2MDAwKTsKICAgICAgICAgICAgfSwgMTUwMCk7CiAgICAgICAg +fSBlbHNlIHsKICAgICAgICAgICAgc2hvd1RvYXN0KG1zZywgJ3N1Y2Nlc3MnKTsKICAgICAgICB9 +CiAgICB9LAoKICAgIGFzeW5jIF9kb0ltcG9ydCgpIHsKICAgICAgICB2YXIganNvbklucHV0ID0g +ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2ltcG9ydEpzb25GaWxlJyk7CiAgICAgICAgaWYgKCFq +c29uSW5wdXQuZmlsZXMgfHwganNvbklucHV0LmZpbGVzLmxlbmd0aCA9PT0gMCkgewogICAgICAg +ICAgICBzaG93VG9hc3QoJ0JpdHRlIGVpbmUgSlNPTi1EYXRlaSBhdXN3w6RobGVuJywgJ3dhcm5p +bmcnKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KCiAgICAgICAgdHJ5IHsKICAgICAg +ICAgICAgc2hvd1RvYXN0KCdJbXBvcnQgd2lyZCB2ZXJhcmJlaXRldC4uLicsICdpbmZvJywgMzAw +MCk7CiAgICAgICAgICAgIHZhciBqc29uVGV4dCA9IGF3YWl0IGpzb25JbnB1dC5maWxlc1swXS50 +ZXh0KCk7CiAgICAgICAgICAgIHZhciBpbXBvcnREYXRhID0gSlNPTi5wYXJzZShqc29uVGV4dCk7 +CgogICAgICAgICAgICBpZiAoIWltcG9ydERhdGEuYXJ0aWNsZXMgfHwgIUFycmF5LmlzQXJyYXko +aW1wb3J0RGF0YS5hcnRpY2xlcykpIHsKICAgICAgICAgICAgICAgIHNob3dUb2FzdCgnVW5nw7xs +dGlnZXMgRXhwb3J0Zm9ybWF0OiBLZWluIGFydGljbGVzLUFycmF5IGdlZnVuZGVuJywgJ2Vycm9y +Jyk7CiAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIHZh +ciBhcnRpY2xlcyA9IGltcG9ydERhdGEuYXJ0aWNsZXM7CiAgICAgICAgICAgIHZhciBpbXBvcnRl +ZCA9IDA7CiAgICAgICAgICAgIHZhciBza2lwcGVkID0gMDsKICAgICAgICAgICAgdmFyIGhhc01l +ZGlhID0gISEoaW1wb3J0RGF0YS5tZWRpYVBhdGhzICYmIGltcG9ydERhdGEubWVkaWFQYXRocy5s +ZW5ndGggPiAwKTsKICAgICAgICAgICAgdmFyIGthdGVnb3JpZW4gPSBEcml2ZUZTLmNvbmZpZy5r +YXRlZ29yaWVuIHx8IFtdOwoKICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBhcnRpY2xl +cy5sZW5ndGg7IGkrKykgewogICAgICAgICAgICAgICAgdmFyIGRvYyA9IGFydGljbGVzW2ldOwog +ICAgICAgICAgICAgICAgaWYgKCFkb2MuaWQgfHwgIWRvYy50aXRlbCB8fCAhZG9jLmthdGVnb3Jp +ZSkgeyBza2lwcGVkKys7IGNvbnRpbnVlOyB9CgogICAgICAgICAgICAgICAgLy8gS2F0ZWdvcmll +IGdnZi4gYW5sZWdlbgogICAgICAgICAgICAgICAgaWYgKCFrYXRlZ29yaWVuLmluY2x1ZGVzKGRv +Yy5rYXRlZ29yaWUpKSB7CiAgICAgICAgICAgICAgICAgICAga2F0ZWdvcmllbi5wdXNoKGRvYy5r +YXRlZ29yaWUpOwogICAgICAgICAgICAgICAgICAgIERyaXZlRlMuY29uZmlnLmthdGVnb3JpZW4g +PSBrYXRlZ29yaWVuOwogICAgICAgICAgICAgICAgICAgIERyaXZlRlMuc29ydEthdGVnb3JpZW4o +KTsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAvLyBEb2t1bWVudCBzcGVpY2hl +cm4gKMO8YmVyc2NocmVpYmVuIG9kZXIgbmV1KQogICAgICAgICAgICAgICAgdmFyIGV4aXN0aW5n +ID0gRHJpdmVGUy5kb2N1bWVudHMuZmluZChmdW5jdGlvbihkKSB7IHJldHVybiBkLmlkID09PSBk +b2MuaWQ7IH0pOwogICAgICAgICAgICAgICAgaWYgKGV4aXN0aW5nKSB7CiAgICAgICAgICAgICAg +ICAgICAgT2JqZWN0LmFzc2lnbihleGlzdGluZywgZG9jKTsKICAgICAgICAgICAgICAgICAgICBh +d2FpdCBEcml2ZUZTLnNhdmVEb2N1bWVudChleGlzdGluZyk7CiAgICAgICAgICAgICAgICB9IGVs +c2UgewogICAgICAgICAgICAgICAgICAgIERyaXZlRlMuZG9jdW1lbnRzLnB1c2goZG9jKTsKICAg +ICAgICAgICAgICAgICAgICBhd2FpdCBEcml2ZUZTLnNhdmVEb2N1bWVudChkb2MpOwogICAgICAg +ICAgICAgICAgfQogICAgICAgICAgICAgICAgaW1wb3J0ZWQrKzsKICAgICAgICAgICAgfQoKICAg +ICAgICAgICAgLy8gQ29uZmlnIHNwZWljaGVybiAobmV1ZSBLYXRlZ29yaWVuKQogICAgICAgICAg +ICBpZiAoRHJpdmVGUy5tb2RlID09PSAnc2VydmVyJykgewogICAgICAgICAgICAgICAgYXdhaXQg +ZmV0Y2goJy9hcGkvd3JpdGUnLCB7CiAgICAgICAgICAgICAgICAgICAgbWV0aG9kOiAnUE9TVCcs +CiAgICAgICAgICAgICAgICAgICAgaGVhZGVyczogeyAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0 +aW9uL2pzb247IGNoYXJzZXQ9dXRmLTgnIH0sCiAgICAgICAgICAgICAgICAgICAgYm9keTogSlNP +Ti5zdHJpbmdpZnkoeyBwYXRoOiAnZGF0YS9jb25maWcuanNvbicsIGRhdGE6IERyaXZlRlMuY29u +ZmlnIH0pCiAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgYXdh +aXQgRHJpdmVGUy51cGRhdGVJbmRleCgpOwogICAgICAgICAgICBEcml2ZVBvcnRhbC5yZW5kZXIo +KTsKICAgICAgICAgICAgdGhpcy51cGRhdGVVSSgpOwoKICAgICAgICAgICAgdmFyIGltcG9ydE1z +ZyA9IGltcG9ydGVkICsgJyBBcnRpa2VsIGltcG9ydGllcnQnICsgKHNraXBwZWQgPiAwID8gJywg +JyArIHNraXBwZWQgKyAnIMO8YmVyc3BydW5nZW4nIDogJycpOwogICAgICAgICAgICBzaG93VG9h +c3QoaW1wb3J0TXNnLCAnc3VjY2VzcycpOwogICAgICAgICAgICBpZiAoaGFzTWVkaWEpIHsKICAg +ICAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgICAgICAg +c2hvd1RvYXN0KCdEaWUgaW1wb3J0aWVydGVuIEFydGlrZWwgZW50aGFsdGVuIE1lZGllbi1WZXJs +aW5rdW5nZW4uIEJpdHRlIHN0ZWxsZSBzaWNoZXIsIGRhc3MgZGVyIG1lZGlhLy1PcmRuZXIga29w +aWVydCB3dXJkZS4nLCAnaW5mbycsIDYwMDApOwogICAgICAgICAgICAgICAgfSwgMTUwMCk7CiAg +ICAgICAgICAgIH0KICAgICAgICB9IGNhdGNoKGUpIHsKICAgICAgICAgICAgc2hvd1RvYXN0KCdJ +bXBvcnQgZmVobGdlc2NobGFnZW46ICcgKyBlLm1lc3NhZ2UsICdlcnJvcicsIDUwMDApOwogICAg +ICAgIH0KICAgIH0sCgogICAgYXN5bmMgc2F2ZVNldHRpbmdzKCkgewogICAgICAgIGlmICghdGhp +cy5kYXRhKSByZXR1cm47CiAgICAgICAgY29uc3QgcHJldlNldHRpbmdzID0geyAuLi50aGlzLmRh +dGEuc2V0dGluZ3MgfTsKICAgICAgICB0aGlzLmRhdGEuc2V0dGluZ3MucmVxdWlyZUFwcHJvdmFs +Rm9yTmV3ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2dvdlJlcU5ldycpLmNoZWNrZWQ7CiAg +ICAgICAgdGhpcy5kYXRhLnNldHRpbmdzLnJlcXVpcmVBcHByb3ZhbEZvckVkaXQgPSBkb2N1bWVu +dC5nZXRFbGVtZW50QnlJZCgnZ292UmVxRWRpdCcpLmNoZWNrZWQ7CiAgICAgICAgdmFyIGVsOwog +ICAgICAgIGVsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2dvdlNob3dDb250cmliJyk7IGlm +IChlbCkgdGhpcy5kYXRhLnNldHRpbmdzLnNob3dDb250cmlidXRvcnMgPSBlbC5jaGVja2VkOwog +ICAgICAgIGVsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2dvdlNob3dSZXZpZXdIaXN0Jyk7 +IGlmIChlbCkgdGhpcy5kYXRhLnNldHRpbmdzLnNob3dSZXZpZXdIaXN0b3J5ID0gZWwuY2hlY2tl +ZDsKICAgICAgICBlbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdnb3ZLZXl3b3JkTW9kZScp +OyBpZiAoZWwpIHsKICAgICAgICAgICAgdGhpcy5kYXRhLnNldHRpbmdzLmtleXdvcmRNb2RlID0g +ZWwudmFsdWU7CiAgICAgICAgICAgIHRoaXMuZGF0YS5zZXR0aW5ncy5rZXl3b3Jkc1JlcXVpcmVk +ID0gKGVsLnZhbHVlID09PSAncmVxdWlyZWQnKTsKICAgICAgICB9CiAgICAgICAgZWwgPSBkb2N1 +bWVudC5nZXRFbGVtZW50QnlJZCgnZ292UmVqZWN0aW9uTW9kZScpOyBpZiAoZWwpIHsKICAgICAg +ICAgICAgdGhpcy5kYXRhLnNldHRpbmdzLnJlamVjdGlvblJlYXNvbk1vZGUgPSBlbC52YWx1ZTsK +ICAgICAgICB9CiAgICAgICAgZWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZ292Q3Jvc3Ns +aW5rTW9kZScpOyBpZiAoZWwpIHsKICAgICAgICAgICAgdGhpcy5kYXRhLnNldHRpbmdzLmNyb3Nz +bGlua01vZGUgPSBlbC52YWx1ZTsKICAgICAgICB9CiAgICAgICAgY29uc3Qgb2sgPSBhd2FpdCB0 +aGlzLnNhdmVHb3Zlcm5hbmNlKCk7CiAgICAgICAgaWYgKG9rID09PSBmYWxzZSkgewogICAgICAg +ICAgICB0aGlzLmRhdGEuc2V0dGluZ3MgPSBwcmV2U2V0dGluZ3M7CiAgICAgICAgICAgIHRoaXMu +cmVuZGVyQWRtaW4oKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgICAgICB0aGlz +LnJlbmRlckFkbWluKCk7CiAgICAgICAgc2hvd1RvYXN0KCdFaW5zdGVsbHVuZ2VuIGdlc3BlaWNo +ZXJ0JywgJ3N1Y2Nlc3MnKTsKICAgIH0sCgogICAgYXN5bmMgc2F2ZUdvdmVybmFuY2UoKSB7CiAg +ICAgICAgdHJ5IHsKICAgICAgICAgICAgaWYgKERyaXZlRlMubW9kZSA9PT0gJ3NlcnZlcicpIHsK +ICAgICAgICAgICAgICAgIGNvbnN0IHJlcyA9IGF3YWl0IGZldGNoKCcvYXBpL2dvdmVybmFuY2Un +LCB7CiAgICAgICAgICAgICAgICAgICAgbWV0aG9kOiAnUE9TVCcsCiAgICAgICAgICAgICAgICAg +ICAgaGVhZGVyczogeyAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb247IGNoYXJzZXQ9 +dXRmLTgnIH0sCiAgICAgICAgICAgICAgICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkodGhpcy5k +YXRhKQogICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICBjb25zdCByZXN1bHQgPSBh +d2FpdCByZXMuanNvbigpOwogICAgICAgICAgICAgICAgaWYgKHJlc3VsdC5lcnJvcikgewogICAg +ICAgICAgICAgICAgICAgIHNob3dUb2FzdCgnRmVobGVyOiAnICsgcmVzdWx0LmVycm9yLCAnZXJy +b3InLCA1MDAwKTsKICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAg +ICAgICB9CiAgICAgICAgICAgIH0gZWxzZSBpZiAoRHJpdmVGUy5tb2RlID09PSAnZmlsZXN5c3Rl +bScgJiYgRHJpdmVGUy5fZGF0YUhhbmRsZSkgewogICAgICAgICAgICAgICAgY29uc3QgZmggPSBh +d2FpdCBEcml2ZUZTLl9kYXRhSGFuZGxlLmdldEZpbGVIYW5kbGUoJ2dvdmVybmFuY2UuanNvbics +IHsgY3JlYXRlOiB0cnVlIH0pOwogICAgICAgICAgICAgICAgY29uc3Qgd3JpdGFibGUgPSBhd2Fp +dCBmaC5jcmVhdGVXcml0YWJsZSgpOwogICAgICAgICAgICAgICAgYXdhaXQgd3JpdGFibGUud3Jp +dGUoSlNPTi5zdHJpbmdpZnkodGhpcy5kYXRhLCBudWxsLCAyKSk7CiAgICAgICAgICAgICAgICBh +d2FpdCB3cml0YWJsZS5jbG9zZSgpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHRoaXMuX2lz +U3VwZXJVc2VyID0gdGhpcy5fY2hlY2tTdXBlclVzZXIoKTsKICAgICAgICAgICAgdGhpcy51cGRh +dGVVSSgpOwogICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICB9IGNhdGNoIChlcnIpIHsK +ICAgICAgICAgICAgc2hvd1RvYXN0KCdHb3Zlcm5hbmNlIHNwZWljaGVybiBmZWhsZ2VzY2hsYWdl +bjogJyArIGVyci5tZXNzYWdlLCAnZXJyb3InLCA1MDAwKTsKICAgICAgICAgICAgcmV0dXJuIGZh +bHNlOwogICAgICAgIH0KICAgIH0sCgogICAgLy8gLS0tIEZyZWlnYWJldmVyYW50d29ydGxpY2hl +IChJbXByZXNzdW0pIC0tLQogICAgc2hvd0ltcHJpbnQoKSB7CiAgICAgICAgY29uc3QgYm9keSA9 +IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbXByaW50Qm9keScpOwogICAgICAgIGNvbnN0IGdv +diA9IHRoaXMuZGF0YTsKICAgICAgICBjb25zdCBpc1N0YXRpYyA9IERyaXZlRlMubW9kZSA9PT0g +J3N0YXRpYyc7CgogICAgICAgIGxldCBodG1sID0gJzxwIHN0eWxlPSJtYXJnaW4tYm90dG9tOjRw +eDsgZm9udC1zaXplOjE0cHg7IGNvbG9yOnZhcigtLXRleHQtc2Vjb25kYXJ5KTsiPsOcYmVyc2lj +aHQgZGVyIEZyZWlnYWJldmVyYW50d29ydGxpY2hlbiBpbSBELlIuSS5WLkUuIFBvcnRhbC48L3A+ +PHAgc3R5bGU9Im1hcmdpbi1ib3R0b206MTVweDsgZm9udC1zaXplOjE0cHg7IGNvbG9yOnZhcigt +LXRleHQtc2Vjb25kYXJ5KTsiPkRpZXNlIFBlcnNvbmVuIHByw7xmZW4gdW5kIGdlbmVobWlnZW4g +QXJ0aWtlbCBpbiBkZW4gamV3ZWlsaWdlbiBLYXRlZ29yaWVuLjwvcD4nOwoKICAgICAgICBpZiAo +aXNTdGF0aWMpIHsKICAgICAgICAgICAgLy8gTGVzZW1vZHVzOiBLYXRlZ29yaWVuIG1pdCBadXN0 +YWVuZGlna2VpdCAob2huZSBCZW51dHplci1JRHMpCiAgICAgICAgICAgIGh0bWwgKz0gJzxoMyBz +dHlsZT0iY29sb3I6dmFyKC0tdGV4dC1oZWFkaW5nKTsgbWFyZ2luLWJvdHRvbTo4cHg7Ij5adXN0 +w6RuZGlna2VpdCBuYWNoIEthdGVnb3JpZTwvaDM+JzsKICAgICAgICAgICAgdmFyIHNSZXZpZXdl +cnMgPSAoZ292ICYmIGdvdi5yZXZpZXdlcnMpID8gZ292LnJldmlld2VycyA6IFtdOwogICAgICAg +ICAgICB2YXIgc0thdHMgPSAoRHJpdmVGUy5jb25maWcgJiYgRHJpdmVGUy5jb25maWcua2F0ZWdv +cmllbikgPyBEcml2ZUZTLmNvbmZpZy5rYXRlZ29yaWVuIDogW107CiAgICAgICAgICAgIHZhciBz +SGlkZGVuID0gKERyaXZlRlMuY29uZmlnICYmIERyaXZlRlMuY29uZmlnLmhpZGRlbkthdGVnb3Jp +ZW4pID8gRHJpdmVGUy5jb25maWcuaGlkZGVuS2F0ZWdvcmllbiA6IFtdOwogICAgICAgICAgICBp +ZiAoc0thdHMubGVuZ3RoID4gMCkgewogICAgICAgICAgICAgICAgaHRtbCArPSAnPHRhYmxlIGNs +YXNzPSJpbXByaW50LXRhYmxlIiBpZD0iaW1wcmludENhdFRhYmxlIj48dGhlYWQ+PHRyPicgKwog +ICAgICAgICAgICAgICAgICAgICc8dGggc3R5bGU9ImN1cnNvcjpwb2ludGVyOyIgb25jbGljaz0i +RHJpdmVHb3Zlcm5hbmNlLl9zb3J0SW1wcmludFRhYmxlKDApIj5LYXRlZ29yaWUg4oaVPC90aD4n +ICsKICAgICAgICAgICAgICAgICAgICAnPHRoIHN0eWxlPSJjdXJzb3I6cG9pbnRlcjsiIG9uY2xp +Y2s9IkRyaXZlR292ZXJuYW5jZS5fc29ydEltcHJpbnRUYWJsZSgxKSI+WnVzdMOkbmRpZyDihpU8 +L3RoPicgKwogICAgICAgICAgICAgICAgJzwvdHI+PC90aGVhZD48dGJvZHk+JzsKICAgICAgICAg +ICAgICAgIHNLYXRzLmZpbHRlcihmdW5jdGlvbihrKSB7IHJldHVybiAhc0hpZGRlbi5pbmNsdWRl +cyhrKTsgfSkuZm9yRWFjaChmdW5jdGlvbihrYXQpIHsKICAgICAgICAgICAgICAgICAgICB2YXIg +enVzdGFlbmRpZyA9IHNSZXZpZXdlcnMuZmlsdGVyKGZ1bmN0aW9uKHIpIHsgcmV0dXJuIChyLmth +dGVnb3JpZW4gfHwgW10pLmluY2x1ZGVzKGthdCk7IH0pOwogICAgICAgICAgICAgICAgICAgIGlm +ICh6dXN0YWVuZGlnLmxlbmd0aCA+IDApIHsKICAgICAgICAgICAgICAgICAgICAgICAgenVzdGFl +bmRpZy5mb3JFYWNoKGZ1bmN0aW9uKHIpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGh0 +bWwgKz0gJzx0cj48dGQ+PHN0cm9uZz4nICsgRHJpdmVQb3J0YWwuZXNjYXBlSFRNTChrYXQpICsg +Jzwvc3Ryb25nPjwvdGQ+JyArCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJzx0ZD4n +ICsgRHJpdmVQb3J0YWwuZXNjYXBlSFRNTChyLmRpc3BsYXlOYW1lIHx8ICctJykgKyAnPC90ZD48 +L3RyPic7CiAgICAgICAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgICAgIH0g +ZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGh0bWwgKz0gJzx0cj48dGQ+PHN0cm9uZz4n +ICsgRHJpdmVQb3J0YWwuZXNjYXBlSFRNTChrYXQpICsgJzwvc3Ryb25nPjwvdGQ+JyArCiAgICAg +ICAgICAgICAgICAgICAgICAgICAgICAnPHRkPjxlbSBzdHlsZT0iY29sb3I6dmFyKC0tdGV4dC1t +dXRlZCk7Ij5LZWluIFJldmlld2VyIHp1Z2V3aWVzZW48L2VtPjwvdGQ+PC90cj4nOwogICAgICAg +ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgaHRtbCAr +PSAnPC90Ym9keT48L3RhYmxlPic7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAg +ICBodG1sICs9ICc8cCBzdHlsZT0iY29sb3I6dmFyKC0tdGV4dC1tdXRlZCk7Ij5LZWluZSBLYXRl +Z29yaWVuIHZlcmbDvGdiYXIuPC9wPic7CiAgICAgICAgICAgIH0KICAgICAgICB9IGVsc2Ugewog +ICAgICAgICAgICAvLyBTZXJ2ZXItTW9kdXM6IFZvbGxzdMOkbmRpZ2UgQW5zaWNodCBtaXQgYWxs +ZW4gUm9sbGVuCgogICAgICAgICAgICAvLyBTdXBlclVzZXIKICAgICAgICAgICAgaHRtbCArPSAn +PGgzIHN0eWxlPSJjb2xvcjp2YXIoLS10ZXh0LWhlYWRpbmcpOyBtYXJnaW4tYm90dG9tOjhweDsi +PlN5c3RlbWFkbWluaXN0cmF0aW9uPC9oMz4nOwogICAgICAgICAgICBodG1sICs9ICc8dGFibGUg +Y2xhc3M9ImltcHJpbnQtdGFibGUiPjx0aGVhZD48dHI+PHRoPk5hbWU8L3RoPjx0aD5CZW51dHpl +ci1JRDwvdGg+PHRoPlJvbGxlPC90aD48L3RyPjwvdGhlYWQ+PHRib2R5Pic7CiAgICAgICAgICAg +IGlmIChnb3YgJiYgZ292LnN1cGVyVXNlcnMpIHsKICAgICAgICAgICAgICAgIGdvdi5zdXBlclVz +ZXJzLmZvckVhY2goc3UgPT4gewogICAgICAgICAgICAgICAgICAgIGh0bWwgKz0gJzx0cj48dGQ+ +JyArIERyaXZlUG9ydGFsLmVzY2FwZUhUTUwoc3UuZGlzcGxheU5hbWUgfHwgc3UudXNlcm5hbWUp +ICsgJzwvdGQ+JyArCiAgICAgICAgICAgICAgICAgICAgICAgICc8dGQ+JyArIERyaXZlUG9ydGFs +LmVzY2FwZUhUTUwoc3UudXNlcm5hbWUpICsgJzwvdGQ+JyArCiAgICAgICAgICAgICAgICAgICAg +ICAgICc8dGQgc3R5bGU9ImZvbnQtd2VpZ2h0OjYwMDsgY29sb3I6dmFyKC0tdGV4dC1oZWFkaW5n +KTsiPlN1cGVyVXNlcjwvdGQ+PC90cj4nOwogICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAg +IH0KICAgICAgICAgICAgaHRtbCArPSAnPC90Ym9keT48L3RhYmxlPic7CgogICAgICAgICAgICAv +LyBGYWNoYXVmc2ljaHQKICAgICAgICAgICAgaWYgKGdvdiAmJiBnb3YuZmFjaGF1ZnNpY2h0ICYm +IGdvdi5mYWNoYXVmc2ljaHQubGVuZ3RoID4gMCkgewogICAgICAgICAgICAgICAgaHRtbCArPSAn +PGgzIHN0eWxlPSJjb2xvcjp2YXIoLS10ZXh0LWhlYWRpbmcpOyBtYXJnaW46MjBweCAwIDhweDsi +PkZhY2hhdWZzaWNodDwvaDM+JzsKICAgICAgICAgICAgICAgIGh0bWwgKz0gJzx0YWJsZSBjbGFz +cz0iaW1wcmludC10YWJsZSI+PHRoZWFkPjx0cj48dGg+TmFtZTwvdGg+PHRoPkJlbnV0emVyLUlE +PC90aD48dGg+WnVzdMOkbmRpZ2tlaXQ8L3RoPjwvdHI+PC90aGVhZD48dGJvZHk+JzsKICAgICAg +ICAgICAgICAgIGdvdi5mYWNoYXVmc2ljaHQuZm9yRWFjaChmdW5jdGlvbihmYSkgewogICAgICAg +ICAgICAgICAgICAgIGh0bWwgKz0gJzx0cj48dGQ+JyArIERyaXZlUG9ydGFsLmVzY2FwZUhUTUwo +ZmEuZGlzcGxheU5hbWUgfHwgZmEudXNlcm5hbWUpICsgJzwvdGQ+JyArCiAgICAgICAgICAgICAg +ICAgICAgICAgICc8dGQ+JyArIERyaXZlUG9ydGFsLmVzY2FwZUhUTUwoZmEudXNlcm5hbWUpICsg +JzwvdGQ+JyArCiAgICAgICAgICAgICAgICAgICAgICAgICc8dGQgc3R5bGU9ImZvbnQtd2VpZ2h0 +OjYwMDsgY29sb3I6I2U1NzM3MzsiPkFsbGUgS2F0ZWdvcmllbjwvdGQ+PC90cj4nOwogICAgICAg +ICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICBodG1sICs9ICc8L3Rib2R5PjwvdGFibGU+JzsK +ICAgICAgICAgICAgfQoKICAgICAgICAgICAgLy8gWnVzdGFlbmRpZ2tlaXQgbmFjaCBLYXRlZ29y +aWUgKHNvcnRpZXJiYXJlIFRhYmVsbGUpCiAgICAgICAgICAgIGh0bWwgKz0gJzxoMyBzdHlsZT0i +Y29sb3I6dmFyKC0tdGV4dC1oZWFkaW5nKTsgbWFyZ2luOjIwcHggMCA4cHg7Ij5adXN0w6RuZGln +a2VpdCBuYWNoIEthdGVnb3JpZTwvaDM+JzsKICAgICAgICAgICAgdmFyIGltcEhpZGRlbkthdHMg +PSBEcml2ZUZTLmNvbmZpZy5oaWRkZW5LYXRlZ29yaWVuIHx8IFtdOwogICAgICAgICAgICB2YXIg +cmV2aWV3ZXJzID0gKGdvdiAmJiBnb3YucmV2aWV3ZXJzKSA/IGdvdi5yZXZpZXdlcnMgOiBbXTsK +ICAgICAgICAgICAgaHRtbCArPSAnPHRhYmxlIGNsYXNzPSJpbXByaW50LXRhYmxlIiBpZD0iaW1w +cmludENhdFRhYmxlIj48dGhlYWQ+PHRyPicgKwogICAgICAgICAgICAgICAgJzx0aCBzdHlsZT0i +Y3Vyc29yOnBvaW50ZXI7IiBvbmNsaWNrPSJEcml2ZUdvdmVybmFuY2UuX3NvcnRJbXByaW50VGFi +bGUoMCkiPkthdGVnb3JpZSDihpU8L3RoPicgKwogICAgICAgICAgICAgICAgJzx0aCBzdHlsZT0i +Y3Vyc29yOnBvaW50ZXI7IiBvbmNsaWNrPSJEcml2ZUdvdmVybmFuY2UuX3NvcnRJbXByaW50VGFi +bGUoMSkiPlp1c3TDpG5kaWcg4oaVPC90aD4nICsKICAgICAgICAgICAgICAgICc8dGggc3R5bGU9 +ImN1cnNvcjpwb2ludGVyOyIgb25jbGljaz0iRHJpdmVHb3Zlcm5hbmNlLl9zb3J0SW1wcmludFRh +YmxlKDIpIj5CZW51dHplci1JRCDihpU8L3RoPicgKwogICAgICAgICAgICAnPC90cj48L3RoZWFk +Pjx0Ym9keT4nOwogICAgICAgICAgICAoRHJpdmVGUy5jb25maWcua2F0ZWdvcmllbiB8fCBbXSku +ZmlsdGVyKGZ1bmN0aW9uKGthdCkgeyByZXR1cm4gIWltcEhpZGRlbkthdHMuaW5jbHVkZXMoa2F0 +KTsgfSkuZm9yRWFjaChmdW5jdGlvbihrYXQpIHsKICAgICAgICAgICAgICAgIHZhciB6dXN0YWVu +ZGlnID0gcmV2aWV3ZXJzLmZpbHRlcihmdW5jdGlvbihyKSB7IHJldHVybiAoci5rYXRlZ29yaWVu +IHx8IFtdKS5pbmNsdWRlcyhrYXQpOyB9KTsKICAgICAgICAgICAgICAgIGlmICh6dXN0YWVuZGln +Lmxlbmd0aCA+IDApIHsKICAgICAgICAgICAgICAgICAgICB6dXN0YWVuZGlnLmZvckVhY2goZnVu +Y3Rpb24ocikgewogICAgICAgICAgICAgICAgICAgICAgICBodG1sICs9ICc8dHI+PHRkPjxzdHJv +bmc+JyArIERyaXZlUG9ydGFsLmVzY2FwZUhUTUwoa2F0KSArICc8L3N0cm9uZz48L3RkPicgKwog +ICAgICAgICAgICAgICAgICAgICAgICAgICAgJzx0ZD4nICsgRHJpdmVQb3J0YWwuZXNjYXBlSFRN +TChyLmRpc3BsYXlOYW1lIHx8IHIudXNlcm5hbWUpICsgJzwvdGQ+JyArCiAgICAgICAgICAgICAg +ICAgICAgICAgICAgICAnPHRkIHN0eWxlPSJmb250LXNpemU6MTJweDtjb2xvcjp2YXIoLS10ZXh0 +LXNlY29uZGFyeSk7Ij4nICsgRHJpdmVQb3J0YWwuZXNjYXBlSFRNTChyLnVzZXJuYW1lKSArICc8 +L3RkPjwvdHI+JzsKICAgICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgIH0gZWxz +ZSB7CiAgICAgICAgICAgICAgICAgICAgaHRtbCArPSAnPHRyPjx0ZD48c3Ryb25nPicgKyBEcml2 +ZVBvcnRhbC5lc2NhcGVIVE1MKGthdCkgKyAnPC9zdHJvbmc+PC90ZD4nICsKICAgICAgICAgICAg +ICAgICAgICAgICAgJzx0ZCBjb2xzcGFuPSIyIj48ZW0gc3R5bGU9ImNvbG9yOnZhcigtLXRleHQt +bXV0ZWQpOyI+S2VpbiBSZXZpZXdlciB6dWdld2llc2VuPC9lbT48L3RkPjwvdHI+JzsKICAgICAg +ICAgICAgICAgIH0KICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIGh0bWwgKz0gJzwvdGJvZHk+ +PC90YWJsZT4nOwogICAgICAgIH0KCiAgICAgICAgaHRtbCArPSAnPHAgc3R5bGU9Im1hcmdpbi10 +b3A6MjBweDsgZm9udC1zaXplOjExcHg7IGNvbG9yOnZhcigtLXRleHQtbXV0ZWQpOyI+U3RhbmQ6 +ICcgKyBuZXcgRGF0ZSgpLnRvTG9jYWxlRGF0ZVN0cmluZygnZGUtREUnLCB7ZGF5OicyLWRpZ2l0 +Jyxtb250aDonMi1kaWdpdCcseWVhcjonbnVtZXJpYyd9KSArICc8L3A+JzsKCiAgICAgICAgYm9k +eS5pbm5lckhUTUwgPSBodG1sOwogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbXBy +aW50TW9kYWwnKS5jbGFzc0xpc3QuYWRkKCdhY3RpdmUnKTsKICAgIH0sCgogICAgX2ltcHJpbnRT +b3J0Q29sOiAtMSwKICAgIF9pbXByaW50U29ydEFzYzogdHJ1ZSwKCiAgICBfc29ydEltcHJpbnRU +YWJsZShjb2xJZHgpIHsKICAgICAgICB2YXIgdGFibGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJ +ZCgnaW1wcmludENhdFRhYmxlJyk7CiAgICAgICAgaWYgKCF0YWJsZSkgcmV0dXJuOwogICAgICAg +IHZhciB0Ym9keSA9IHRhYmxlLnF1ZXJ5U2VsZWN0b3IoJ3Rib2R5Jyk7CiAgICAgICAgaWYgKCF0 +Ym9keSkgcmV0dXJuOwoKICAgICAgICAvLyBTb3J0aWVycmljaHR1bmcgdW1zY2hhbHRlbgogICAg +ICAgIGlmICh0aGlzLl9pbXByaW50U29ydENvbCA9PT0gY29sSWR4KSB7CiAgICAgICAgICAgIHRo +aXMuX2ltcHJpbnRTb3J0QXNjID0gIXRoaXMuX2ltcHJpbnRTb3J0QXNjOwogICAgICAgIH0gZWxz +ZSB7CiAgICAgICAgICAgIHRoaXMuX2ltcHJpbnRTb3J0Q29sID0gY29sSWR4OwogICAgICAgICAg +ICB0aGlzLl9pbXByaW50U29ydEFzYyA9IHRydWU7CiAgICAgICAgfQogICAgICAgIHZhciBhc2Mg +PSB0aGlzLl9pbXByaW50U29ydEFzYzsKCiAgICAgICAgdmFyIHJvd3MgPSBBcnJheS5mcm9tKHRi +b2R5LnF1ZXJ5U2VsZWN0b3JBbGwoJ3RyJykpOwogICAgICAgIHJvd3Muc29ydChmdW5jdGlvbihh +LCBiKSB7CiAgICAgICAgICAgIHZhciBhVGV4dCA9IChhLmNlbGxzW2NvbElkeF0gPyBhLmNlbGxz +W2NvbElkeF0udGV4dENvbnRlbnQudHJpbSgpIDogJycpLnRvTG93ZXJDYXNlKCk7CiAgICAgICAg +ICAgIHZhciBiVGV4dCA9IChiLmNlbGxzW2NvbElkeF0gPyBiLmNlbGxzW2NvbElkeF0udGV4dENv +bnRlbnQudHJpbSgpIDogJycpLnRvTG93ZXJDYXNlKCk7CiAgICAgICAgICAgIHZhciBjbXAgPSBh +VGV4dC5sb2NhbGVDb21wYXJlKGJUZXh0LCAnZGUnKTsKICAgICAgICAgICAgcmV0dXJuIGFzYyA/ +IGNtcCA6IC1jbXA7CiAgICAgICAgfSk7CiAgICAgICAgcm93cy5mb3JFYWNoKGZ1bmN0aW9uKHJv +dykgeyB0Ym9keS5hcHBlbmRDaGlsZChyb3cpOyB9KTsKICAgIH0sCgogICAgY2xvc2VJbXByaW50 +KCkgewogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbXByaW50TW9kYWwnKS5jbGFz +c0xpc3QucmVtb3ZlKCdhY3RpdmUnKTsKICAgIH0KfTsKCi8vID09PT09PT09PT09PT09PT09PT09 +PSBJTklUID09PT09PT09PT09PT09PT09PT09PQoKZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcign +RE9NQ29udGVudExvYWRlZCcsIGFzeW5jICgpID0+IHsKICAgIC8vIENsaWNrLUhhbmRsZXIgZnVl +ciBpbmxpbmUgTWVkaWVuIGluIGRlciBEZXRhaWwtQW5zaWNodAogICAgZG9jdW1lbnQuZ2V0RWxl +bWVudEJ5SWQoJ2RvY3VtZW50RGV0YWlsJykuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCAoZSkg +PT4gewogICAgICAgIC8vIEJpbGRlciBpbiAuZHJpdmUtbWVkaWEtdGh1bWJuYWlsCiAgICAgICAg +Y29uc3QgdGh1bWIgPSBlLnRhcmdldC5jbG9zZXN0KCcuZHJpdmUtbWVkaWEtdGh1bWJuYWlsJyk7 +CiAgICAgICAgaWYgKHRodW1iICYmICFkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZWRpdG9yTW9k +YWwnKS5jbGFzc0xpc3QuY29udGFpbnMoJ2FjdGl2ZScpKSB7CiAgICAgICAgICAgIGNvbnN0IGlt +ZyA9IHRodW1iLnF1ZXJ5U2VsZWN0b3IoJ2ltZycpOwogICAgICAgICAgICBpZiAoaW1nKSB7CiAg +ICAgICAgICAgICAgICBvcGVuTWVkaWFNb2RhbChpbWcuc3JjLCAnaW1hZ2UnLCBpbWcuYWx0IHx8 +ICcnKTsKICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgfQogICAgICAgIH0KICAg +ICAgICAvLyBCaWxkZXIgZGlyZWt0IGFuZ2VrbGlja3QgKGluIC5kcml2ZS1tZWRpYS1sYXJnZSBv +ZGVyIGFsdGUgQmlsZGVyKQogICAgICAgIGlmIChlLnRhcmdldC50YWdOYW1lID09PSAnSU1HJyAm +JiBlLnRhcmdldC5jbG9zZXN0KCcuZGV0YWlsLWNvbnRlbnQnKSkgewogICAgICAgICAgICBvcGVu +TWVkaWFNb2RhbChlLnRhcmdldC5zcmMsICdpbWFnZScsIGUudGFyZ2V0LmFsdCB8fCAnJyk7CiAg +ICAgICAgfQoKICAgICAgICAvLyBTaWNoZXJoZWl0c25ldHo6IEFsbGUgZXh0ZXJuZW4gTGlua3Mg +aW0gQXJ0aWtlbGluaGFsdCBpbiBuZXVlbSBUYWIgb2VmZm5lbi4KICAgICAgICAvLyBWZXJoaW5k +ZXJ0LCBkYXNzIGRhcyBQb3J0YWwgZHVyY2ggTGlua3MgYXVzIGtvcGllcnRlbi9iZXN0ZWhlbmRl +biBJbmhhbHRlbgogICAgICAgIC8vIHZlcmxhc3NlbiB3aXJkIChhdWNoIGJlaSBBbHRkYXRlbiBk +aWUgbm9jaCB0YXJnZXQ9X3NlbGYgaGFiZW4pLgogICAgICAgIHZhciBsaW5rID0gZS50YXJnZXQu +Y2xvc2VzdCgnYVtocmVmXScpOwogICAgICAgIGlmIChsaW5rICYmIGxpbmsuY2xvc2VzdCgnLmRl +dGFpbC1jb250ZW50LCAjZWRpdG9ySW5wdXQnKSkgewogICAgICAgICAgICB2YXIgaHJlZiA9IChs +aW5rLmdldEF0dHJpYnV0ZSgnaHJlZicpIHx8ICcnKS50cmltKCk7CiAgICAgICAgICAgIC8vIElu +dGVybmUgQW5rZXIgKCMuLi4pIHVuZCBEUklWRS1Dcm9zc2xpbmtzIGF1c25laG1lbgogICAgICAg +ICAgICBpZiAoIWhyZWYuc3RhcnRzV2l0aCgnIycpICYmICFsaW5rLmNsYXNzTGlzdC5jb250YWlu +cygnZHJpdmUteHJlZicpKSB7CiAgICAgICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7CiAg +ICAgICAgICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpOwogICAgICAgICAgICAgICAgd2luZG93 +Lm9wZW4oaHJlZiwgJ19ibGFuaycsICdub29wZW5lcixub3JlZmVycmVyJyk7CiAgICAgICAgICAg +IH0KICAgICAgICB9CiAgICB9KTsKCiAgICAvLyBDb250ZXh0LU1lbnUgc2NobGllc3NlbiBiZWkg +S2xpY2sgYXVzc2VyaGFsYgogICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCAo +ZSkgPT4gewogICAgICAgIGlmICghZS50YXJnZXQuY2xvc2VzdCgnLm1lZGlhLWNvbnRleHQtbWVu +dScpICYmICFlLnRhcmdldC5jbG9zZXN0KCcuZHJpdmUtbWVkaWEnKSkgewogICAgICAgICAgICBE +cml2ZUVkaXRvci5oaWRlQ29udGV4dE1lbnUoKTsKICAgICAgICB9CiAgICB9KTsKCiAgICAvLyA9 +PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 +PT09PT09PQogICAgLy8gU2Vzc2lvbi1TY2h1dHo6IEhlYXJ0YmVhdCwgQXV0by1TYXZlLCBXYXJu +dW5nLCBXaWVkZXJhdWZuYWhtZQogICAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 +PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCiAgICAvLyBBa3R1ZWxsZSBFZGl0 +b3ItRGF0ZW4gZnVlciBBdXRvLVNhdmUgc2FtbWVsbiAob2huZSBWYWxpZGllcnVuZy9Xb3JrZmxv +dykKICAgIGZ1bmN0aW9uIF9nYXRoZXJFZGl0b3JTbmFwc2hvdCgpIHsKICAgICAgICBpZiAoIURy +aXZlRWRpdG9yLmN1cnJlbnREb2MpIHJldHVybiBudWxsOwogICAgICAgIHZhciBlZGl0b3IgPSBk +b2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZWRpdG9ySW5wdXQnKTsKICAgICAgICB2YXIgdGl0ZWwg +PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZWRpdG9yVGl0ZWwnKTsKICAgICAgICBpZiAoIWVk +aXRvciAmJiAhdGl0ZWwpIHJldHVybiBudWxsOwogICAgICAgIHZhciBzbmFwID0gSlNPTi5wYXJz +ZShKU09OLnN0cmluZ2lmeShEcml2ZUVkaXRvci5jdXJyZW50RG9jKSk7CiAgICAgICAgaWYgKHRp +dGVsKSBzbmFwLnRpdGVsID0gdGl0ZWwudmFsdWUudHJpbSgpOwogICAgICAgIGlmIChlZGl0b3Ip +IHNuYXAuaW5oYWx0ID0gZWRpdG9yLmlubmVySFRNTDsKICAgICAgICB2YXIga2F0ID0gZG9jdW1l +bnQuZ2V0RWxlbWVudEJ5SWQoJ2VkaXRvckthdGVnb3JpZScpOwogICAgICAgIGlmIChrYXQpIHNu +YXAua2F0ZWdvcmllID0ga2F0LnZhbHVlOwogICAgICAgIHZhciBzdGF0dXMgPSBkb2N1bWVudC5n +ZXRFbGVtZW50QnlJZCgnZWRpdG9yU3RhdHVzJyk7CiAgICAgICAgaWYgKHN0YXR1cykgc25hcC5f +bGFzdEVkaXRvclN0YXR1cyA9IHN0YXR1cy52YWx1ZTsKICAgICAgICBzbmFwLnN0YXR1cyA9ICdF +bnR3dXJmJzsKICAgICAgICBzbmFwLnNjaGxhZ3dvZXJ0ZXIgPSBEcml2ZUVkaXRvci5fY3VycmVu +dEtleXdvcmRzID8gWy4uLkRyaXZlRWRpdG9yLl9jdXJyZW50S2V5d29yZHNdIDogKHNuYXAuc2No +bGFnd29lcnRlciB8fCBbXSk7CiAgICAgICAgcmV0dXJuIHNuYXA7CiAgICB9CgogICAgLy8gQXV0 +by1TYXZlOiBFbnR3dXJmIGF1ZiBkZW0gU2VydmVyIHNwZWljaGVybiArIGxvY2FsU3RvcmFnZS1C +YWNrdXAKICAgIGFzeW5jIGZ1bmN0aW9uIF9lbWVyZ2VuY3lTYXZlRHJhZnQoKSB7CiAgICAgICAg +dmFyIHNuYXAgPSBfZ2F0aGVyRWRpdG9yU25hcHNob3QoKTsKICAgICAgICBpZiAoIXNuYXApIHJl +dHVybiBmYWxzZTsKICAgICAgICAvLyBsb2NhbFN0b3JhZ2UtQmFja3VwIChpbW1lciwgYXVjaCB3 +ZW5uIFNlcnZlci1TYXZlIGZlaGxzY2hsYWVndCkKICAgICAgICB0cnkgewogICAgICAgICAgICBs +b2NhbFN0b3JhZ2Uuc2V0SXRlbSgnZHJpdmUtcmVzdW1lLWRvYycsIEpTT04uc3RyaW5naWZ5KHsK +ICAgICAgICAgICAgICAgIGRvY0lkOiBzbmFwLmlkLAogICAgICAgICAgICAgICAgdGl0ZWw6IHNu +YXAudGl0ZWwsCiAgICAgICAgICAgICAgICBrYXRlZ29yaWU6IHNuYXAua2F0ZWdvcmllLAogICAg +ICAgICAgICAgICAgdGltZXN0YW1wOiBuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCksCiAgICAgICAg +ICAgICAgICBpc05ldzogRHJpdmVFZGl0b3IuaXNOZXcKICAgICAgICAgICAgfSkpOwogICAgICAg +IH0gY2F0Y2goZSkge30KICAgICAgICAvLyBTZXJ2ZXItU2F2ZSBhbHMgRW50d3VyZgogICAgICAg +IGlmIChEcml2ZUZTLm1vZGUgPT09ICdzZXJ2ZXInKSB7CiAgICAgICAgICAgIHRyeSB7CiAgICAg +ICAgICAgICAgICBzbmFwLmdlYWVuZGVydCA9IG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKS5zcGxp +dCgnVCcpWzBdOwogICAgICAgICAgICAgICAgdmFyIHVzZXJuYW1lID0gKERyaXZlRlMuZW52aXJv +biAmJiBEcml2ZUZTLmVudmlyb24udXNlcm5hbWUpID8gRHJpdmVGUy5lbnZpcm9uLnVzZXJuYW1l +IDogJ1VuYmVrYW5udCc7CiAgICAgICAgICAgICAgICBzbmFwLmJlYXJiZWl0ZXRWb24gPSB1c2Vy +bmFtZTsKICAgICAgICAgICAgICAgIHZhciByZXN1bHQgPSBhd2FpdCBEcml2ZUZTLnNhdmVEb2N1 +bWVudChzbmFwKTsKICAgICAgICAgICAgICAgIGlmIChyZXN1bHQgPT09IHRydWUpIHsKICAgICAg +ICAgICAgICAgICAgICAvLyBjdXJyZW50RG9jIGFrdHVhbGlzaWVyZW4gZGFtaXQgY2xvc2UoKSBr +ZWluZW4gRGF0ZW52ZXJsdXN0IHZlcnVyc2FjaHQKICAgICAgICAgICAgICAgICAgICBEcml2ZUVk +aXRvci5jdXJyZW50RG9jID0gc25hcDsKICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsK +ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSBjYXRjaChlKSB7fQogICAgICAgIH0KICAg +ICAgICByZXR1cm4gZmFsc2U7CiAgICB9CgogICAgLy8gVGltZW91dC1XYXJudW5nOiBJbmZvLU1v +ZGFsIDEgTWludXRlIHZvciBTZXJ2ZXItU2h1dGRvd24KICAgIHZhciBfc2VydmVyVGltZW91dE1v +ZGFsID0gbnVsbDsKICAgIHZhciBfc2VydmVyVGltZW91dENvdW50ZG93biA9IG51bGw7CiAgICBm +dW5jdGlvbiBfc2hvd1NlcnZlclRpbWVvdXRXYXJuaW5nKHJlbWFpbmluZ1NlYykgewogICAgICAg +IGlmIChfc2VydmVyVGltZW91dE1vZGFsKSByZXR1cm47IC8vIEJlcmVpdHMgc2ljaHRiYXIKICAg +ICAgICAvLyBPdmVybGF5CiAgICAgICAgdmFyIG92ZXJsYXkgPSBkb2N1bWVudC5jcmVhdGVFbGVt +ZW50KCdkaXYnKTsKICAgICAgICBvdmVybGF5LmlkID0gJ3NlcnZlclRpbWVvdXRPdmVybGF5JzsK +ICAgICAgICBvdmVybGF5LnN0eWxlLmNzc1RleHQgPSAncG9zaXRpb246Zml4ZWQ7aW5zZXQ6MDt6 +LWluZGV4OjExMDAwO2JhY2tncm91bmQ6cmdiYSgwLDAsMCwwLjUpO2Rpc3BsYXk6ZmxleDthbGln +bi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjthbmltYXRpb246ZmFkZUluIC4z +cyBlYXNlOyc7CiAgICAgICAgLy8gTW9kYWwKICAgICAgICB2YXIgbW9kYWwgPSBkb2N1bWVudC5j +cmVhdGVFbGVtZW50KCdkaXYnKTsKICAgICAgICBtb2RhbC5zdHlsZS5jc3NUZXh0ID0gJ2JhY2tn +cm91bmQ6dmFyKC0tYmctY2FyZCwjZmZmKTtib3JkZXItcmFkaXVzOjEycHg7cGFkZGluZzozMnB4 +O21heC13aWR0aDo0NjBweDt3aWR0aDo5MCU7Ym94LXNoYWRvdzowIDEycHggNDhweCByZ2JhKDAs +MCwwLDAuMjUpO3RleHQtYWxpZ246Y2VudGVyOyc7CiAgICAgICAgdmFyIGNvdW50ZG93blNlYyA9 +IE1hdGgubWF4KDAsIE1hdGgucm91bmQocmVtYWluaW5nU2VjKSk7CiAgICAgICAgbW9kYWwuaW5u +ZXJIVE1MID0KICAgICAgICAgICAgJzxkaXYgc3R5bGU9ImZvbnQtc2l6ZTo0MHB4O21hcmdpbi1i +b3R0b206MTJweDsiPiYjOTg4ODs8L2Rpdj4nICsKICAgICAgICAgICAgJzxkaXYgc3R5bGU9ImNv +bG9yOnZhcigtLXRleHQtaGVhZGluZywjMzMzKTtmb250LXNpemU6MThweDtmb250LXdlaWdodDo3 +MDA7bWFyZ2luLWJvdHRvbTo4cHg7Ij5TZXJ2ZXIgd2lyZCBiZWVuZGV0PC9kaXY+JyArCiAgICAg +ICAgICAgICc8ZGl2IGlkPSJzZXJ2ZXJUaW1lb3V0Q291bnRkb3duIiBzdHlsZT0iY29sb3I6I2U3 +NGMzYztmb250LXNpemU6MjhweDtmb250LXdlaWdodDo3MDA7bWFyZ2luLWJvdHRvbToxNnB4OyI+ +JyArIF9mbXRDb3VudGRvd24oY291bnRkb3duU2VjKSArICc8L2Rpdj4nICsKICAgICAgICAgICAg +JzxkaXYgc3R5bGU9ImNvbG9yOnZhcigtLXRleHQtcHJpbWFyeSwjNTU1KTtmb250LXNpemU6MTRw +eDtsaW5lLWhlaWdodDoxLjc7bWFyZ2luLWJvdHRvbToyMHB4OyI+JyArCiAgICAgICAgICAgICAg +ICAnRGVyIERSSVZFLVNlcnZlciB3YXIgbGFlbmdlcmUgWmVpdCBpbmFrdGl2IHVuZCB3aXJkIHNp +Y2ggaW4gS3VlcnplIGF1dG9tYXRpc2NoIGJlZW5kZW4uPGJyPjxicj4nICsKICAgICAgICAgICAg +ICAgICc8c3Ryb25nIHN0eWxlPSJjb2xvcjp2YXIoLS10ZXh0LWhlYWRpbmcsIzMzMyk7Ij5LZWlu +ZSBTb3JnZTo8L3N0cm9uZz4gT2ZmZW5lIEFydGlrZWwgd3VyZGVuIGF1dG9tYXRpc2NoIGFscyA8 +c3Ryb25nPkVudHd1cmY8L3N0cm9uZz4gZ2VzcGVpY2hlcnQgdW5kIGdlaGVuIG5pY2h0IHZlcmxv +cmVuLicgKwogICAgICAgICAgICAnPC9kaXY+JyArCiAgICAgICAgICAgICc8ZGl2IHN0eWxlPSJi +YWNrZ3JvdW5kOnZhcigtLWJnLW1haW4sI2Y1ZjVmNSk7Ym9yZGVyLXJhZGl1czo4cHg7cGFkZGlu +ZzoxNHB4IDE4cHg7bWFyZ2luLWJvdHRvbToyMHB4O3RleHQtYWxpZ246bGVmdDsiPicgKwogICAg +ICAgICAgICAgICAgJzxkaXYgc3R5bGU9ImNvbG9yOnZhcigtLXRleHQtc2Vjb25kYXJ5LCM3Nzcp +O2ZvbnQtc2l6ZToxMnB4O2ZvbnQtd2VpZ2h0OjYwMDt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7 +bWFyZ2luLWJvdHRvbTo2cHg7Ij5TbyBnZWh0cyB3ZWl0ZXI8L2Rpdj4nICsKICAgICAgICAgICAg +ICAgICc8ZGl2IHN0eWxlPSJjb2xvcjp2YXIoLS10ZXh0LXByaW1hcnksIzU1NSk7Zm9udC1zaXpl +OjEzcHg7bGluZS1oZWlnaHQ6MS42OyI+JyArCiAgICAgICAgICAgICAgICAgICAgJzEuIERpZXNl +biBUYWIgc2NobGllc3Nlbjxicj4nICsKICAgICAgICAgICAgICAgICAgICAnMi4gPHN0cm9uZz5E +UklWRV9TdGFydC5iYXQ8L3N0cm9uZz4gZXJuZXV0IGF1c2Z1ZWhyZW48YnI+JyArCiAgICAgICAg +ICAgICAgICAgICAgJzMuIERlciBnZXNwZWljaGVydGUgRW50d3VyZiBrYW5uIGRhbm4gZm9ydGdl +c2V0enQgd2VyZGVuJyArCiAgICAgICAgICAgICAgICAnPC9kaXY+JyArCiAgICAgICAgICAgICc8 +L2Rpdj4nICsKICAgICAgICAgICAgJzxkaXYgc3R5bGU9ImRpc3BsYXk6ZmxleDtnYXA6MTBweDtq +dXN0aWZ5LWNvbnRlbnQ6Y2VudGVyOyI+JyArCiAgICAgICAgICAgICAgICAnPGJ1dHRvbiBpZD0i +c2VydmVyVGltZW91dFJlc3VtZSIgc3R5bGU9InBhZGRpbmc6MTBweCAyNHB4O2JvcmRlci1yYWRp +dXM6NnB4O2JvcmRlcjpub25lO2JhY2tncm91bmQ6IzI3YWU2MDtjb2xvcjojZmZmO2N1cnNvcjpw +b2ludGVyO2ZvbnQtd2VpZ2h0OjYwMDtmb250LXNpemU6MTRweDsiPldlaXRlcmFyYmVpdGVuPC9i +dXR0b24+JyArCiAgICAgICAgICAgICc8L2Rpdj4nOwogICAgICAgIG92ZXJsYXkuYXBwZW5kQ2hp +bGQobW9kYWwpOwogICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQob3ZlcmxheSk7CiAg +ICAgICAgX3NlcnZlclRpbWVvdXRNb2RhbCA9IG92ZXJsYXk7CiAgICAgICAgLy8gQ291bnRkb3du +IGFrdHVhbGlzaWVyZW4KICAgICAgICBfc2VydmVyVGltZW91dENvdW50ZG93biA9IHNldEludGVy +dmFsKGZ1bmN0aW9uKCkgewogICAgICAgICAgICBjb3VudGRvd25TZWMtLTsKICAgICAgICAgICAg +dmFyIGVsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3NlcnZlclRpbWVvdXRDb3VudGRvd24n +KTsKICAgICAgICAgICAgaWYgKGVsKSBlbC50ZXh0Q29udGVudCA9IF9mbXRDb3VudGRvd24oTWF0 +aC5tYXgoMCwgY291bnRkb3duU2VjKSk7CiAgICAgICAgICAgIGlmIChjb3VudGRvd25TZWMgPD0g +MCkgewogICAgICAgICAgICAgICAgY2xlYXJJbnRlcnZhbChfc2VydmVyVGltZW91dENvdW50ZG93 +bik7CiAgICAgICAgICAgICAgICBfc2VydmVyVGltZW91dENvdW50ZG93biA9IG51bGw7CiAgICAg +ICAgICAgICAgICAvLyBNb2RhbC1UZXh0IGFrdHVhbGlzaWVyZW46IFNlcnZlciBpc3QgamV0enQg +YmVlbmRldAogICAgICAgICAgICAgICAgaWYgKGVsKSBlbC50ZXh0Q29udGVudCA9ICdTZXJ2ZXIg +YmVlbmRldCc7CiAgICAgICAgICAgICAgICB2YXIgYnRuID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5 +SWQoJ3NlcnZlclRpbWVvdXRSZXN1bWUnKTsKICAgICAgICAgICAgICAgIGlmIChidG4pIGJ0bi5y +ZW1vdmUoKTsKICAgICAgICAgICAgfQogICAgICAgIH0sIDEwMDApOwogICAgICAgIC8vIFdlaXRl +cmFyYmVpdGVuLUJ1dHRvbjogTW9kYWwgc2NobGllc3NlbiArIEhlYXJ0YmVhdCBzZW5kZW4KICAg +ICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc2VydmVyVGltZW91dFJlc3VtZScpLm9uY2xp +Y2sgPSBmdW5jdGlvbigpIHsKICAgICAgICAgICAgX2hpZGVTZXJ2ZXJUaW1lb3V0V2FybmluZygp +OwogICAgICAgICAgICBmZXRjaCgnL2FwaS9oZWFydGJlYXQnLCB7IG1ldGhvZDogJ1BPU1QnIH0p +LmNhdGNoKGZ1bmN0aW9uKCkge30pOwogICAgICAgIH07CiAgICB9CiAgICBmdW5jdGlvbiBfZm10 +Q291bnRkb3duKHNlYykgewogICAgICAgIHZhciBtID0gTWF0aC5mbG9vcihzZWMgLyA2MCk7CiAg +ICAgICAgdmFyIHMgPSBzZWMgJSA2MDsKICAgICAgICByZXR1cm4gKG0gPiAwID8gbSArICcgTWlu +LiAnIDogJycpICsgcyArICcgU2VrLic7CiAgICB9CiAgICBmdW5jdGlvbiBfaGlkZVNlcnZlclRp +bWVvdXRXYXJuaW5nKCkgewogICAgICAgIGlmIChfc2VydmVyVGltZW91dENvdW50ZG93bikgewog +ICAgICAgICAgICBjbGVhckludGVydmFsKF9zZXJ2ZXJUaW1lb3V0Q291bnRkb3duKTsKICAgICAg +ICAgICAgX3NlcnZlclRpbWVvdXRDb3VudGRvd24gPSBudWxsOwogICAgICAgIH0KICAgICAgICBp +ZiAoX3NlcnZlclRpbWVvdXRNb2RhbCkgewogICAgICAgICAgICBfc2VydmVyVGltZW91dE1vZGFs +LnJlbW92ZSgpOwogICAgICAgICAgICBfc2VydmVyVGltZW91dE1vZGFsID0gbnVsbDsKICAgICAg +ICB9CiAgICB9CgogICAgLy8gVGFiLVNjaGxpZXNzZW4gZXJrZW5uZW46IGJlZm9yZXVubG9hZCAr +IHZpc2liaWxpdHljaGFuZ2Uga29tYmluaWVydC4KICAgIC8vIHZpc2liaWxpdHljaGFuZ2UoJ2hp +ZGRlbicpIGZldWVydCBiZWkgVGFiLVdlY2hzZWwgVU5EIFRhYi1TY2hsaWVzc2VuLAogICAgLy8g +YWJlciBiZWZvcmV1bmxvYWQgZmV1ZXJ0IE5VUiBiZWkgVGFiLVNjaGxpZXNzZW4gLyBOYXZpZ2F0 +aW9uIHdlZy4KICAgIC8vIFN0cmF0ZWdpZTogRmxhZyBpbiBiZWZvcmV1bmxvYWQgc2V0emVuLCBk +YW5uIGluIHBhZ2VoaWRlL3VubG9hZCBkZW4gU2h1dGRvd24gc2VuZGVuLgogICAgdmFyIF90YWJJ +c0Nsb3NpbmcgPSBmYWxzZTsKCiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignYmVmb3JldW5s +b2FkJywgKCkgPT4gewogICAgICAgIF90YWJJc0Nsb3NpbmcgPSB0cnVlOwogICAgICAgIGlmIChE +cml2ZUZTLm1vZGUgPT09ICdzZXJ2ZXInKSB7CiAgICAgICAgICAgIC8vIE9mZmVuZW4gQXJ0aWtl +bCBhbHMgRW50d3VyZiBpbiBsb2NhbFN0b3JhZ2UgbWVya2VuCiAgICAgICAgICAgIHZhciBzbmFw +ID0gX2dhdGhlckVkaXRvclNuYXBzaG90KCk7CiAgICAgICAgICAgIGlmIChzbmFwKSB7CiAgICAg +ICAgICAgICAgICB0cnkgewogICAgICAgICAgICAgICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVt +KCdkcml2ZS1yZXN1bWUtZG9jJywgSlNPTi5zdHJpbmdpZnkoewogICAgICAgICAgICAgICAgICAg +ICAgICBkb2NJZDogc25hcC5pZCwKICAgICAgICAgICAgICAgICAgICAgICAgdGl0ZWw6IHNuYXAu +dGl0ZWwsCiAgICAgICAgICAgICAgICAgICAgICAgIGthdGVnb3JpZTogc25hcC5rYXRlZ29yaWUs +CiAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVzdGFtcDogbmV3IERhdGUoKS50b0lTT1N0cmlu +ZygpLAogICAgICAgICAgICAgICAgICAgICAgICBpc05ldzogRHJpdmVFZGl0b3IuaXNOZXcKICAg +ICAgICAgICAgICAgICAgICB9KSk7CiAgICAgICAgICAgICAgICAgICAgLy8gRW50d3VyZiB2aWEg +c2VuZEJlYWNvbiBzcGVpY2hlcm4gKGZpcmUtYW5kLWZvcmdldCwgdWViZXJsZWJ0IFRhYi1DbG9z +ZSkKICAgICAgICAgICAgICAgICAgICB2YXIgcGF0aCA9ICdkYXRhLycgKyBzbmFwLmthdGVnb3Jp +ZSArICcvJyArIHNuYXAuaWQgKyAnLmpzb24nOwogICAgICAgICAgICAgICAgICAgIHNuYXAuZ2Vh +ZW5kZXJ0ID0gbmV3IERhdGUoKS50b0lTT1N0cmluZygpLnNwbGl0KCdUJylbMF07CiAgICAgICAg +ICAgICAgICAgICAgdmFyIHVzZXJuYW1lID0gKERyaXZlRlMuZW52aXJvbiAmJiBEcml2ZUZTLmVu +dmlyb24udXNlcm5hbWUpID8gRHJpdmVGUy5lbnZpcm9uLnVzZXJuYW1lIDogJ1VuYmVrYW5udCc7 +CiAgICAgICAgICAgICAgICAgICAgc25hcC5iZWFyYmVpdGV0Vm9uID0gdXNlcm5hbWU7CiAgICAg +ICAgICAgICAgICAgICAgLy8gVGVtcG9yYWVyZSBQcm9wZXJ0aWVzIGVudGZlcm5lbgogICAgICAg +ICAgICAgICAgICAgIGRlbGV0ZSBzbmFwLl9wcmV2aW91c0luaGFsdDsKICAgICAgICAgICAgICAg +ICAgICBkZWxldGUgc25hcC5fcHJldmlvdXNUaXRlbDsKICAgICAgICAgICAgICAgICAgICBkZWxl +dGUgc25hcC5fbGFzdEVkaXRvclN0YXR1czsKICAgICAgICAgICAgICAgICAgICBuYXZpZ2F0b3Iu +c2VuZEJlYWNvbignL2FwaS93cml0ZScsCiAgICAgICAgICAgICAgICAgICAgICAgIEpTT04uc3Ry +aW5naWZ5KHsgcGF0aDogcGF0aCwgZGF0YTogc25hcCB9KSk7CiAgICAgICAgICAgICAgICB9IGNh +dGNoKGUpIHt9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgLy8gTG9jayBmcmVpZ2ViZW4gZmFs +bHMgYWt0aXYKICAgICAgICAgICAgaWYgKERyaXZlRWRpdG9yLl9sb2NrZWREb2NJZCkgewogICAg +ICAgICAgICAgICAgbmF2aWdhdG9yLnNlbmRCZWFjb24oJy9hcGkvdW5sb2NrJywKICAgICAgICAg +ICAgICAgICAgICBKU09OLnN0cmluZ2lmeSh7IGRvY0lkOiBEcml2ZUVkaXRvci5fbG9ja2VkRG9j +SWQgfSkpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIC8vIFNlcnZlciBoZXJ1bnRlcmZhaHJl +biAtIFRhYiB3aXJkIGdlc2NobG9zc2VuCiAgICAgICAgICAgIG5hdmlnYXRvci5zZW5kQmVhY29u +KCcvYXBpL3NodXRkb3duJywgJ3t9Jyk7CiAgICAgICAgfQogICAgfSk7CgogICAgLy8gSGVhcnRi +ZWF0OiBXZWIgV29ya2VyIGZ1ZXIgenV2ZXJsYWVzc2lnZSBIZWFydGJlYXRzIGF1Y2ggYmVpIEJh +Y2tncm91bmQtVGFicy4KICAgIC8vIEJyb3dzZXIgZHJvc3NlbG4gc2V0SW50ZXJ2YWwgaW0gTWFp +bi1UaHJlYWQgYXVmIH42MHMgYmVpIEJhY2tncm91bmQtVGFicywKICAgIC8vIGFiZXIgV2ViIFdv +cmtlciBzaW5kIGRhdm9uIE5JQ0hUIGJldHJvZmZlbiB1bmQgbGF1ZmVuIGltbWVyIG1pdCB2b2xs +ZXIgRnJlcXVlbnouCiAgICAvLyBTZXJ2ZXItVGltZW91dDogMzAgTWludXRlbiAoMTgwMHMpLiBI +ZWFydGJlYXQgd2lyZCBudXIgZ2VzZW5kZXQgd2VubiBkZXIgVGFiCiAgICAvLyBzaWNodGJhciBp +c3QgLSBiZWkgdW5zaWNodGJhcmVtIFRhYiBsYWV1ZnQgZGVyIFNlcnZlci1UaW1lciB3ZWl0ZXIu +CiAgICAvLyAxIE1pbnV0ZSB2b3IgQWJsYXVmOiBJbmZvLU1vZGFsIG1pdCBDb3VudGRvd24uCiAg +ICB2YXIgaGVhcnRiZWF0RmFpbENvdW50ID0gMDsKICAgIHZhciBfdGltZW91dFdhcm5pbmdTaG93 +biA9IGZhbHNlOwogICAgY29uc3QgaGVhcnRiZWF0V29ya2VyQ29kZSA9IGAKICAgICAgICBzZXRJ +bnRlcnZhbCgoKSA9PiB7IHNlbGYucG9zdE1lc3NhZ2UoJ2hlYXJ0YmVhdCcpOyB9LCA1MDAwKTsK +ICAgICAgICBzZWxmLnBvc3RNZXNzYWdlKCdoZWFydGJlYXQnKTsKICAgIGA7CiAgICBjb25zdCBo +ZWFydGJlYXRCbG9iID0gbmV3IEJsb2IoW2hlYXJ0YmVhdFdvcmtlckNvZGVdLCB7IHR5cGU6ICdh +cHBsaWNhdGlvbi9qYXZhc2NyaXB0JyB9KTsKICAgIGNvbnN0IGhlYXJ0YmVhdFdvcmtlciA9IG5l +dyBXb3JrZXIoVVJMLmNyZWF0ZU9iamVjdFVSTChoZWFydGJlYXRCbG9iKSk7CiAgICBoZWFydGJl +YXRXb3JrZXIub25tZXNzYWdlID0gYXN5bmMgKCkgPT4gewogICAgICAgIC8vIEhlYXJ0YmVhdCBu +dXIgc2VuZGVuIHdlbm4gVGFiIHNpY2h0YmFyIGlzdC4KICAgICAgICAvLyBCZWkgdW5zaWNodGJh +cmVtIFRhYjogU2VydmVyLVRpbWVyIGxhZXVmdCB3ZWl0ZXIgKGdld3VlbnNjaHRlcyBWZXJoYWx0 +ZW4pLgogICAgICAgIC8vIEF1c25haG1lOiBXZW5uIGRlciBUYWIgZ2VyYWRlIHNpY2h0YmFyIHdp +cmQsIHNvZm9ydCBIZWFydGJlYXQgc2VuZGVuCiAgICAgICAgLy8gdW0gU2VydmVyLVRpbWVyIHp1 +cnVlY2t6dXNldHplbi4KICAgICAgICBpZiAoZG9jdW1lbnQuaGlkZGVuKSByZXR1cm47CiAgICAg +ICAgdHJ5IHsKICAgICAgICAgICAgdmFyIHJlc3AgPSBhd2FpdCBmZXRjaCgnL2FwaS9oZWFydGJl +YXQnLCB7IG1ldGhvZDogJ1BPU1QnIH0pOwogICAgICAgICAgICB2YXIgZGF0YSA9IGF3YWl0IHJl +c3AuanNvbigpOwogICAgICAgICAgICBoZWFydGJlYXRGYWlsQ291bnQgPSAwOwogICAgICAgICAg +ICAvLyBXYXJudW5nIHp1cnVlY2tzZXR6ZW4gd2VubiBUaW1lciB3aWVkZXIgZnJpc2NoCiAgICAg +ICAgICAgIGlmIChfdGltZW91dFdhcm5pbmdTaG93biAmJiAhZGF0YS53YXJuaW5nKSB7CiAgICAg +ICAgICAgICAgICBfdGltZW91dFdhcm5pbmdTaG93biA9IGZhbHNlOwogICAgICAgICAgICAgICAg +X2hpZGVTZXJ2ZXJUaW1lb3V0V2FybmluZygpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIC8v +IDEgTWludXRlIHZvciBUaW1lb3V0OiBNb2RhbCArIEF1dG8tU2F2ZQogICAgICAgICAgICBpZiAo +ZGF0YS5yZW1haW5pbmdTZWNvbmRzICE9PSB1bmRlZmluZWQgJiYgZGF0YS5yZW1haW5pbmdTZWNv +bmRzIDw9IDYwICYmICFfdGltZW91dFdhcm5pbmdTaG93bikgewogICAgICAgICAgICAgICAgX3Rp +bWVvdXRXYXJuaW5nU2hvd24gPSB0cnVlOwogICAgICAgICAgICAgICAgdmFyIHNhdmVkID0gYXdh +aXQgX2VtZXJnZW5jeVNhdmVEcmFmdCgpOwogICAgICAgICAgICAgICAgX3Nob3dTZXJ2ZXJUaW1l +b3V0V2FybmluZyhkYXRhLnJlbWFpbmluZ1NlY29uZHMpOwogICAgICAgICAgICAgICAgaWYgKHNh +dmVkKSB7CiAgICAgICAgICAgICAgICAgICAgc2hvd1RvYXN0KCdBcnRpa2VsIGF1dG9tYXRpc2No +IGFscyBFbnR3dXJmIGdlc3BlaWNoZXJ0JywgJ2luZm8nLCA1MDAwKTsKICAgICAgICAgICAgICAg +IH0KICAgICAgICAgICAgfQogICAgICAgIH0gY2F0Y2goZSkgewogICAgICAgICAgICBoZWFydGJl +YXRGYWlsQ291bnQrKzsKICAgICAgICAgICAgLy8gTmFjaCA2IGZlaGxnZXNjaGxhZ2VuZW4gSGVh +cnRiZWF0cyAoMzBzKTogV2FybnVuZyArIGxvY2FsU3RvcmFnZS1CYWNrdXAKICAgICAgICAgICAg +aWYgKGhlYXJ0YmVhdEZhaWxDb3VudCA9PT0gNiAmJiBEcml2ZUVkaXRvci5jdXJyZW50RG9jKSB7 +CiAgICAgICAgICAgICAgICB2YXIgc25hcCA9IF9nYXRoZXJFZGl0b3JTbmFwc2hvdCgpOwogICAg +ICAgICAgICAgICAgaWYgKHNuYXApIHsKICAgICAgICAgICAgICAgICAgICB0cnkgewogICAgICAg +ICAgICAgICAgICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgnZHJpdmUtcmVzdW1lLWRvYycs +IEpTT04uc3RyaW5naWZ5KHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvY0lkOiBzbmFw +LmlkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgdGl0ZWw6IHNuYXAudGl0ZWwsCiAgICAg +ICAgICAgICAgICAgICAgICAgICAgICBrYXRlZ29yaWU6IHNuYXAua2F0ZWdvcmllLAogICAgICAg +ICAgICAgICAgICAgICAgICAgICAgdGltZXN0YW1wOiBuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCks +CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc05ldzogRHJpdmVFZGl0b3IuaXNOZXcKICAg +ICAgICAgICAgICAgICAgICAgICAgfSkpOwogICAgICAgICAgICAgICAgICAgIH0gY2F0Y2goZXgp +IHt9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBzaG93VG9hc3QoJ1NlcnZlciBu +aWNodCBlcnJlaWNoYmFyIC0gRW50d3VyZiBsb2thbCBnZXNpY2hlcnQnLCAnd2FybmluZycsIDgw +MDApOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfTsKCiAgICAvLyBXZW5uIFRhYiB3aWVk +ZXIgc2ljaHRiYXIgd2lyZDogc29mb3J0IEhlYXJ0YmVhdCBzZW5kZW4gdW0gU2VydmVyLVRpbWVy +CiAgICAvLyB6dXJ1ZWNrenVzZXR6ZW4gKFVzZXIgaXN0IHp1cnVlY2sgaW0gRFJJVkUtVGFiKQog +ICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigndmlzaWJpbGl0eWNoYW5nZScsIGZ1bmN0aW9u +KCkgewogICAgICAgIGlmICghZG9jdW1lbnQuaGlkZGVuICYmIERyaXZlRlMubW9kZSA9PT0gJ3Nl +cnZlcicpIHsKICAgICAgICAgICAgX3RpbWVvdXRXYXJuaW5nU2hvd24gPSBmYWxzZTsKICAgICAg +ICAgICAgX2hpZGVTZXJ2ZXJUaW1lb3V0V2FybmluZygpOwogICAgICAgICAgICBmZXRjaCgnL2Fw +aS9oZWFydGJlYXQnLCB7IG1ldGhvZDogJ1BPU1QnIH0pLmNhdGNoKGZ1bmN0aW9uKCkge30pOwog +ICAgICAgIH0KICAgIH0pOwoKICAgIC8vIEF1dG9tYXRpc2NoIHZlcmJpbmRlbiAtIFNlcnZlci1N +b2R1cyB3aXJkIGJldm9yenVndAogICAgYXdhaXQgRHJpdmVGUy5jb25uZWN0KCk7CgogICAgLy8g +V2llZGVyYXVmbmFobWU6IFBydWVmZW4gb2IgYmVpbSBsZXR6dGVuIE1hbCBlaW4gQXJ0aWtlbCBv +ZmZlbiB3YXIKICAgIHRyeSB7CiAgICAgICAgdmFyIHJlc3VtZVJhdyA9IGxvY2FsU3RvcmFnZS5n +ZXRJdGVtKCdkcml2ZS1yZXN1bWUtZG9jJyk7CiAgICAgICAgaWYgKHJlc3VtZVJhdykgewogICAg +ICAgICAgICB2YXIgcmVzdW1lID0gSlNPTi5wYXJzZShyZXN1bWVSYXcpOwogICAgICAgICAgICAv +LyBOdXIgYW5iaWV0ZW4gd2VubiB3ZW5pZ2VyIGFscyAyNGggYWx0CiAgICAgICAgICAgIHZhciBy +ZXN1bWVBZ2UgPSBEYXRlLm5vdygpIC0gbmV3IERhdGUocmVzdW1lLnRpbWVzdGFtcCkuZ2V0VGlt +ZSgpOwogICAgICAgICAgICBpZiAocmVzdW1lQWdlIDwgMjQgKiA2MCAqIDYwICogMTAwMCAmJiBy +ZXN1bWUuZG9jSWQpIHsKICAgICAgICAgICAgICAgIGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKCdk +cml2ZS1yZXN1bWUtZG9jJyk7CiAgICAgICAgICAgICAgICAvLyBLdXJ6IHdhcnRlbiBiaXMgUG9y +dGFsIGdlcmVuZGVydCBpc3QKICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7 +CiAgICAgICAgICAgICAgICAgICAgdmFyIGJhbm5lciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQo +J2RpdicpOwogICAgICAgICAgICAgICAgICAgIGJhbm5lci5zdHlsZS5jc3NUZXh0ID0gJ3Bvc2l0 +aW9uOmZpeGVkO2JvdHRvbToyNHB4O3JpZ2h0OjI0cHg7ei1pbmRleDoxMDUwMDtiYWNrZ3JvdW5k +OnZhcigtLWJnLWNhcmQpO2JvcmRlcjoxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG9yKTtib3Jk +ZXItbGVmdDo0cHggc29saWQgIzM0OThkYjtib3JkZXItcmFkaXVzOjhweDtwYWRkaW5nOjE2cHgg +MjBweDttYXgtd2lkdGg6NDAwcHg7Ym94LXNoYWRvdzowIDhweCAzMnB4IHJnYmEoMCwwLDAsMC4x +NSk7YW5pbWF0aW9uOnNsaWRlRG93biAuM3MgZWFzZTsnOwogICAgICAgICAgICAgICAgICAgIHZh +ciB6ZWl0VGV4dCA9ICcnOwogICAgICAgICAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAg +ICAgICAgICAgIHZhciBkID0gbmV3IERhdGUocmVzdW1lLnRpbWVzdGFtcCk7CiAgICAgICAgICAg +ICAgICAgICAgICAgIHplaXRUZXh0ID0gJyAoenVsZXR6dCAnICsgZC50b0xvY2FsZURhdGVTdHJp +bmcoJ2RlLURFJykgKyAnLCAnICsgZC50b0xvY2FsZVRpbWVTdHJpbmcoJ2RlLURFJywge2hvdXI6 +JzItZGlnaXQnLG1pbnV0ZTonMi1kaWdpdCd9KSArICcpJzsKICAgICAgICAgICAgICAgICAgICB9 +IGNhdGNoKGUpIHt9CiAgICAgICAgICAgICAgICAgICAgYmFubmVyLmlubmVySFRNTCA9CiAgICAg +ICAgICAgICAgICAgICAgICAgICc8ZGl2IHN0eWxlPSJjb2xvcjp2YXIoLS10ZXh0LWhlYWRpbmcp +O2ZvbnQtd2VpZ2h0OjYwMDttYXJnaW4tYm90dG9tOjZweDsiPkFydGlrZWwgZm9ydHNldHplbj88 +L2Rpdj4nICsKICAgICAgICAgICAgICAgICAgICAgICAgJzxkaXYgc3R5bGU9ImNvbG9yOnZhcigt +LXRleHQtcHJpbWFyeSk7Zm9udC1zaXplOjEzcHg7bGluZS1oZWlnaHQ6MS42O21hcmdpbi1ib3R0 +b206MTJweDsiPicgKwogICAgICAgICAgICAgICAgICAgICAgICAgICAgJ0R1IGhhc3QgenVsZXR6 +dCBhbiA8c3Ryb25nPicgKyAocmVzdW1lLnRpdGVsIHx8ICdlaW5lbSBBcnRpa2VsJykgKyAnPC9z +dHJvbmc+IGdlYXJiZWl0ZXQnICsgemVpdFRleHQgKyAnLicgKwogICAgICAgICAgICAgICAgICAg +ICAgICAnPC9kaXY+JyArCiAgICAgICAgICAgICAgICAgICAgICAgICc8ZGl2IHN0eWxlPSJkaXNw +bGF5OmZsZXg7Z2FwOjhweDtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1lbmQ7Ij4nICsKICAgICAgICAg +ICAgICAgICAgICAgICAgICAgICc8YnV0dG9uIGlkPSJyZXN1bWVEaXNtaXNzIiBzdHlsZT0icGFk +ZGluZzo2cHggMTRweDtib3JkZXItcmFkaXVzOjRweDtib3JkZXI6MXB4IHNvbGlkIHZhcigtLWJv +cmRlci1jb2xvcik7YmFja2dyb3VuZDp2YXIoLS1iZy1jYXJkKTtjb2xvcjp2YXIoLS10ZXh0LXNl +Y29uZGFyeSk7Y3Vyc29yOnBvaW50ZXI7Zm9udC1zaXplOjEzcHg7Ij5OZWluIGRhbmtlPC9idXR0 +b24+JyArCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnPGJ1dHRvbiBpZD0icmVzdW1lT3Bl +biIgc3R5bGU9InBhZGRpbmc6NnB4IDE0cHg7Ym9yZGVyLXJhZGl1czo0cHg7Ym9yZGVyOm5vbmU7 +YmFja2dyb3VuZDojMzQ5OGRiO2NvbG9yOndoaXRlO2N1cnNvcjpwb2ludGVyO2ZvbnQtd2VpZ2h0 +OjYwMDtmb250LXNpemU6MTNweDsiPldlaXRlcmFyYmVpdGVuPC9idXR0b24+JyArCiAgICAgICAg +ICAgICAgICAgICAgICAgICc8L2Rpdj4nOwogICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmJv +ZHkuYXBwZW5kQ2hpbGQoYmFubmVyKTsKICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRF +bGVtZW50QnlJZCgncmVzdW1lRGlzbWlzcycpLm9uY2xpY2sgPSBmdW5jdGlvbigpIHsgYmFubmVy +LnJlbW92ZSgpOyB9OwogICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlk +KCdyZXN1bWVPcGVuJykub25jbGljayA9IGFzeW5jIGZ1bmN0aW9uKCkgewogICAgICAgICAgICAg +ICAgICAgICAgICBiYW5uZXIucmVtb3ZlKCk7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChy +ZXN1bWUuaXNOZXcpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIE5ldWVuIEFydGlr +ZWwgd2FyIG5vY2ggbmljaHQgZ2VzcGVpY2hlcnQgLSB6dW0gRXJzdGVsbGVuIG9lZmZuZW4KICAg +ICAgICAgICAgICAgICAgICAgICAgICAgIERyaXZlRWRpdG9yLmNyZWF0ZU5ldygpOwogICAgICAg +ICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8g +QmVzdGVoZW5kZW4gQXJ0aWtlbCBpbSBFZGl0b3Igb2VmZm5lbgogICAgICAgICAgICAgICAgICAg +ICAgICAgICAgYXdhaXQgRHJpdmVQb3J0YWwuc2VsZWN0RG9jdW1lbnQocmVzdW1lLmRvY0lkKTsK +ICAgICAgICAgICAgICAgICAgICAgICAgICAgIERyaXZlUG9ydGFsLmhpZ2hsaWdodEl0ZW0ocmVz +dW1lLmRvY0lkKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIERyaXZlRWRpdG9yLmVkaXQo +cmVzdW1lLmRvY0lkKTsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAg +ICAgIH07CiAgICAgICAgICAgICAgICAgICAgLy8gQXV0by1EaXNtaXNzIG5hY2ggMzAgU2VrdW5k +ZW4KICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeyBpZiAoYmFubmVy +LnBhcmVudE5vZGUpIGJhbm5lci5yZW1vdmUoKTsgfSwgMzAwMDApOwogICAgICAgICAgICAgICAg +fSwgMTUwMCk7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICBsb2NhbFN0b3Jh +Z2UucmVtb3ZlSXRlbSgnZHJpdmUtcmVzdW1lLWRvYycpOwogICAgICAgICAgICB9CiAgICAgICAg +fQogICAgfSBjYXRjaChlKSB7CiAgICAgICAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oJ2RyaXZl +LXJlc3VtZS1kb2MnKTsKICAgIH0KfSk7Cjwvc2NyaXB0PgoKPC9ib2R5Pgo8L2h0bWw+Cg== +### FILE: server.ps1 | 51378 +IyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 +PT09PT09PT09PT09PT09PT09PT09PQojIEQuUi5JLlYuRS4gUG9ydGFsIHYxLjAgLSBMb2thbGVy +IEhUVFAtU2VydmVyCiMgUG93ZXJTaGVsbC1iYXNpZXJ0IC0gS2VpbmUgSW5zdGFsbGF0aW9uIG5v +ZXRpZwojIFVudGVyc3R1ZXR6dDogU3RhdGlzY2hlIERhdGVpZW4gKyBBUEkgKExlc2VuLCBTY2hy +ZWliZW4sIExvZXNjaGVuLCBVcGxvYWQpCiMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 +PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIwojIFNpY2hl +cmhlaXRzYXJjaGl0ZWt0dXI6CiMgICAtIEF1dGhlbnRpZml6aWVydW5nOiAgJGVudjpVU0VSTkFN +RSBhdXMgV2luZG93cy1TZXNzaW9uIChuaWNodCBjbGllbnRzZWl0aWcgbWFuaXB1bGllcmJhcikK +IyAgIC0gQXV0b3Jpc2llcnVuZzogICAgICBTZXJ2ZXJzZWl0aWcgdmlhIFRlc3QtU3VwZXJVc2Vy +IC8gVGVzdC1SZXZpZXdlciB2b3IgamVkZXIgQWt0aW9uCiMgICAtIFBmYWR2YWxpZGllcnVuZzog +ICAgUmVzb2x2ZS1TYWZlUGF0aCgpIGdlZ2VuIFBhdGgtVHJhdmVyc2FsIChhbGxlIEFQSS1QZmFk +ZSkKIyAgIC0gR292ZXJuYW5jZS1TY2h1dHo6ICBnb3Zlcm5hbmNlLmpzb24gQUVTLTI1Ni12ZXJz +Y2hsdWVzc2VsdCwgbnVyIHVlYmVyIC9hcGkvZ292ZXJuYW5jZSBhZW5kZXJiYXIKIyAgIC0gRGF0 +ZWlzY2h1dHo6ICAgICAgICBSZWFkLU9ubHktQXR0cmlidXRlIGF1ZiBhbGxlbiBKU09OLURhdGVp +ZW4gKGF1ZmdlaG9iZW4gbnVyIHdhZWhyZW5kIFNjaHJlaWJ2b3JnYW5nKQojICAgLSBOZXR6d2Vy +azogICAgICAgICAgIE51ciBsb2NhbGhvc3Q6e1BvcnR9LCBrZWluIGV4dGVybmVyIFp1Z3JpZmYg +bW9lZ2xpY2gKIyAgIC0gTG9ja2luZzogICAgICAgICAgICBQZXNzaW1pc3RpYyBMb2NraW5nIG1p +dCAxMC1NaW4tVGltZW91dCBnZWdlbiBnbGVpY2h6ZWl0aWdlIEJlYXJiZWl0dW5nCiMKIyBBUEkt +RW5kcHVua3RlIHVuZCBCZXJlY2h0aWd1bmdlbjoKIyAgIEdFVCAgL2FwaS9lbnZpcm9uICAgICAg +LSBPZWZmZW50bGljaCAoZ2lidCBXaW5kb3dzLUJlbnV0emVyaW5mbyB6dXJ1ZWNrKQojICAgR0VU +ICAvYXBpL3NjYW4gICAgICAgICAtIE9lZmZlbnRsaWNoIChsaXN0ZXQgRG9rdW1lbnRlKQojICAg +R0VUICAvYXBpL2dvdmVybmFuY2UgICAtIE9lZmZlbnRsaWNoIChHb3Zlcm5hbmNlLURhdGVuICsg +YWt0dWVsbGUgUm9sbGUpCiMgICBHRVQgIC9hcGkvbG9ja3MgICAgICAgIC0gT2VmZmVudGxpY2gg +KGFrdGl2ZSBTcGVycmVuKQojICAgUE9TVCAvYXBpL3dyaXRlICAgICAgICAtIEF1dGhlbnRpZml6 +aWVydDsgU3RhdHVzICJGcmVpZ2VnZWJlbiIvIkFiZ2VsZWhudCIgbnVyIGZ1ZXIgUmV2aWV3ZXIv +U3VwZXJVc2VyCiMgICBQT1NUIC9hcGkvZGVsZXRlICAgICAgIC0gQXV0aGVudGlmaXppZXJ0OyBl +cmZvcmRlcnQgTlctS2VubnVuZy1CZXN0YWV0aWd1bmcsIEF1ZGl0LUxvZwojICAgUE9TVCAvYXBp +L3VwbG9hZCAgICAgICAtIEF1dGhlbnRpZml6aWVydDsgUGZhZHZhbGlkaWVydW5nIHZpYSBSZXNv +bHZlLVNhZmVQYXRoCiMgICBQT1NUIC9hcGkvZ292ZXJuYW5jZSAgIC0gTnVyIFN1cGVyVXNlcgoj +ICAgUE9TVCAvYXBpL2xvY2sgICAgICAgICAtIEF1dGhlbnRpZml6aWVydDsgUGVzc2ltaXN0aWMg +TG9ja2luZwojICAgUE9TVCAvYXBpL3VubG9jayAgICAgICAtIExvY2stSW5oYWJlciBvZGVyIFN1 +cGVyVXNlcgojICAgUE9TVCAvYXBpL2hlYXJ0YmVhdCAgICAtIE9lZmZlbnRsaWNoIChCcm93c2Vy +LUxlYmVuc3plaWNoZW4pCiMgICBQT1NUIC9hcGkvc2h1dGRvd24gICAgIC0gT2VmZmVudGxpY2gg +KGJlZW5kZXQgU2VydmVyIGJlaSBUYWItU2NobGllc3N1bmcpCgpwYXJhbSgKICAgIFtpbnRdJFBv +cnQgPSA4MDgwLAogICAgW3N0cmluZ10kUm9vdFBhdGggPSAnJwopCgojIFJvb3QtVmVyemVpY2hu +aXM6IEV4cGxpeml0ZXIgUGFyYW1ldGVyIGhhdCBWb3JyYW5nIChmdWVyIGxva2FsZSBLb3BpZSB2 +b20gTmV0emxhdWZ3ZXJrKQokUm9vdCA9IGlmICgkUm9vdFBhdGggLWFuZCAoVGVzdC1QYXRoICRS +b290UGF0aCkpIHsgJFJvb3RQYXRoIH0gZWxzZSB7ICRQU1NjcmlwdFJvb3QgfQokc2NyaXB0OkNv +cnNPcmlnaW4gPSAiaHR0cDovL2xvY2FsaG9zdDokUG9ydCIKCiMgTUlNRS1UeXBlcwokTWltZVR5 +cGVzID0gQHsKICAgICcuaHRtbCcgPSAndGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04JwogICAgJy5j +c3MnICA9ICd0ZXh0L2NzczsgY2hhcnNldD11dGYtOCcKICAgICcuanMnICAgPSAnYXBwbGljYXRp +b24vamF2YXNjcmlwdDsgY2hhcnNldD11dGYtOCcKICAgICcuanNvbicgPSAnYXBwbGljYXRpb24v +anNvbjsgY2hhcnNldD11dGYtOCcKICAgICcucG5nJyAgPSAnaW1hZ2UvcG5nJwogICAgJy5qcGcn +ICA9ICdpbWFnZS9qcGVnJwogICAgJy5qcGVnJyA9ICdpbWFnZS9qcGVnJwogICAgJy5naWYnICA9 +ICdpbWFnZS9naWYnCiAgICAnLnN2ZycgID0gJ2ltYWdlL3N2Zyt4bWwnCiAgICAnLmljbycgID0g +J2ltYWdlL3gtaWNvbicKICAgICcucGRmJyAgPSAnYXBwbGljYXRpb24vcGRmJwogICAgJy5tcDQn +ICA9ICd2aWRlby9tcDQnCiAgICAnLm1wMycgID0gJ2F1ZGlvL21wZWcnCiAgICAnLndlYm0nID0g +J3ZpZGVvL3dlYm0nCiAgICAnLm9nZycgID0gJ2F1ZGlvL29nZycKICAgICcud29mZicgPSAnZm9u +dC93b2ZmJwogICAgJy53b2ZmMic9ICdmb250L3dvZmYyJwogICAgJy5kb2N4JyA9ICdhcHBsaWNh +dGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQud29yZHByb2Nlc3NpbmdtbC5k +b2N1bWVudCcKICAgICcueGxzeCcgPSAnYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9m +ZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwuc2hlZXQnCiAgICAnLnBwdHgnID0gJ2FwcGxpY2F0 +aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5wcmVzZW50YXRpb25tbC5wcmVz +ZW50YXRpb24nCiAgICAnLndhdicgID0gJ2F1ZGlvL3dhdicKICAgICcud2VicCcgPSAnaW1hZ2Uv +d2VicCcKfQoKIyBIaWxmc2Z1bmt0aW9uOiBKU09OLUFudHdvcnQgc2VuZGVuCmZ1bmN0aW9uIEFk +ZC1TZWN1cml0eUhlYWRlcnMoJFJlc3BvbnNlKSB7CiAgICAkUmVzcG9uc2UuSGVhZGVycy5BZGQo +IkFjY2Vzcy1Db250cm9sLUFsbG93LU9yaWdpbiIsICRzY3JpcHQ6Q29yc09yaWdpbikKICAgICRS +ZXNwb25zZS5IZWFkZXJzLkFkZCgiWC1Db250ZW50LVR5cGUtT3B0aW9ucyIsICJub3NuaWZmIikK +ICAgICMgU0FNRU9SSUdJTiBzdGF0dCBERU5ZOiBFcmxhdWJ0IGlmcmFtZS1FaW5iZXR0dW5nIHZv +biBQREZzIGlubmVyaGFsYiBkZXIgZWlnZW5lbiBTZWl0ZQogICAgJFJlc3BvbnNlLkhlYWRlcnMu +QWRkKCJYLUZyYW1lLU9wdGlvbnMiLCAiU0FNRU9SSUdJTiIpCn0KCmZ1bmN0aW9uIFNlbmQtSnNv +bigkUmVzcG9uc2UsICREYXRhLCAkU3RhdHVzQ29kZSA9IDIwMCkgewogICAgdHJ5IHsKICAgICAg +ICAkSnNvbiA9ICREYXRhIHwgQ29udmVydFRvLUpzb24gLURlcHRoIDEwIC1Db21wcmVzcwogICAg +ICAgICRCeXRlcyA9IFtUZXh0LkVuY29kaW5nXTo6VVRGOC5HZXRCeXRlcygkSnNvbikKICAgICAg +ICAkUmVzcG9uc2UuU3RhdHVzQ29kZSA9ICRTdGF0dXNDb2RlCiAgICAgICAgJFJlc3BvbnNlLkNv +bnRlbnRUeXBlID0gJ2FwcGxpY2F0aW9uL2pzb247IGNoYXJzZXQ9dXRmLTgnCiAgICAgICAgQWRk +LVNlY3VyaXR5SGVhZGVycyAkUmVzcG9uc2UKICAgICAgICAkUmVzcG9uc2UuQ29udGVudExlbmd0 +aDY0ID0gJEJ5dGVzLkxlbmd0aAogICAgICAgICRSZXNwb25zZS5PdXRwdXRTdHJlYW0uV3JpdGUo +JEJ5dGVzLCAwLCAkQnl0ZXMuTGVuZ3RoKQogICAgICAgICRSZXNwb25zZS5PdXRwdXRTdHJlYW0u +Rmx1c2goKQogICAgfSBjYXRjaCB7CiAgICAgICAgV3JpdGUtSG9zdCAiICBFUlIgIFNlbmQtSnNv +bjogJCgkXy5FeGNlcHRpb24uTWVzc2FnZSkiIC1Gb3JlZ3JvdW5kQ29sb3IgUmVkCiAgICB9Cn0K +CiMgSGlsZnNmdW5rdGlvbjogUmVxdWVzdC1Cb2R5IGxlc2VuIChpbW1lciBVVEYtOCwgZGEgQnJv +d3NlciBVVEYtOCBzZW5kZXQpCiMgTGltaXQ6IDEwIE1CIGZ1ZXIgSlNPTi1SZXF1ZXN0cyAodmVy +aGluZGVydCBTcGVpY2hlcmVyc2Nob2VwZnVuZyBkdXJjaCB1ZWJlcmdyb3NzZSBQYXlsb2FkcykK +JHNjcmlwdDpNYXhCb2R5Qnl0ZXMgPSAxMCAqIDEwMjQgKiAxMDI0CgpmdW5jdGlvbiBSZWFkLUJv +ZHkoJFJlcXVlc3QpIHsKICAgIGlmICgkUmVxdWVzdC5Db250ZW50TGVuZ3RoNjQgLWd0ICRzY3Jp +cHQ6TWF4Qm9keUJ5dGVzKSB7CiAgICAgICAgdGhyb3cgIlJlcXVlc3QtQm9keSB6dSBncm9zcyAo +bWF4LiAkKFtNYXRoXTo6Um91bmQoJHNjcmlwdDpNYXhCb2R5Qnl0ZXMgLyAxMDI0IC8gMTAyNCkp +IE1CKSIKICAgIH0KICAgICRSZWFkZXIgPSBOZXctT2JqZWN0IFN5c3RlbS5JTy5TdHJlYW1SZWFk +ZXIoJFJlcXVlc3QuSW5wdXRTdHJlYW0sIFtUZXh0LkVuY29kaW5nXTo6VVRGOCkKICAgICRCb2R5 +ID0gJFJlYWRlci5SZWFkVG9FbmQoKQogICAgJFJlYWRlci5DbG9zZSgpCiAgICByZXR1cm4gJEJv +ZHkKfQoKIyBQZmFkdmFsaWRpZXJ1bmc6IFZlcmhpbmRlcnQgUGF0aC1UcmF2ZXJzYWwtQW5ncmlm +ZmUgKC4uLyBvZGVyIGFic29sdXRlIFBmYWRlKS4KIyBHZXRGdWxsUGF0aCgpIGthbm9uaXNpZXJ0 +IGRlbiBQZmFkIChsb2VzdCAuLi8gYXVmKSwgU3RhcnRzV2l0aCgpIHBydWVmdCBDb250YWlubWVu +dC4KIyBHaWJ0ICRudWxsIHp1cnVlY2sgYmVpIHVuZ3VlbHRpZ2VtIFBmYWQgLSBBdWZydWZlciBt +dXNzIGRhcmF1ZiBwcnVlZmVuLgojIFdpcmQgaW4gL2FwaS93cml0ZSwgL2FwaS9kZWxldGUsIC9h +cGkvdXBsb2FkIHZvciBqZWRlbSBEYXRlaXp1Z3JpZmYgYXVmZ2VydWZlbi4KZnVuY3Rpb24gUmVz +b2x2ZS1TYWZlUGF0aCgkUmVsUGF0aCkgewogICAgJEZ1bGwgPSBbSU8uUGF0aF06OkdldEZ1bGxQ +YXRoKChKb2luLVBhdGggJFJvb3QgJFJlbFBhdGgpKQogICAgaWYgKC1ub3QgJEZ1bGwuU3RhcnRz +V2l0aCgkUm9vdCkpIHsgcmV0dXJuICRudWxsIH0KICAgIHJldHVybiAkRnVsbAp9CgojIEhpbGZz +ZnVua3Rpb246IFNjaHJlaWJzY2h1dHogYXVmaGViZW4gdm9yIFNjaHJlaWJ2b3JnYW5nCmZ1bmN0 +aW9uIFVucHJvdGVjdC1GaWxlKCRQYXRoKSB7CiAgICBpZiAoVGVzdC1QYXRoICRQYXRoKSB7CiAg +ICAgICAgJGl0ZW0gPSBHZXQtSXRlbSAkUGF0aCAtRm9yY2UKICAgICAgICBpZiAoJGl0ZW0uQXR0 +cmlidXRlcyAtYmFuZCBbSU8uRmlsZUF0dHJpYnV0ZXNdOjpSZWFkT25seSkgewogICAgICAgICAg +ICAkaXRlbS5BdHRyaWJ1dGVzID0gJGl0ZW0uQXR0cmlidXRlcyAtYnhvciBbSU8uRmlsZUF0dHJp +YnV0ZXNdOjpSZWFkT25seQogICAgICAgIH0KICAgIH0KfQoKIyBIaWxmc2Z1bmt0aW9uOiBTY2hy +ZWlic2NodXR6IHdpZWRlciBzZXR6ZW4KZnVuY3Rpb24gUHJvdGVjdC1GaWxlKCRQYXRoKSB7CiAg +ICBpZiAoVGVzdC1QYXRoICRQYXRoKSB7CiAgICAgICAgJGl0ZW0gPSBHZXQtSXRlbSAkUGF0aCAt +Rm9yY2UKICAgICAgICAkaXRlbS5BdHRyaWJ1dGVzID0gJGl0ZW0uQXR0cmlidXRlcyAtYm9yIFtJ +Ty5GaWxlQXR0cmlidXRlc106OlJlYWRPbmx5CiAgICB9Cn0KCiMgLS0tLSBBRVMtMjU2LVZlcnNj +aGx1ZXNzZWx1bmcgZnVlciBnb3Zlcm5hbmNlLmpzb24gLS0tLQojIFNjaHV0emtvbnplcHQ6IGdv +dmVybmFuY2UuanNvbiBlbnRoYWVsdCBSb2xsZW56dXdlaXN1bmdlbiAoU3VwZXJVc2VyLCBSZXZp +ZXdlcikuCiMgRGllIERhdGVpIHdpcmQgYmVpbSBlcnN0ZW4gU2VydmVyLVN0YXJ0IGF1dG9tYXRp +c2NoIHZlcnNjaGx1ZXNzZWx0LgojIFNjaHV0enppZWw6IFZlcmhpbmRlcm4sIGRhc3MgUm9sbGVu +c3RydWt0dXJlbiBpbSBEYXRlaXN5c3RlbSBpbSBLbGFydGV4dCBlaW5zZWhiYXIgc2luZC4KIyBF +aW5zY2hyYWVua3VuZzogRGVyIFNjaGx1ZXNzZWwgbGllZ3QgaW0gUXVlbGxjb2RlIC0gZGVyIFNj +aHV0eiByaWNodGV0IHNpY2ggZ2VnZW4KIyBvcHBvcnR1bmlzdGlzY2hlcyBMZXNlbiwgbmljaHQg +Z2VnZW4gQW5ncmVpZmVyIG1pdCBadWdyaWZmIGF1ZiBkZW4gUXVlbGxjb2RlLgojIEFsZ29yaXRo +bXVzOiBBRVMtMjU2LUNCQyBtaXQgUEtDUzctUGFkZGluZywgenVmYWVsbGlnZXIgSVYgcHJvIFZl +cnNjaGx1ZXNzZWx1bmcuCiMgRm9ybWF0OiAiRFJJVkUtRU5DOiIgKyBCYXNlNjQoSVZbMTYgQnl0 +ZXNdICsgQ2lwaGVydGV4dCkKIyBTY2hsdWVzc2VsICgzMiBCeXRlcyA9IEFFUy0yNTYpLiBJZGVu +dGlzY2ggaW4gc2VydmVyLnBzMSB1bmQgc2VydmVyLnB5Lgokc2NyaXB0OkdvdkFlc0tleSA9IFtD +b252ZXJ0XTo6RnJvbUJhc2U2NFN0cmluZygiUkZKSlZrVXRkak11TmkxSGIzWmxjbTVoYm1ObExV +dGxlUzB5TURJMklTRT0iKQokc2NyaXB0OkdvdkVuY1ByZWZpeCA9ICJEUklWRS1FTkM6IgoKZnVu +Y3Rpb24gUHJvdGVjdC1Hb3Zlcm5hbmNlRGF0YShbc3RyaW5nXSRKc29uVGV4dCkgewogICAgJEFl +cyA9IFtTZWN1cml0eS5DcnlwdG9ncmFwaHkuQWVzXTo6Q3JlYXRlKCkKICAgICRBZXMuS2V5ID0g +JHNjcmlwdDpHb3ZBZXNLZXkKICAgICRBZXMuR2VuZXJhdGVJVigpCiAgICAkQWVzLk1vZGUgPSBb +U2VjdXJpdHkuQ3J5cHRvZ3JhcGh5LkNpcGhlck1vZGVdOjpDQkMKICAgICRBZXMuUGFkZGluZyA9 +IFtTZWN1cml0eS5DcnlwdG9ncmFwaHkuUGFkZGluZ01vZGVdOjpQS0NTNwogICAgJEVuYyA9ICRB +ZXMuQ3JlYXRlRW5jcnlwdG9yKCkKICAgICRQbGFpbiA9IFtUZXh0LkVuY29kaW5nXTo6VVRGOC5H +ZXRCeXRlcygkSnNvblRleHQpCiAgICAkQ2lwaGVyID0gJEVuYy5UcmFuc2Zvcm1GaW5hbEJsb2Nr +KCRQbGFpbiwgMCwgJFBsYWluLkxlbmd0aCkKICAgICRDb21iaW5lZCA9IE5ldy1PYmplY3QgYnl0 +ZVtdICgkQWVzLklWLkxlbmd0aCArICRDaXBoZXIuTGVuZ3RoKQogICAgW0FycmF5XTo6Q29weSgk +QWVzLklWLCAwLCAkQ29tYmluZWQsIDAsICRBZXMuSVYuTGVuZ3RoKQogICAgW0FycmF5XTo6Q29w +eSgkQ2lwaGVyLCAwLCAkQ29tYmluZWQsICRBZXMuSVYuTGVuZ3RoLCAkQ2lwaGVyLkxlbmd0aCkK +ICAgICRBZXMuRGlzcG9zZSgpCiAgICByZXR1cm4gJHNjcmlwdDpHb3ZFbmNQcmVmaXggKyBbQ29u +dmVydF06OlRvQmFzZTY0U3RyaW5nKCRDb21iaW5lZCkKfQoKZnVuY3Rpb24gVW5wcm90ZWN0LUdv +dmVybmFuY2VEYXRhKFtzdHJpbmddJEVuY1RleHQpIHsKICAgICRCNjQgPSAkRW5jVGV4dC5TdWJz +dHJpbmcoJHNjcmlwdDpHb3ZFbmNQcmVmaXguTGVuZ3RoKQogICAgJENvbWJpbmVkID0gW0NvbnZl +cnRdOjpGcm9tQmFzZTY0U3RyaW5nKCRCNjQpCiAgICAkSVYgPSAkQ29tYmluZWRbMC4uMTVdCiAg +ICAkQ2lwaGVyID0gJENvbWJpbmVkWzE2Li4oJENvbWJpbmVkLkxlbmd0aCAtIDEpXQogICAgJEFl +cyA9IFtTZWN1cml0eS5DcnlwdG9ncmFwaHkuQWVzXTo6Q3JlYXRlKCkKICAgICRBZXMuS2V5ID0g +JHNjcmlwdDpHb3ZBZXNLZXkKICAgICRBZXMuSVYgPSAkSVYKICAgICRBZXMuTW9kZSA9IFtTZWN1 +cml0eS5DcnlwdG9ncmFwaHkuQ2lwaGVyTW9kZV06OkNCQwogICAgJEFlcy5QYWRkaW5nID0gW1Nl +Y3VyaXR5LkNyeXB0b2dyYXBoeS5QYWRkaW5nTW9kZV06OlBLQ1M3CiAgICAkRGVjID0gJEFlcy5D +cmVhdGVEZWNyeXB0b3IoKQogICAgJFBsYWluID0gJERlYy5UcmFuc2Zvcm1GaW5hbEJsb2NrKCRD +aXBoZXIsIDAsICRDaXBoZXIuTGVuZ3RoKQogICAgJEFlcy5EaXNwb3NlKCkKICAgIHJldHVybiBb +VGV4dC5FbmNvZGluZ106OlVURjguR2V0U3RyaW5nKCRQbGFpbikKfQoKIyBIaWxmc2Z1bmt0aW9u +OiBHb3Zlcm5hbmNlLURhdGVuIGxhZGVuIChnZWNhY2h0LCBJbnZhbGlkaWVydW5nIGJlaSBEYXRl +aS1BZW5kZXJ1bmcpCiMgRXJrZW5udCBhdXRvbWF0aXNjaCBLbGFydGV4dC1KU09OIHVuZCB2ZXJz +Y2hsdWVzc2VsdCBlcyBiZWltIGVyc3RlbiBMZXNlbi4KJHNjcmlwdDpHb3ZDYWNoZSA9ICRudWxs +CiRzY3JpcHQ6R292Q2FjaGVUaW1lID0gW0RhdGVUaW1lXTo6TWluVmFsdWUKCmZ1bmN0aW9uIEdl +dC1Hb3Zlcm5hbmNlIHsKICAgICRHb3ZQYXRoID0gSm9pbi1QYXRoICRSb290ICJkYXRhL2dvdmVy +bmFuY2UuanNvbiIKICAgIGlmIChUZXN0LVBhdGggJEdvdlBhdGgpIHsKICAgICAgICAkTGFzdFdy +aXRlID0gKEdldC1JdGVtICRHb3ZQYXRoIC1Gb3JjZSkuTGFzdFdyaXRlVGltZVV0YwogICAgICAg +IGlmICgkc2NyaXB0OkdvdkNhY2hlIC1hbmQgJExhc3RXcml0ZSAtbGUgJHNjcmlwdDpHb3ZDYWNo +ZVRpbWUpIHsKICAgICAgICAgICAgcmV0dXJuICRzY3JpcHQ6R292Q2FjaGUKICAgICAgICB9CiAg +ICAgICAgJFJhdyA9IEdldC1Db250ZW50ICRHb3ZQYXRoIC1SYXcgLUVuY29kaW5nIFVURjgKICAg +ICAgICBpZiAoJFJhdy5TdGFydHNXaXRoKCRzY3JpcHQ6R292RW5jUHJlZml4KSkgewogICAgICAg +ICAgICAkSnNvblRleHQgPSBVbnByb3RlY3QtR292ZXJuYW5jZURhdGEgJFJhdwogICAgICAgIH0g +ZWxzZSB7CiAgICAgICAgICAgICMgS2xhcnRleHQgZXJrYW5udCAtIGF1dG9tYXRpc2NoIHZlcnNj +aGx1ZXNzZWxuIChNaWdyYXRpb24pCiAgICAgICAgICAgICRKc29uVGV4dCA9ICRSYXcKICAgICAg +ICAgICAgJEVuY3J5cHRlZCA9IFByb3RlY3QtR292ZXJuYW5jZURhdGEgJEpzb25UZXh0CiAgICAg +ICAgICAgIFVucHJvdGVjdC1GaWxlICRHb3ZQYXRoCiAgICAgICAgICAgIFtJTy5GaWxlXTo6V3Jp +dGVBbGxUZXh0KCRHb3ZQYXRoLCAkRW5jcnlwdGVkLCBbVGV4dC5VVEY4RW5jb2RpbmddOjpuZXco +JGZhbHNlKSkKICAgICAgICAgICAgUHJvdGVjdC1GaWxlICRHb3ZQYXRoCiAgICAgICAgICAgIFdy +aXRlLUhvc3QgIiAgQ1JZUFQgIGdvdmVybmFuY2UuanNvbiB3dXJkZSB2ZXJzY2hsdWVzc2VsdCAo +QUVTLTI1NikiIC1Gb3JlZ3JvdW5kQ29sb3IgTWFnZW50YQogICAgICAgIH0KICAgICAgICAkc2Ny +aXB0OkdvdkNhY2hlID0gJEpzb25UZXh0IHwgQ29udmVydEZyb20tSnNvbgogICAgICAgICRzY3Jp +cHQ6R292Q2FjaGVUaW1lID0gKEdldC1JdGVtICRHb3ZQYXRoIC1Gb3JjZSkuTGFzdFdyaXRlVGlt +ZVV0YwogICAgICAgIHJldHVybiAkc2NyaXB0OkdvdkNhY2hlCiAgICB9CiAgICByZXR1cm4gJG51 +bGwKfQoKZnVuY3Rpb24gQ2xlYXItR292ZXJuYW5jZUNhY2hlIHsKICAgICRzY3JpcHQ6R292Q2Fj +aGUgPSAkbnVsbAogICAgJHNjcmlwdDpHb3ZDYWNoZVRpbWUgPSBbRGF0ZVRpbWVdOjpNaW5WYWx1 +ZQp9CgpmdW5jdGlvbiBTYXZlLUdvdmVybmFuY2UoJEdvdk9iamVjdCkgewogICAgJEdvdlBhdGgg +PSBKb2luLVBhdGggJFJvb3QgImRhdGEvZ292ZXJuYW5jZS5qc29uIgogICAgJEpzb25Db250ZW50 +ID0gJEdvdk9iamVjdCB8IENvbnZlcnRUby1Kc29uIC1EZXB0aCAyMAogICAgJEVuY3J5cHRlZCA9 +IFByb3RlY3QtR292ZXJuYW5jZURhdGEgJEpzb25Db250ZW50CiAgICBVbnByb3RlY3QtRmlsZSAk +R292UGF0aAogICAgW0lPLkZpbGVdOjpXcml0ZUFsbFRleHQoJEdvdlBhdGgsICRFbmNyeXB0ZWQs +IFtUZXh0LlVURjhFbmNvZGluZ106Om5ldygkZmFsc2UpKQogICAgUHJvdGVjdC1GaWxlICRHb3ZQ +YXRoCiAgICBDbGVhci1Hb3Zlcm5hbmNlQ2FjaGUKfQoKIyBBdXRvcmlzaWVydW5nc3BydWVmdW5n +OiBWZXJnbGVpY2h0ICRlbnY6VVNFUk5BTUUgKyAkZW52OlVTRVJET01BSU4gbWl0IGdvdmVybmFu +Y2UuanNvbi4KIyBGYWxsYmFjazogV2VubiBrZWluZSBnb3Zlcm5hbmNlLmpzb24gZXhpc3RpZXJ0 +LCB3aXJkICR0cnVlIHp1cnVlY2tnZWdlYmVuIChFcnN0aW5iZXRyaWVibmFobWUpLgojIERvbWFl +bmUgIioiIGluIGdvdmVybmFuY2UuanNvbiBiZWRldXRldDogQmVudXR6ZXJuYW1lIHJlaWNodCwg +RG9tYWVuZSB3aXJkIG5pY2h0IGdlcHJ1ZWZ0LgpmdW5jdGlvbiBUZXN0LVN1cGVyVXNlcigkR292 +ZXJuYW5jZSkgewogICAgaWYgKC1ub3QgJEdvdmVybmFuY2UpIHsgcmV0dXJuICR0cnVlIH0gICMg +S2VpbiBHb3Zlcm5hbmNlID0gYWxsZXMgZXJsYXVidAogICAgZm9yZWFjaCAoJHN1IGluICRHb3Zl +cm5hbmNlLnN1cGVyVXNlcnMpIHsKICAgICAgICBpZiAoJHN1LnVzZXJuYW1lIC1lcSAkZW52OlVT +RVJOQU1FKSB7CiAgICAgICAgICAgIGlmICgkc3UuZG9tYWluIC1lcSAnKicgLW9yICRzdS5kb21h +aW4gLWVxICRlbnY6VVNFUkRPTUFJTikgeyByZXR1cm4gJHRydWUgfQogICAgICAgIH0KICAgIH0K +ICAgIHJldHVybiAkZmFsc2UKfQoKIyBGYWNoYXVmc2ljaHQtUHJ1ZWZ1bmc6IFdpZSBUZXN0LVN1 +cGVyVXNlciwgYWJlciBmdWVyIEZhY2hhdWZzaWNodC1Sb2xsZS4KIyBPaG5lIGdvdmVybmFuY2Uu +anNvbjogJGZhbHNlIChrZWluZSBGYWNoYXVmc2ljaHQgb2huZSBleHBsaXppdGUgWnV3ZWlzdW5n +KS4KZnVuY3Rpb24gVGVzdC1GYWNoYXVmc2ljaHQoJEdvdmVybmFuY2UpIHsKICAgIGlmICgtbm90 +ICRHb3Zlcm5hbmNlKSB7IHJldHVybiAkZmFsc2UgfQogICAgZm9yZWFjaCAoJGZhIGluICRHb3Zl +cm5hbmNlLmZhY2hhdWZzaWNodCkgewogICAgICAgIGlmICgkZmEudXNlcm5hbWUgLWVxICRlbnY6 +VVNFUk5BTUUpIHsKICAgICAgICAgICAgaWYgKCRmYS5kb21haW4gLWVxICcqJyAtb3IgJGZhLmRv +bWFpbiAtZXEgJGVudjpVU0VSRE9NQUlOKSB7IHJldHVybiAkdHJ1ZSB9CiAgICAgICAgfQogICAg +fQogICAgcmV0dXJuICRmYWxzZQp9CgojIFJldmlld2VyLVBydWVmdW5nOiBXaWUgVGVzdC1TdXBl +clVzZXIsIGFiZXIgenVzYWV0emxpY2ggS2F0ZWdvcmllLVp1b3JkbnVuZy4KIyBPaG5lIGdvdmVy +bmFuY2UuanNvbjogJGZhbHNlIChrZWluIFJldmlld2VyIG9obmUgZXhwbGl6aXRlIFp1d2Vpc3Vu +ZykuCiMgQXN5bW1ldHJpZSB6dSBUZXN0LVN1cGVyVXNlciBpc3QgYmVhYnNpY2h0aWd0OiBSZXZp +ZXdlci1SZWNodGUgbXVlc3NlbiBleHBsaXppdCB2ZXJnZWJlbiB3ZXJkZW4uCmZ1bmN0aW9uIFRl +c3QtUmV2aWV3ZXIoJEdvdmVybmFuY2UsICRLYXRlZ29yaWUpIHsKICAgIGlmICgtbm90ICRHb3Zl +cm5hbmNlKSB7IHJldHVybiAkZmFsc2UgfQogICAgZm9yZWFjaCAoJHIgaW4gJEdvdmVybmFuY2Uu +cmV2aWV3ZXJzKSB7CiAgICAgICAgaWYgKCRyLnVzZXJuYW1lIC1lcSAkZW52OlVTRVJOQU1FKSB7 +CiAgICAgICAgICAgIGlmICgkci5kb21haW4gLWVxICcqJyAtb3IgJHIuZG9tYWluIC1lcSAkZW52 +OlVTRVJET01BSU4pIHsKICAgICAgICAgICAgICAgIGlmICgkci5rYXRlZ29yaWVuIC1jb250YWlu +cyAkS2F0ZWdvcmllKSB7IHJldHVybiAkdHJ1ZSB9CiAgICAgICAgICAgIH0KICAgICAgICB9CiAg +ICB9CiAgICByZXR1cm4gJGZhbHNlCn0KCiMgUHJvemVzcyBpbSBUYXNrLU1hbmFnZXIgYWxzICJE +UklWRV9Mb2NhbGhvc3QiIHNpY2h0YmFyIG1hY2hlbgokSG9zdC5VSS5SYXdVSS5XaW5kb3dUaXRs +ZSA9ICJEUklWRV9Mb2NhbGhvc3QiCgpXcml0ZS1Ib3N0ICIiCldyaXRlLUhvc3QgIj09PT09PT09 +PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09IiAtRm9yZWdyb3VuZENvbG9yIEN5 +YW4KV3JpdGUtSG9zdCAiICBELlIuSS5WLkUuIFBvcnRhbCB2MS4wIC0gU2VydmVyIiAgICAgICAg +ICAgIC1Gb3JlZ3JvdW5kQ29sb3IgQ3lhbgpXcml0ZS1Ib3N0ICI9PT09PT09PT09PT09PT09PT09 +PT09PT09PT09PT09PT09PT09PT09PT09PSIgLUZvcmVncm91bmRDb2xvciBDeWFuCldyaXRlLUhv +c3QgIiIKV3JpdGUtSG9zdCAiICBPcmRuZXI6ICAkUm9vdCIgLUZvcmVncm91bmRDb2xvciBHcmF5 +CldyaXRlLUhvc3QgIiAgVVJMOiAgICAgaHR0cDovL2xvY2FsaG9zdDokUG9ydCIgICAgICAgICAg +ICAgIC1Gb3JlZ3JvdW5kQ29sb3IgR3JlZW4KV3JpdGUtSG9zdCAiIgpXcml0ZS1Ib3N0ICIgIFp1 +bSBCZWVuZGVuOiBTdHJnK0MgZHJ1ZWNrZW4iICAgICAgICAgICAgICAgICAtRm9yZWdyb3VuZENv +bG9yIFllbGxvdwpXcml0ZS1Ib3N0ICIiCgojIFNjaHJlaWJzY2h1dHogYmVpbSBTdGFydCBhdWZo +ZWJlbiAoZnVlciBkaWUgZ2VzYW10ZSBTZXNzaW9uKQpXcml0ZS1Ib3N0ICIgIFNjaHJlaWJzY2h1 +dHogd2lyZCBhdWZnZWhvYmVuLi4uIiAgICAgICAgICAgICAtRm9yZWdyb3VuZENvbG9yIEdyYXkK +R2V0LUNoaWxkSXRlbSAiJFJvb3RcZGF0YSIgLVJlY3Vyc2UgLUZpbHRlciAiKi5qc29uIiAtRXJy +b3JBY3Rpb24gU2lsZW50bHlDb250aW51ZSB8IEZvckVhY2gtT2JqZWN0IHsgVW5wcm90ZWN0LUZp +bGUgJF8uRnVsbE5hbWUgfQpVbnByb3RlY3QtRmlsZSAoSm9pbi1QYXRoICRSb290ICJpbmRleC5o +dG1sIikKCiMgTGluay1CZXJlaW5pZ3VuZzogQWxsZSA8YT4tVGFncyBpbiBiZXN0ZWhlbmRlbiBB +cnRpa2VsbiBhdWYgdGFyZ2V0PSJfYmxhbmsiIHNldHplbi4KIyBWZXJoaW5kZXJ0LCBkYXNzIGtv +cGllcnRlIExpbmtzIG1pdCB0YXJnZXQ9Il9zZWxmIiBkYXMgUG9ydGFsIHZlcmxhc3Nlbi4KV3Jp +dGUtSG9zdCAiICBMaW5rcyBpbiBBcnRpa2VsbiB3ZXJkZW4gZ2VwcnVlZnQuLi4iICAgICAgICAg +IC1Gb3JlZ3JvdW5kQ29sb3IgR3JheQokTGlua0ZpeENvdW50ID0gMApHZXQtQ2hpbGRJdGVtICIk +Um9vdFxkYXRhIiAtUmVjdXJzZSAtRmlsdGVyICIqLmpzb24iIC1FcnJvckFjdGlvbiBTaWxlbnRs +eUNvbnRpbnVlIHwgRm9yRWFjaC1PYmplY3QgewogICAgdHJ5IHsKICAgICAgICAkSnNvblRleHQg +PSBbSU8uRmlsZV06OlJlYWRBbGxUZXh0KCRfLkZ1bGxOYW1lLCBbVGV4dC5VVEY4RW5jb2Rpbmdd +OjpuZXcoJGZhbHNlKSkKICAgICAgICAjIE51ciBEYXRlaWVuIG1pdCA8YSBocmVmIGJlYXJiZWl0 +ZW4gKFBlcmZvcm1hbmNlOiBKU09OIG9obmUgTGlua3MgdWViZXJzcHJpbmdlbikKICAgICAgICBp +ZiAoJEpzb25UZXh0IC1tYXRjaCAnPGFccytbXj5dKmhyZWYnKSB7CiAgICAgICAgICAgICRDaGFu +Z2VkID0gJGZhbHNlCiAgICAgICAgICAgICMgdGFyZ2V0PSJfc2VsZiIgZHVyY2ggdGFyZ2V0PSJf +YmxhbmsiIGVyc2V0emVuCiAgICAgICAgICAgIGlmICgkSnNvblRleHQgLW1hdGNoICd0YXJnZXRc +cyo9XHMqWyInJ11fc2VsZlsiJyddJykgewogICAgICAgICAgICAgICAgJEpzb25UZXh0ID0gW3Jl +Z2V4XTo6UmVwbGFjZSgkSnNvblRleHQsICd0YXJnZXRccyo9XHMqWyInJ11fc2VsZlsiJyddJywg +J3RhcmdldD0iX2JsYW5rIicpCiAgICAgICAgICAgICAgICAkQ2hhbmdlZCA9ICR0cnVlCiAgICAg +ICAgICAgIH0KICAgICAgICAgICAgIyBMaW5rcyBvaG5lIHRhcmdldC1BdHRyaWJ1dDogdGFyZ2V0 +PSJfYmxhbmsiIGhpbnp1ZnVlZ2VuCiAgICAgICAgICAgICMgUmVnZXg6IDxhIC4uLiBocmVmPSIu +Li4iIG9obmUgdGFyZ2V0PSAuLi4gPiAobnVyIGV4dGVybmUgTGlua3MsIG5pY2h0ICMtQW5rZXIp +CiAgICAgICAgICAgICRKc29uVGV4dCA9IFtyZWdleF06OlJlcGxhY2UoJEpzb25UZXh0LCAnKDxh +XHMrKD8hW14+XSp0YXJnZXRccyo9KVtePl0qaHJlZlxzKj1ccypbIicnXSkoPyEjKScsIHsKICAg +ICAgICAgICAgICAgIHBhcmFtKCRtKQogICAgICAgICAgICAgICAgJHRhZyA9ICRtLlZhbHVlCiAg +ICAgICAgICAgICAgICAjIHRhcmdldD0iX2JsYW5rIiB2b3IgaHJlZiBlaW5mdWVnZW4KICAgICAg +ICAgICAgICAgICR0YWcgLXJlcGxhY2UgJyg8YVxzKyknLCAnJDF0YXJnZXQ9Il9ibGFuayIgcmVs +PSJub29wZW5lciBub3JlZmVycmVyIiAnCiAgICAgICAgICAgIH0pCiAgICAgICAgICAgIGlmICgk +SnNvblRleHQgLW5lIFtJTy5GaWxlXTo6UmVhZEFsbFRleHQoJF8uRnVsbE5hbWUsIFtUZXh0LlVU +RjhFbmNvZGluZ106Om5ldygkZmFsc2UpKSkgewogICAgICAgICAgICAgICAgJENoYW5nZWQgPSAk +dHJ1ZQogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmICgkQ2hhbmdlZCkgewogICAgICAgICAg +ICAgICAgW0lPLkZpbGVdOjpXcml0ZUFsbFRleHQoJF8uRnVsbE5hbWUsICRKc29uVGV4dCwgW1Rl +eHQuVVRGOEVuY29kaW5nXTo6bmV3KCRmYWxzZSkpCiAgICAgICAgICAgICAgICAkTGlua0ZpeENv +dW50KysKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0gY2F0Y2gge30KfQppZiAoJExpbmtG +aXhDb3VudCAtZ3QgMCkgewogICAgV3JpdGUtSG9zdCAiICBbT0tdICAgICAgJExpbmtGaXhDb3Vu +dCBBcnRpa2VsIGJlcmVpbmlndCAoTGlua3MgLT4gdGFyZ2V0PV9ibGFuaykiIC1Gb3JlZ3JvdW5k +Q29sb3IgR3JlZW4KfSBlbHNlIHsKICAgIFdyaXRlLUhvc3QgIiAgW09LXSAgICAgIEFsbGUgTGlu +a3Mga29ycmVrdCIgLUZvcmVncm91bmRDb2xvciBHcmVlbgp9CgojIFZlcnNpb25zaW50ZWdyaXRh +ZXQ6IFN0ZWxsdCBzaWNoZXIsIGRhc3MgZGllIFZlcnNpb24genVtIFN0YXR1cyBwYXNzdC4KIyBG +cmVpZ2VnZWJlbiBtdXNzIG1pbmRlc3RlbnMgdjEuMCBzZWluLCBFbnR3dXJmL1BydWVmdW5nIG1p +bmRlc3RlbnMgdjAuMS4KV3JpdGUtSG9zdCAiICBWZXJzaW9uaWVydW5nIHdpcmQgZ2VwcnVlZnQu +Li4iICAgICAgICAgICAgICAgIC1Gb3JlZ3JvdW5kQ29sb3IgR3JheQokVmVyc2lvbkZpeENvdW50 +ID0gMApHZXQtQ2hpbGRJdGVtICIkUm9vdFxkYXRhIiAtUmVjdXJzZSAtRmlsdGVyICIqLmpzb24i +IC1FcnJvckFjdGlvbiBTaWxlbnRseUNvbnRpbnVlIHwgRm9yRWFjaC1PYmplY3QgewogICAgIyBn +b3Zlcm5hbmNlLmpzb24sIGNvbmZpZy5qc29uLCAudHJhc2guanNvbiBldGMuIHVlYmVyc3ByaW5n +ZW4KICAgIGlmICgkXy5OYW1lIC1tYXRjaCAnXlwuJyAtb3IgJF8uTmFtZSAtZXEgJ2NvbmZpZy5q +c29uJyAtb3IgJF8uTmFtZSAtZXEgJ2dvdmVybmFuY2UuanNvbicpIHsgcmV0dXJuIH0KICAgIHRy +eSB7CiAgICAgICAgJEpzb25UZXh0ID0gW0lPLkZpbGVdOjpSZWFkQWxsVGV4dCgkXy5GdWxsTmFt +ZSwgW1RleHQuVVRGOEVuY29kaW5nXTo6bmV3KCRmYWxzZSkpCiAgICAgICAgJERvYyA9ICRKc29u +VGV4dCB8IENvbnZlcnRGcm9tLUpzb24KICAgICAgICBpZiAoLW5vdCAkRG9jLnN0YXR1cykgeyBy +ZXR1cm4gfQogICAgICAgICROZWVkc1VwZGF0ZSA9ICRmYWxzZQogICAgICAgICRWZXJzaW9uID0g +aWYgKCREb2MudmVyc2lvbikgeyAkRG9jLnZlcnNpb24gfSBlbHNlIHsgJycgfQogICAgICAgICRN +YWpvciA9IDA7ICRNaW5vciA9IDEKICAgICAgICBpZiAoJFZlcnNpb24gLW1hdGNoICdedj8oXGQr +KVwuKFxkKyknKSB7CiAgICAgICAgICAgICRNYWpvciA9IFtpbnRdJE1hdGNoZXNbMV0KICAgICAg +ICAgICAgJE1pbm9yID0gW2ludF0kTWF0Y2hlc1syXQogICAgICAgIH0KCiAgICAgICAgaWYgKCRE +b2Muc3RhdHVzIC1lcSAnRnJlaWdlZ2ViZW4nIC1hbmQgJE1ham9yIC1sdCAxKSB7CiAgICAgICAg +ICAgICREb2MudmVyc2lvbiA9ICd2MS4wJwogICAgICAgICAgICAkTmVlZHNVcGRhdGUgPSAkdHJ1 +ZQogICAgICAgIH0gZWxzZWlmICgkRG9jLnN0YXR1cyAtaW4gQCgnRW50d3VyZicsICJQciQoW2No +YXJdMHhGQylmdW5nIikgLWFuZCAtbm90ICRWZXJzaW9uKSB7CiAgICAgICAgICAgICREb2MudmVy +c2lvbiA9ICd2MC4xJwogICAgICAgICAgICAkTmVlZHNVcGRhdGUgPSAkdHJ1ZQogICAgICAgIH0K +CiAgICAgICAgaWYgKCROZWVkc1VwZGF0ZSkgewogICAgICAgICAgICAkTmV3SnNvbiA9ICREb2Mg +fCBDb252ZXJ0VG8tSnNvbiAtRGVwdGggMjAKICAgICAgICAgICAgW0lPLkZpbGVdOjpXcml0ZUFs +bFRleHQoJF8uRnVsbE5hbWUsICROZXdKc29uLCBbVGV4dC5VVEY4RW5jb2RpbmddOjpuZXcoJGZh +bHNlKSkKICAgICAgICAgICAgJFZlcnNpb25GaXhDb3VudCsrCiAgICAgICAgfQogICAgfSBjYXRj +aCB7fQp9CmlmICgkVmVyc2lvbkZpeENvdW50IC1ndCAwKSB7CiAgICBXcml0ZS1Ib3N0ICIgIFtP +S10gICAgICAkVmVyc2lvbkZpeENvdW50IEFydGlrZWwtVmVyc2lvbmVuIGtvcnJpZ2llcnQiIC1G +b3JlZ3JvdW5kQ29sb3IgR3JlZW4KfSBlbHNlIHsKICAgIFdyaXRlLUhvc3QgIiAgW09LXSAgICAg +IEFsbGUgVmVyc2lvbmVuIGtvcnJla3QiIC1Gb3JlZ3JvdW5kQ29sb3IgR3JlZW4KfQoKIyBTdGF0 +aWMtRmlsZS1DYWNoZSAoVGV4dGRhdGVpZW4gaW0gU3BlaWNoZXIgaGFsdGVuKQokc2NyaXB0OlN0 +YXRpY0NhY2hlID0gQHt9CgojIEhUVFAgTGlzdGVuZXIgc3RhcnRlbgokTGlzdGVuZXIgPSBOZXct +T2JqZWN0IFN5c3RlbS5OZXQuSHR0cExpc3RlbmVyCiRMaXN0ZW5lci5QcmVmaXhlcy5BZGQoImh0 +dHA6Ly9sb2NhbGhvc3Q6JFBvcnQvIikKCnRyeSB7CiAgICAkTGlzdGVuZXIuU3RhcnQoKQp9IGNh +dGNoIHsKICAgIFdyaXRlLUhvc3QgIkZFSExFUjogUG9ydCAkUG9ydCBpc3QgYmVyZWl0cyBiZWxl +Z3QuIiAtRm9yZWdyb3VuZENvbG9yIFJlZAogICAgV3JpdGUtSG9zdCAiVmVyc3VjaGVuIFNpZSBl +aW5lbiBhbmRlcmVuIFBvcnQ6IC5cc2VydmVyLnBzMSAtUG9ydCA4MDgxIiAtRm9yZWdyb3VuZENv +bG9yIFllbGxvdwogICAgUmVhZC1Ib3N0ICJFbnRlciBkcnVlY2tlbiB6dW0gQmVlbmRlbiIKICAg +IGV4aXQgMQp9CgojIEJyb3dzZXIgb2VmZm5lbiAoQ2hyb21lID4gRWRnZSA+IFN0YW5kYXJkLUJy +b3dzZXIpCiRCcm93c2VyVXJsID0gImh0dHA6Ly9sb2NhbGhvc3Q6JFBvcnQiCiRCcm93c2VyT3Bl +bmVkID0gJGZhbHNlCgojIENocm9tZS1QZmFkZSBwcnVlZmVuCiRDaHJvbWVQYXRocyA9IEAoCiAg +ICAiJHtlbnY6UHJvZ3JhbUZpbGVzfVxHb29nbGVcQ2hyb21lXEFwcGxpY2F0aW9uXGNocm9tZS5l +eGUiLAogICAgIiR7ZW52OlByb2dyYW1GaWxlcyh4ODYpfVxHb29nbGVcQ2hyb21lXEFwcGxpY2F0 +aW9uXGNocm9tZS5leGUiLAogICAgIiRlbnY6TE9DQUxBUFBEQVRBXEdvb2dsZVxDaHJvbWVcQXBw +bGljYXRpb25cY2hyb21lLmV4ZSIKKQpmb3JlYWNoICgkY3AgaW4gJENocm9tZVBhdGhzKSB7CiAg +ICBpZiAoVGVzdC1QYXRoICRjcCkgewogICAgICAgIFN0YXJ0LVByb2Nlc3MgJGNwICRCcm93c2Vy +VXJsCiAgICAgICAgJEJyb3dzZXJPcGVuZWQgPSAkdHJ1ZQogICAgICAgIGJyZWFrCiAgICB9Cn0K +CiMgRmFsbGJhY2s6IEVkZ2UKaWYgKC1ub3QgJEJyb3dzZXJPcGVuZWQpIHsKICAgICRFZGdlUGF0 +aCA9ICIke2VudjpQcm9ncmFtRmlsZXMoeDg2KX1cTWljcm9zb2Z0XEVkZ2VcQXBwbGljYXRpb25c +bXNlZGdlLmV4ZSIKICAgIGlmIChUZXN0LVBhdGggJEVkZ2VQYXRoKSB7CiAgICAgICAgU3RhcnQt +UHJvY2VzcyAkRWRnZVBhdGggJEJyb3dzZXJVcmwKICAgICAgICAkQnJvd3Nlck9wZW5lZCA9ICR0 +cnVlCiAgICB9Cn0KCiMgRmFsbGJhY2s6IFN0YW5kYXJkLUJyb3dzZXIgdmlhIFN0YXJ0CmlmICgt +bm90ICRCcm93c2VyT3BlbmVkKSB7CiAgICB0cnkgeyBTdGFydC1Qcm9jZXNzICRCcm93c2VyVXJs +OyAkQnJvd3Nlck9wZW5lZCA9ICR0cnVlIH0gY2F0Y2gge30KfQoKaWYgKC1ub3QgJEJyb3dzZXJP +cGVuZWQpIHsKICAgIFdyaXRlLUhvc3QgIiAgQnJvd3NlciBrb25udGUgbmljaHQgZ2VvZWZmbmV0 +IHdlcmRlbi4iIC1Gb3JlZ3JvdW5kQ29sb3IgWWVsbG93CiAgICBXcml0ZS1Ib3N0ICIgIEJpdHRl +IG1hbnVlbGwgb2VmZm5lbjogJEJyb3dzZXJVcmwiIC1Gb3JlZ3JvdW5kQ29sb3IgWWVsbG93Cn0K +CiMgSGVhcnRiZWF0LVRyYWNraW5nOiBTZXJ2ZXIgYmVlbmRldCBzaWNoIHdlbm4gMTAgTWludXRl +biBrZWluIEhlYXJ0YmVhdCBrb21tdC4KIyBDbGllbnQgbnV0enQgZWluZW4gV2ViIFdvcmtlciBm +dWVyIHp1dmVybGFlc3NpZ2UgSGVhcnRiZWF0cyBhdWNoIGJlaSBCYWNrZ3JvdW5kLVRhYnMuCiMg +MTAgTWluIFRpbWVvdXQgPSBtYXhpbWFsZSBSb2J1c3RoZWl0IGdlZ2VuIGplZGUgQXJ0IHZvbiBC +cm93c2VyLVRocm90dGxpbmcuCiRzY3JpcHQ6TGFzdEhlYXJ0YmVhdCA9IEdldC1EYXRlCiRIZWFy +dGJlYXRUaW1lb3V0U2VjID0gMTgwMCAgIyAzMCBNaW4gLSBUYWItV2VjaHNlbCBwYXVzaWVydCBI +ZWFydGJlYXQsIE5ldXN0YXJ0IHBydWVmdCBQb3J0CiRzY3JpcHQ6U2h1dGRvd25QZW5kaW5nID0g +JG51bGwgICMgR25hZGVuZnJpc3QgZnVlciBTaHV0ZG93biAoRjUvUmVmcmVzaCB2cy4gVGFiLUNs +b3NlKQokc2NyaXB0OlNodXRkb3duR3JhY2VTZWMgPSA1ICAgICAjIFNla3VuZGVuIFdhcnRlemVp +dCBiZXZvciBTZXJ2ZXIgdGF0c2FlY2hsaWNoIGJlZW5kZXQgd2lyZAoKIyBSZXF1ZXN0LUxvb3Ag +KG5pY2h0LWJsb2NraWVyZW5kIGZ1ZXIgSGVhcnRiZWF0LVRpbWVvdXQtUHJ1ZWZ1bmcpCnRyeSB7 +CiAgICB3aGlsZSAoJExpc3RlbmVyLklzTGlzdGVuaW5nKSB7CiAgICAgICAgIyBBc3luY2hyb25l +biBSZXF1ZXN0IG1pdCBUaW1lb3V0IHdhcnRlbgogICAgICAgICRBc3luY1Jlc3VsdCA9ICRMaXN0 +ZW5lci5CZWdpbkdldENvbnRleHQoJG51bGwsICRudWxsKQogICAgICAgIHdoaWxlICgtbm90ICRB +c3luY1Jlc3VsdC5Bc3luY1dhaXRIYW5kbGUuV2FpdE9uZSgyMDAwKSkgewogICAgICAgICAgICAj +IFBydWVmZW4gb2IgZWluIFNodXRkb3duIGFuc3RlaHQgKGJlZm9yZXVubG9hZCBnZXNlbmRldCkK +ICAgICAgICAgICAgIyBHbmFkZW5mcmlzdDogRmFsbHMgU2VpdGUgbnVyIG5ldSBnZWxhZGVuIHdp +cmQgKEY1KSwga29tbXQgaW5uZXJoYWxiCiAgICAgICAgICAgICMgdm9uIDUgU2VrdW5kZW4gZWlu +IG5ldWVyIEhlYXJ0YmVhdCB1bmQgYnJpY2h0IGRlbiBTaHV0ZG93biBhYi4KICAgICAgICAgICAg +aWYgKCRzY3JpcHQ6U2h1dGRvd25QZW5kaW5nKSB7CiAgICAgICAgICAgICAgICAkR3JhY2VFbGFw +c2VkID0gKChHZXQtRGF0ZSkgLSAkc2NyaXB0OlNodXRkb3duUGVuZGluZykuVG90YWxTZWNvbmRz +CiAgICAgICAgICAgICAgICBpZiAoJEdyYWNlRWxhcHNlZCAtZ3QgJHNjcmlwdDpTaHV0ZG93bkdy +YWNlU2VjKSB7CiAgICAgICAgICAgICAgICAgICAgV3JpdGUtSG9zdCAiIgogICAgICAgICAgICAg +ICAgICAgIFdyaXRlLUhvc3QgIiAgU2h1dGRvd24tR25hZGVuZnJpc3QgYWJnZWxhdWZlbiAoJHtH +cmFjZUVsYXBzZWR9cykgLSBrZWluIFJlbG9hZCBlcmthbm50LCBTZXJ2ZXIgd2lyZCBiZWVuZGV0 +Li4uIiAtRm9yZWdyb3VuZENvbG9yIFllbGxvdwogICAgICAgICAgICAgICAgICAgICRMaXN0ZW5l +ci5TdG9wKCkKICAgICAgICAgICAgICAgICAgICBicmVhawogICAgICAgICAgICAgICAgfQogICAg +ICAgICAgICB9CiAgICAgICAgICAgICMgQWxsZSAyIFNla3VuZGVuIHBydWVmZW4gb2IgSGVhcnRi +ZWF0LVRpbWVvdXQgZXJyZWljaHQKICAgICAgICAgICAgJFNlY1NpbmNlSGVhcnRiZWF0ID0gKChH +ZXQtRGF0ZSkgLSAkc2NyaXB0Okxhc3RIZWFydGJlYXQpLlRvdGFsU2Vjb25kcwogICAgICAgICAg +ICBpZiAoJFNlY1NpbmNlSGVhcnRiZWF0IC1ndCAkSGVhcnRiZWF0VGltZW91dFNlYykgewogICAg +ICAgICAgICAgICAgV3JpdGUtSG9zdCAiIgogICAgICAgICAgICAgICAgV3JpdGUtSG9zdCAiICBL +ZWluIEhlYXJ0YmVhdCBzZWl0ICQoW01hdGhdOjpSb3VuZCgkU2VjU2luY2VIZWFydGJlYXQpKXMg +LSBUYWIgd3VyZGUgZ2VzY2hsb3NzZW4sIFNlcnZlciB3aXJkIGJlZW5kZXQuLi4iIC1Gb3JlZ3Jv +dW5kQ29sb3IgWWVsbG93CiAgICAgICAgICAgICAgICAkTGlzdGVuZXIuU3RvcCgpCiAgICAgICAg +ICAgICAgICBicmVhawogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGlmICgtbm90ICRM +aXN0ZW5lci5Jc0xpc3RlbmluZykgeyBicmVhayB9CiAgICAgICAgJENvbnRleHQgPSAkTGlzdGVu +ZXIuRW5kR2V0Q29udGV4dCgkQXN5bmNSZXN1bHQpCiAgICAgICAgJFJlcXVlc3QgPSAkQ29udGV4 +dC5SZXF1ZXN0CiAgICAgICAgJFJlc3BvbnNlID0gJENvbnRleHQuUmVzcG9uc2UKICAgICAgICAk +TWV0aG9kID0gJFJlcXVlc3QuSHR0cE1ldGhvZAogICAgICAgICRVcmxQYXRoID0gJFJlcXVlc3Qu +VXJsLkxvY2FsUGF0aAoKICAgICAgICAjIFBlbmRpbmcgU2h1dGRvd24gYmVpIGplZGVtIGVpbmdl +aGVuZGVuIFJlcXVlc3QgYWJicmVjaGVuCiAgICAgICAgIyAoU2VpdGUgd3VyZGUgbmV1IGdlbGFk +ZW4gdW5kIGZyYWd0IERhdGVpZW4vQVBJIGFuKQogICAgICAgIGlmICgkc2NyaXB0OlNodXRkb3du +UGVuZGluZyAtYW5kICRVcmxQYXRoIC1uZSAnL2FwaS9zaHV0ZG93bicpIHsKICAgICAgICAgICAg +V3JpdGUtSG9zdCAiICBIQiAgIFNodXRkb3duIGFiZ2Vicm9jaGVuIC0gbmV1ZSBBbmZyYWdlIGVy +a2FubnQgKCRNZXRob2QgJFVybFBhdGgpIiAtRm9yZWdyb3VuZENvbG9yIEdyZWVuCiAgICAgICAg +ICAgICRzY3JpcHQ6U2h1dGRvd25QZW5kaW5nID0gJG51bGwKICAgICAgICB9CgogICAgICAgICMg +UmVxdWVzdC1Mb2dnaW5nIChudXIgQVBJLUF1ZnJ1ZmUsIG5pY2h0IEhlYXJ0YmVhdC9zdGF0aXNj +aGUgRGF0ZWllbikKICAgICAgICBpZiAoJFVybFBhdGguU3RhcnRzV2l0aCgnL2FwaS8nKSAtYW5k +ICRVcmxQYXRoIC1uZSAnL2FwaS9oZWFydGJlYXQnKSB7CiAgICAgICAgICAgIFdyaXRlLUhvc3Qg +IiAgLS0+ICAkTWV0aG9kICRVcmxQYXRoIiAtRm9yZWdyb3VuZENvbG9yIERhcmtHcmF5CiAgICAg +ICAgfQoKICAgICAgICAjID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 +PT09PT09PT09PT09PT09PT09PT0KICAgICAgICAjIENPUlMgUHJlZmxpZ2h0CiAgICAgICAgIyA9 +PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 +PT09CgogICAgICAgIGlmICgkTWV0aG9kIC1lcSAnT1BUSU9OUycpIHsKICAgICAgICAgICAgJFJl +c3BvbnNlLlN0YXR1c0NvZGUgPSAyMDQKICAgICAgICAgICAgQWRkLVNlY3VyaXR5SGVhZGVycyAk +UmVzcG9uc2UKICAgICAgICAgICAgJFJlc3BvbnNlLkhlYWRlcnMuQWRkKCJBY2Nlc3MtQ29udHJv +bC1BbGxvdy1NZXRob2RzIiwgIkdFVCwgUE9TVCwgT1BUSU9OUyIpCiAgICAgICAgICAgICRSZXNw +b25zZS5IZWFkZXJzLkFkZCgiQWNjZXNzLUNvbnRyb2wtQWxsb3ctSGVhZGVycyIsICJDb250ZW50 +LVR5cGUiKQogICAgICAgICAgICAkUmVzcG9uc2UuQ2xvc2UoKQogICAgICAgICAgICBjb250aW51 +ZQogICAgICAgIH0KCiAgICAgICAgIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 +PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgICAgICAgIyBBUEktRW5kcHVua3RlCiAgICAg +ICAgIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 +PT09PT09PT09CgogICAgICAgICMgLS0tIFBPU1QgL2FwaS9oZWFydGJlYXQgLS0tCiAgICAgICAg +IyBCcm93c2VyIHNlbmRldCBhbGxlIDUgU2VrdW5kZW4gZWluZW4gSGVhcnRiZWF0ICh2aWEgV2Vi +IFdvcmtlciwgbmllIGdlZHJvc3NlbHQpCiAgICAgICAgIyBTZXJ2ZXIgZmFlaHJ0IGF1dG9tYXRp +c2NoIGhlcnVudGVyIHdlbm4gMTAgTWludXRlbiBrZWluIEhlYXJ0YmVhdCBrb21tdAogICAgICAg +ICMgQW50d29ydCBlbnRoYWVsdCBpZGxlLVNla3VuZGVuIHVuZCBXYXJudW5nIDYwcyB2b3IgU2h1 +dGRvd24KICAgICAgICBpZiAoJFVybFBhdGggLWVxICcvYXBpL2hlYXJ0YmVhdCcgLWFuZCAkTWV0 +aG9kIC1lcSAnUE9TVCcpIHsKICAgICAgICAgICAgIyBQZW5kaW5nIFNodXRkb3duIGFiYnJlY2hl +biAoU2VpdGUgd3VyZGUgbnVyIG5ldSBnZWxhZGVuLCBuaWNodCBnZXNjaGxvc3NlbikKICAgICAg +ICAgICAgaWYgKCRzY3JpcHQ6U2h1dGRvd25QZW5kaW5nKSB7CiAgICAgICAgICAgICAgICBXcml0 +ZS1Ib3N0ICIgIEhCICAgU2h1dGRvd24gYWJnZWJyb2NoZW4gLSBTZWl0ZSB3dXJkZSBuZXUgZ2Vs +YWRlbiAoRjUvUmVmcmVzaCkiIC1Gb3JlZ3JvdW5kQ29sb3IgR3JlZW4KICAgICAgICAgICAgICAg +ICRzY3JpcHQ6U2h1dGRvd25QZW5kaW5nID0gJG51bGwKICAgICAgICAgICAgfQogICAgICAgICAg +ICAkSWRsZVNlYyA9IFtNYXRoXTo6Um91bmQoKChHZXQtRGF0ZSkgLSAkc2NyaXB0Okxhc3RIZWFy +dGJlYXQpLlRvdGFsU2Vjb25kcykKICAgICAgICAgICAgJFdhcm5pbmdUaHJlc2hvbGQgPSAkSGVh +cnRiZWF0VGltZW91dFNlYyAtIDYwICAjIFdhcm51bmcgNjBzIHZvciBUaW1lb3V0CiAgICAgICAg +ICAgICRSZW1haW5pbmcgPSBbTWF0aF06Ok1heCgwLCAkSGVhcnRiZWF0VGltZW91dFNlYyAtICRJ +ZGxlU2VjKQogICAgICAgICAgICAkc2NyaXB0Okxhc3RIZWFydGJlYXQgPSBHZXQtRGF0ZQogICAg +ICAgICAgICBpZiAoJElkbGVTZWMgLWd0ICRXYXJuaW5nVGhyZXNob2xkKSB7CiAgICAgICAgICAg +ICAgICBTZW5kLUpzb24gJFJlc3BvbnNlIEB7IG9rID0gJHRydWU7IGlkbGUgPSAkSWRsZVNlYzsg +d2FybmluZyA9ICR0cnVlOyByZW1haW5pbmdTZWNvbmRzID0gJFJlbWFpbmluZyB9CiAgICAgICAg +ICAgICAgICBXcml0ZS1Ib3N0ICIgIEhCICAgSGVhcnRiZWF0IG5hY2ggJHtJZGxlU2VjfXMgUGF1 +c2UgLSBXYXJudW5nIGdlc2VuZGV0IChub2NoICR7UmVtYWluaW5nfXMpIiAtRm9yZWdyb3VuZENv +bG9yIFllbGxvdwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgU2VuZC1Kc29u +ICRSZXNwb25zZSBAeyBvayA9ICR0cnVlOyBpZGxlID0gJElkbGVTZWM7IHdhcm5pbmcgPSAkZmFs +c2U7IHJlbWFpbmluZ1NlY29uZHMgPSAkUmVtYWluaW5nIH0KICAgICAgICAgICAgfQogICAgICAg +ICAgICAkUmVzcG9uc2UuQ2xvc2UoKQogICAgICAgICAgICBjb250aW51ZQogICAgICAgIH0KCiAg +ICAgICAgIyAtLS0gR0VUIC9hcGkvZW52aXJvbiAtLS0KICAgICAgICBpZiAoJFVybFBhdGggLWVx +ICcvYXBpL2Vudmlyb24nIC1hbmQgJE1ldGhvZCAtZXEgJ0dFVCcpIHsKICAgICAgICAgICAgU2Vu +ZC1Kc29uICRSZXNwb25zZSBAewogICAgICAgICAgICAgICAgdXNlcm5hbWUgICAgID0gJGVudjpV +U0VSTkFNRQogICAgICAgICAgICAgICAgY29tcHV0ZXJuYW1lID0gJGVudjpDT01QVVRFUk5BTUUK +ICAgICAgICAgICAgICAgIHVzZXJkb21haW4gICA9ICRlbnY6VVNFUkRPTUFJTgogICAgICAgICAg +ICB9CiAgICAgICAgICAgICRSZXNwb25zZS5DbG9zZSgpCiAgICAgICAgICAgIFdyaXRlLUhvc3Qg +IiAgQVBJICAvYXBpL2Vudmlyb24gIChVc2VyOiAkZW52OlVTRVJOQU1FKSIgLUZvcmVncm91bmRD +b2xvciBDeWFuCiAgICAgICAgICAgIGNvbnRpbnVlCiAgICAgICAgfQoKICAgICAgICAjIC0tLSBH +RVQgL2FwaS9zY2FuIC0tLQogICAgICAgICMgU2Nhbm50IGFsbGUgS2F0ZWdvcmllLVVudGVyb3Jk +bmVyIHVuZCBsaWVmZXJ0IERva3VtZW50LURhdGVpZW4KICAgICAgICBpZiAoJFVybFBhdGggLWVx +ICcvYXBpL3NjYW4nIC1hbmQgJE1ldGhvZCAtZXEgJ0dFVCcpIHsKICAgICAgICAgICAgJERhdGFE +aXIgPSBKb2luLVBhdGggJFJvb3QgImRhdGEiCiAgICAgICAgICAgICRSZXN1bHQgPSBbU3lzdGVt +LkNvbGxlY3Rpb25zLkFycmF5TGlzdF06Om5ldygpCgogICAgICAgICAgICBpZiAoVGVzdC1QYXRo +ICREYXRhRGlyKSB7CiAgICAgICAgICAgICAgICBHZXQtQ2hpbGRJdGVtICREYXRhRGlyIC1EaXJl +Y3RvcnkgfCBGb3JFYWNoLU9iamVjdCB7CiAgICAgICAgICAgICAgICAgICAgJEthdE5hbWUgPSAk +Xy5OYW1lCiAgICAgICAgICAgICAgICAgICAgR2V0LUNoaWxkSXRlbSAkXy5GdWxsTmFtZSAtRmls +dGVyICIqLmpzb24iIHwgRm9yRWFjaC1PYmplY3QgewogICAgICAgICAgICAgICAgICAgICAgICBb +dm9pZF0kUmVzdWx0LkFkZChAewogICAgICAgICAgICAgICAgICAgICAgICAgICAga2F0ZWdvcmll +ID0gJEthdE5hbWUKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGVuYW1lICA9ICRfLk5h +bWUKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhdGggICAgICA9ICJkYXRhLyRLYXROYW1l +LyQoJF8uTmFtZSkiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplICAgICAgPSAkXy5M +ZW5ndGgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vZGlmaWVkICA9ICRfLkxhc3RXcml0 +ZVRpbWVVdGMuVG9TdHJpbmcoIm8iKQogICAgICAgICAgICAgICAgICAgICAgICB9KQogICAgICAg +ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAg +ICAgU2VuZC1Kc29uICRSZXNwb25zZSBAeyBmaWxlcyA9IEAoJFJlc3VsdCkgfQogICAgICAgICAg +ICAkUmVzcG9uc2UuQ2xvc2UoKQogICAgICAgICAgICBXcml0ZS1Ib3N0ICIgIEFQSSAgL2FwaS9z +Y2FuICAoJCgkUmVzdWx0LkNvdW50KSBEb2t1bWVudGUpIiAtRm9yZWdyb3VuZENvbG9yIEN5YW4K +ICAgICAgICAgICAgY29udGludWUKICAgICAgICB9CgogICAgICAgICMgLS0tIEdFVCAvYXBpL2dv +dmVybmFuY2UgLS0tCiAgICAgICAgaWYgKCRVcmxQYXRoIC1lcSAnL2FwaS9nb3Zlcm5hbmNlJyAt +YW5kICRNZXRob2QgLWVxICdHRVQnKSB7CiAgICAgICAgICAgICRHb3YgPSBHZXQtR292ZXJuYW5j +ZQogICAgICAgICAgICBpZiAoJEdvdikgewogICAgICAgICAgICAgICAgJElzU1UgPSBUZXN0LVN1 +cGVyVXNlciAkR292CiAgICAgICAgICAgICAgICBTZW5kLUpzb24gJFJlc3BvbnNlIEB7CiAgICAg +ICAgICAgICAgICAgICAgZ292ZXJuYW5jZSA9ICRHb3YKICAgICAgICAgICAgICAgICAgICBjdXJy +ZW50VXNlciA9ICRlbnY6VVNFUk5BTUUKICAgICAgICAgICAgICAgICAgICBjdXJyZW50RG9tYWlu +ID0gJGVudjpVU0VSRE9NQUlOCiAgICAgICAgICAgICAgICAgICAgaXNTdXBlclVzZXIgPSAkSXNT +VQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAg +U2VuZC1Kc29uICRSZXNwb25zZSBAewogICAgICAgICAgICAgICAgICAgIGdvdmVybmFuY2UgPSAk +bnVsbAogICAgICAgICAgICAgICAgICAgIGN1cnJlbnRVc2VyID0gJGVudjpVU0VSTkFNRQogICAg +ICAgICAgICAgICAgICAgIGN1cnJlbnREb21haW4gPSAkZW52OlVTRVJET01BSU4KICAgICAgICAg +ICAgICAgICAgICBpc1N1cGVyVXNlciA9ICR0cnVlCiAgICAgICAgICAgICAgICB9CiAgICAgICAg +ICAgIH0KICAgICAgICAgICAgJFJlc3BvbnNlLkNsb3NlKCkKICAgICAgICAgICAgV3JpdGUtSG9z +dCAiICBBUEkgIC9hcGkvZ292ZXJuYW5jZSAgKFVzZXI6ICRlbnY6VVNFUk5BTUUsIFNVOiAkKFRl +c3QtU3VwZXJVc2VyIChHZXQtR292ZXJuYW5jZSkpKSIgLUZvcmVncm91bmRDb2xvciBDeWFuCiAg +ICAgICAgICAgIGNvbnRpbnVlCiAgICAgICAgfQoKICAgICAgICAjIC0tLSBQT1NUIC9hcGkvZ292 +ZXJuYW5jZSAtLS0KICAgICAgICAjIE51ciBTdXBlclVzZXIgZGFyZiBnb3Zlcm5hbmNlLmpzb24g +YWVuZGVybgogICAgICAgIGlmICgkVXJsUGF0aCAtZXEgJy9hcGkvZ292ZXJuYW5jZScgLWFuZCAk +TWV0aG9kIC1lcSAnUE9TVCcpIHsKICAgICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgICAgICRH +b3YgPSBHZXQtR292ZXJuYW5jZQogICAgICAgICAgICAgICAgJElzU1UgPSBUZXN0LVN1cGVyVXNl +ciAkR292CiAgICAgICAgICAgICAgICBpZiAoLW5vdCAkSXNTVSkgewogICAgICAgICAgICAgICAg +ICAgIFNlbmQtSnNvbiAkUmVzcG9uc2UgQHsgZXJyb3IgPSAiTnVyIFN1cGVyVXNlciBkYXJmIEdv +dmVybmFuY2UtRGF0ZW4gYWVuZGVybiAoVXNlcjogJGVudjpVU0VSTkFNRSkiIH0gNDAzCiAgICAg +ICAgICAgICAgICAgICAgV3JpdGUtSG9zdCAiICBFUlIgIFBPU1QgL2FwaS9nb3Zlcm5hbmNlICBB +QkdFTEVITlQgKFVzZXI6ICRlbnY6VVNFUk5BTUUpIiAtRm9yZWdyb3VuZENvbG9yIFJlZAogICAg +ICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAkQm9keSA9IFJlYWQtQm9k +eSAkUmVxdWVzdAogICAgICAgICAgICAgICAgICAgIGlmICgtbm90ICRCb2R5IC1vciAkQm9keS5M +ZW5ndGggLWx0IDIpIHsKICAgICAgICAgICAgICAgICAgICAgICAgU2VuZC1Kc29uICRSZXNwb25z +ZSBAeyBlcnJvciA9ICJMZWVyZXIgUmVxdWVzdC1Cb2R5IiB9IDQwMAogICAgICAgICAgICAgICAg +ICAgICAgICBXcml0ZS1Ib3N0ICIgIEVSUiAgUE9TVCAvYXBpL2dvdmVybmFuY2UgIExlZXJlciBC +b2R5IiAtRm9yZWdyb3VuZENvbG9yIFJlZAogICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAg +ICAgICAgICAgICAgICAgICAgICAgICROZXdHb3YgPSAkQm9keSB8IENvbnZlcnRGcm9tLUpzb24K +ICAgICAgICAgICAgICAgICAgICAgICAgU2F2ZS1Hb3Zlcm5hbmNlICROZXdHb3YKICAgICAgICAg +ICAgICAgICAgICAgICAgU2VuZC1Kc29uICRSZXNwb25zZSBAeyBvayA9ICR0cnVlIH0KICAgICAg +ICAgICAgICAgICAgICAgICAgV3JpdGUtSG9zdCAiICBBUEkgIFBPU1QgL2FwaS9nb3Zlcm5hbmNl +ICBha3R1YWxpc2llcnQgdm9uICRlbnY6VVNFUk5BTUUgKCQoJEJvZHkuTGVuZ3RoKSBCeXRlcyki +IC1Gb3JlZ3JvdW5kQ29sb3IgR3JlZW4KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg +ICAgICB9CiAgICAgICAgICAgIH0gY2F0Y2ggewogICAgICAgICAgICAgICAgV3JpdGUtSG9zdCAi +ICBFUlIgIFBPU1QgL2FwaS9nb3Zlcm5hbmNlICBFWENFUFRJT046ICQoJF8uRXhjZXB0aW9uLk1l +c3NhZ2UpIiAtRm9yZWdyb3VuZENvbG9yIFJlZAogICAgICAgICAgICAgICAgdHJ5IHsgU2VuZC1K +c29uICRSZXNwb25zZSBAeyBlcnJvciA9ICRfLkV4Y2VwdGlvbi5NZXNzYWdlIH0gNTAwIH0gY2F0 +Y2gge30KICAgICAgICAgICAgfQogICAgICAgICAgICB0cnkgeyAkUmVzcG9uc2UuQ2xvc2UoKSB9 +IGNhdGNoIHt9CiAgICAgICAgICAgIGNvbnRpbnVlCiAgICAgICAgfQoKICAgICAgICAjIC0tLSBQ +T1NUIC9hcGkvbG9jayAtLS0KICAgICAgICAjIFNldHp0IGVpbmVuIExvY2sgYXVmIGVpbiBEb2t1 +bWVudCAoUGVzc2ltaXN0aWMgTG9ja2luZykKICAgICAgICAjIEJvZHk6IHsgImRvY0lkIjogIkQw +MDEiIH0KICAgICAgICAjIExvY2stRGF0ZWllbjogZGF0YS8ubG9ja3MvRDAwMS5sb2NrIChKU09O +IG1pdCB1c2VybmFtZSArIHRpbWVzdGFtcCkKICAgICAgICAjIExvY2tzIHZlcmZhbGxlbiBhdXRv +bWF0aXNjaCBuYWNoIDEwIE1pbnV0ZW4gKFN0YWxlLUxvY2stUHJvdGVjdGlvbikKICAgICAgICBp +ZiAoJFVybFBhdGggLWVxICcvYXBpL2xvY2snIC1hbmQgJE1ldGhvZCAtZXEgJ1BPU1QnKSB7CiAg +ICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgICAkQm9keSA9IFJlYWQtQm9keSAkUmVxdWVz +dAogICAgICAgICAgICAgICAgJFBhcnNlZCA9ICRCb2R5IHwgQ29udmVydEZyb20tSnNvbgogICAg +ICAgICAgICAgICAgJERvY0lkID0gJFBhcnNlZC5kb2NJZAogICAgICAgICAgICAgICAgJExvY2tE +aXIgPSBKb2luLVBhdGggJFJvb3QgImRhdGEvLmxvY2tzIgogICAgICAgICAgICAgICAgaWYgKC1u +b3QgKFRlc3QtUGF0aCAkTG9ja0RpcikpIHsgTmV3LUl0ZW0gLUl0ZW1UeXBlIERpcmVjdG9yeSAt +UGF0aCAkTG9ja0RpciAtRm9yY2UgfCBPdXQtTnVsbCB9CiAgICAgICAgICAgICAgICAkTG9ja0Zp +bGUgPSBKb2luLVBhdGggJExvY2tEaXIgIiREb2NJZC5sb2NrIgoKICAgICAgICAgICAgICAgICMg +UHJ1ZWZlbiBvYiBiZXJlaXRzIGdlbG9ja3QgKHVuZCBMb2NrIG5pY2h0IGFiZ2VsYXVmZW4pCiAg +ICAgICAgICAgICAgICBpZiAoVGVzdC1QYXRoICRMb2NrRmlsZSkgewogICAgICAgICAgICAgICAg +ICAgICRFeGlzdGluZyA9IEdldC1Db250ZW50ICRMb2NrRmlsZSAtUmF3IC1FbmNvZGluZyBVVEY4 +IHwgQ29udmVydEZyb20tSnNvbgogICAgICAgICAgICAgICAgICAgICRMb2NrVGltZSA9IFtEYXRl +VGltZV06OlBhcnNlKCRFeGlzdGluZy5sb2NrZWRBdCkKICAgICAgICAgICAgICAgICAgICAkTWlu +dXRlc1NpbmNlID0gKChHZXQtRGF0ZSkgLSAkTG9ja1RpbWUpLlRvdGFsTWludXRlcwoKICAgICAg +ICAgICAgICAgICAgICBpZiAoJE1pbnV0ZXNTaW5jZSAtbHQgMTAgLWFuZCAkRXhpc3RpbmcudXNl +cm5hbWUgLW5lICRlbnY6VVNFUk5BTUUpIHsKICAgICAgICAgICAgICAgICAgICAgICAgIyBMb2Nr +IGlzdCBha3RpdiB1bmQgdm9uIGVpbmVtIGFuZGVyZW4gVXNlcgogICAgICAgICAgICAgICAgICAg +ICAgICBTZW5kLUpzb24gJFJlc3BvbnNlIEB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBs +b2NrZWQgPSAkdHJ1ZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgYnkgPSAkRXhpc3Rpbmcu +dXNlcm5hbWUKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpbmNlID0gJEV4aXN0aW5nLmxv +Y2tlZEF0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtaW51dGVzID0gW01hdGhdOjpSb3Vu +ZCgkTWludXRlc1NpbmNlLCAxKQogICAgICAgICAgICAgICAgICAgICAgICB9IDQwOQogICAgICAg +ICAgICAgICAgICAgICAgICAkUmVzcG9uc2UuQ2xvc2UoKQogICAgICAgICAgICAgICAgICAgICAg +ICBXcml0ZS1Ib3N0ICIgIEFQSSAgUE9TVCAvYXBpL2xvY2sgICREb2NJZCBCRUxFR1Qgdm9uICQo +JEV4aXN0aW5nLnVzZXJuYW1lKSIgLUZvcmVncm91bmRDb2xvciBZZWxsb3cKICAgICAgICAgICAg +ICAgICAgICAgICAgY29udGludWUKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg +ICAgICAgIyBMb2NrIGFiZ2VsYXVmZW4gb2RlciBlaWdlbmVyIExvY2sgLT4gdWViZXJzY2hyZWli +ZW4KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAjIExvY2sgc2V0emVuCiAgICAg +ICAgICAgICAgICAkTG9ja0RhdGEgPSBAewogICAgICAgICAgICAgICAgICAgIGRvY0lkID0gJERv +Y0lkCiAgICAgICAgICAgICAgICAgICAgdXNlcm5hbWUgPSAkZW52OlVTRVJOQU1FCiAgICAgICAg +ICAgICAgICAgICAgbG9ja2VkQXQgPSAoR2V0LURhdGUpLlRvU3RyaW5nKCJvIikKICAgICAgICAg +ICAgICAgIH0gfCBDb252ZXJ0VG8tSnNvbiAtQ29tcHJlc3MKICAgICAgICAgICAgICAgIFVucHJv +dGVjdC1GaWxlICRMb2NrRmlsZQogICAgICAgICAgICAgICAgW0lPLkZpbGVdOjpXcml0ZUFsbFRl +eHQoJExvY2tGaWxlLCAkTG9ja0RhdGEsIFtUZXh0LlVURjhFbmNvZGluZ106Om5ldygkZmFsc2Up +KQogICAgICAgICAgICAgICAgU2VuZC1Kc29uICRSZXNwb25zZSBAeyBvayA9ICR0cnVlOyBkb2NJ +ZCA9ICREb2NJZCB9CiAgICAgICAgICAgICAgICBXcml0ZS1Ib3N0ICIgIEFQSSAgUE9TVCAvYXBp +L2xvY2sgICREb2NJZCBnZWxvY2t0IHZvbiAkZW52OlVTRVJOQU1FIiAtRm9yZWdyb3VuZENvbG9y +IEN5YW4KICAgICAgICAgICAgfSBjYXRjaCB7CiAgICAgICAgICAgICAgICBXcml0ZS1Ib3N0ICIg +IEVSUiAgUE9TVCAvYXBpL2xvY2sgICQoJF8uRXhjZXB0aW9uLk1lc3NhZ2UpIiAtRm9yZWdyb3Vu +ZENvbG9yIFJlZAogICAgICAgICAgICAgICAgdHJ5IHsgU2VuZC1Kc29uICRSZXNwb25zZSBAeyBl +cnJvciA9ICRfLkV4Y2VwdGlvbi5NZXNzYWdlIH0gNTAwIH0gY2F0Y2gge30KICAgICAgICAgICAg +fQogICAgICAgICAgICB0cnkgeyAkUmVzcG9uc2UuQ2xvc2UoKSB9IGNhdGNoIHt9CiAgICAgICAg +ICAgIGNvbnRpbnVlCiAgICAgICAgfQoKICAgICAgICAjIC0tLSBQT1NUIC9hcGkvdW5sb2NrIC0t +LQogICAgICAgICMgR2lidCBlaW5lbiBMb2NrIGZyZWkuIEJvZHk6IHsgImRvY0lkIjogIkQwMDEi +IH0KICAgICAgICAjIE51ciBkZXIgTG9jay1JbmhhYmVyIG9kZXIgU3VwZXJVc2VyIGthbm4gZnJl +aWdlYmVuCiAgICAgICAgaWYgKCRVcmxQYXRoIC1lcSAnL2FwaS91bmxvY2snIC1hbmQgJE1ldGhv +ZCAtZXEgJ1BPU1QnKSB7CiAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgICAkQm9keSA9 +IFJlYWQtQm9keSAkUmVxdWVzdAogICAgICAgICAgICAgICAgJFBhcnNlZCA9ICRCb2R5IHwgQ29u +dmVydEZyb20tSnNvbgogICAgICAgICAgICAgICAgJERvY0lkID0gJFBhcnNlZC5kb2NJZAogICAg +ICAgICAgICAgICAgJExvY2tGaWxlID0gSm9pbi1QYXRoICRSb290ICJkYXRhLy5sb2Nrcy8kRG9j +SWQubG9jayIKCiAgICAgICAgICAgICAgICBpZiAoVGVzdC1QYXRoICRMb2NrRmlsZSkgewogICAg +ICAgICAgICAgICAgICAgICRFeGlzdGluZyA9IEdldC1Db250ZW50ICRMb2NrRmlsZSAtUmF3IC1F +bmNvZGluZyBVVEY4IHwgQ29udmVydEZyb20tSnNvbgogICAgICAgICAgICAgICAgICAgICRHb3Yg +PSBHZXQtR292ZXJuYW5jZQogICAgICAgICAgICAgICAgICAgICRJc1NVID0gVGVzdC1TdXBlclVz +ZXIgJEdvdgoKICAgICAgICAgICAgICAgICAgICBpZiAoJEV4aXN0aW5nLnVzZXJuYW1lIC1lcSAk +ZW52OlVTRVJOQU1FIC1vciAkSXNTVSkgewogICAgICAgICAgICAgICAgICAgICAgICBSZW1vdmUt +SXRlbSAkTG9ja0ZpbGUgLUZvcmNlCiAgICAgICAgICAgICAgICAgICAgICAgIFNlbmQtSnNvbiAk +UmVzcG9uc2UgQHsgb2sgPSAkdHJ1ZTsgZG9jSWQgPSAkRG9jSWQgfQogICAgICAgICAgICAgICAg +ICAgICAgICBXcml0ZS1Ib3N0ICIgIEFQSSAgUE9TVCAvYXBpL3VubG9jayAgJERvY0lkIGZyZWln +ZWdlYmVuIiAtRm9yZWdyb3VuZENvbG9yIEdyZWVuCiAgICAgICAgICAgICAgICAgICAgfSBlbHNl +IHsKICAgICAgICAgICAgICAgICAgICAgICAgU2VuZC1Kc29uICRSZXNwb25zZSBAeyBlcnJvciA9 +ICJMb2NrIGdlaG9lcnQgJCgkRXhpc3RpbmcudXNlcm5hbWUpIiB9IDQwMwogICAgICAgICAgICAg +ICAgICAgIH0KICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgU2Vu +ZC1Kc29uICRSZXNwb25zZSBAeyBvayA9ICR0cnVlOyBkb2NJZCA9ICREb2NJZCB9CiAgICAgICAg +ICAgICAgICB9CiAgICAgICAgICAgIH0gY2F0Y2ggewogICAgICAgICAgICAgICAgV3JpdGUtSG9z +dCAiICBFUlIgIFBPU1QgL2FwaS91bmxvY2sgICQoJF8uRXhjZXB0aW9uLk1lc3NhZ2UpIiAtRm9y +ZWdyb3VuZENvbG9yIFJlZAogICAgICAgICAgICAgICAgdHJ5IHsgU2VuZC1Kc29uICRSZXNwb25z +ZSBAeyBlcnJvciA9ICRfLkV4Y2VwdGlvbi5NZXNzYWdlIH0gNTAwIH0gY2F0Y2gge30KICAgICAg +ICAgICAgfQogICAgICAgICAgICB0cnkgeyAkUmVzcG9uc2UuQ2xvc2UoKSB9IGNhdGNoIHt9CiAg +ICAgICAgICAgIGNvbnRpbnVlCiAgICAgICAgfQoKICAgICAgICAjIC0tLSBHRVQgL2FwaS9sb2Nr +cyAtLS0KICAgICAgICAjIExpc3RldCBhbGxlIGFrdGl2ZW4gTG9ja3MgYXVmIChmdWVyIFVJLUFu +emVpZ2UpCiAgICAgICAgaWYgKCRVcmxQYXRoIC1lcSAnL2FwaS9sb2NrcycgLWFuZCAkTWV0aG9k +IC1lcSAnR0VUJykgewogICAgICAgICAgICAkTG9ja0RpciA9IEpvaW4tUGF0aCAkUm9vdCAiZGF0 +YS8ubG9ja3MiCiAgICAgICAgICAgICRMb2NrcyA9IFtTeXN0ZW0uQ29sbGVjdGlvbnMuQXJyYXlM +aXN0XTo6bmV3KCkKICAgICAgICAgICAgaWYgKFRlc3QtUGF0aCAkTG9ja0RpcikgewogICAgICAg +ICAgICAgICAgR2V0LUNoaWxkSXRlbSAkTG9ja0RpciAtRmlsdGVyICIqLmxvY2siIHwgRm9yRWFj +aC1PYmplY3QgewogICAgICAgICAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgICAgICAg +ICAgICRMb2NrID0gR2V0LUNvbnRlbnQgJF8uRnVsbE5hbWUgLVJhdyAtRW5jb2RpbmcgVVRGOCB8 +IENvbnZlcnRGcm9tLUpzb24KICAgICAgICAgICAgICAgICAgICAgICAgJExvY2tUaW1lID0gW0Rh +dGVUaW1lXTo6UGFyc2UoJExvY2subG9ja2VkQXQpCiAgICAgICAgICAgICAgICAgICAgICAgICRN +aW51dGVzU2luY2UgPSAoKEdldC1EYXRlKSAtICRMb2NrVGltZSkuVG90YWxNaW51dGVzCiAgICAg +ICAgICAgICAgICAgICAgICAgIGlmICgkTWludXRlc1NpbmNlIC1sdCAxMCkgewogICAgICAgICAg +ICAgICAgICAgICAgICAgICAgW3ZvaWRdJExvY2tzLkFkZChAewogICAgICAgICAgICAgICAgICAg +ICAgICAgICAgICAgIGRvY0lkID0gJExvY2suZG9jSWQKICAgICAgICAgICAgICAgICAgICAgICAg +ICAgICAgICB1c2VybmFtZSA9ICRMb2NrLnVzZXJuYW1lCiAgICAgICAgICAgICAgICAgICAgICAg +ICAgICAgICAgbG9ja2VkQXQgPSAkTG9jay5sb2NrZWRBdAogICAgICAgICAgICAgICAgICAgICAg +ICAgICAgICAgIG1pbnV0ZXMgPSBbTWF0aF06OlJvdW5kKCRNaW51dGVzU2luY2UsIDEpCiAgICAg +ICAgICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Ug +ewogICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBBYmdlbGF1ZmVuZW4gTG9jayBhdWZyYWV1 +bWVuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZW1vdmUtSXRlbSAkXy5GdWxsTmFtZSAt +Rm9yY2UKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0gY2F0 +Y2gge30KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICBTZW5kLUpz +b24gJFJlc3BvbnNlIEB7IGxvY2tzID0gQCgkTG9ja3MpIH0KICAgICAgICAgICAgJFJlc3BvbnNl +LkNsb3NlKCkKICAgICAgICAgICAgV3JpdGUtSG9zdCAiICBBUEkgIC9hcGkvbG9ja3MgICgkKCRM +b2Nrcy5Db3VudCkgYWt0aXZlIExvY2tzKSIgLUZvcmVncm91bmRDb2xvciBDeWFuCiAgICAgICAg +ICAgIGNvbnRpbnVlCiAgICAgICAgfQoKICAgICAgICAjIC0tLSBQT1NUIC9hcGkvd3JpdGUgLS0t +CiAgICAgICAgIyBCb2R5OiB7ICJwYXRoIjogImRhdGEvVmVya2Voci9EMDAxX3h4eC5qc29uIiwg +ImRhdGEiOiB7IC4uLiB9IH0KICAgICAgICBpZiAoJFVybFBhdGggLWVxICcvYXBpL3dyaXRlJyAt +YW5kICRNZXRob2QgLWVxICdQT1NUJykgewogICAgICAgICAgICB0cnkgewogICAgICAgICAgICAg +ICAgJEJvZHkgPSBSZWFkLUJvZHkgJFJlcXVlc3QKICAgICAgICAgICAgICAgICRQYXJzZWQgPSAk +Qm9keSB8IENvbnZlcnRGcm9tLUpzb24KICAgICAgICAgICAgICAgICRSZWxQYXRoID0gJFBhcnNl +ZC5wYXRoCiAgICAgICAgICAgICAgICAkU2FmZVBhdGggPSBSZXNvbHZlLVNhZmVQYXRoICRSZWxQ +YXRoCgogICAgICAgICAgICAgICAgaWYgKC1ub3QgJFNhZmVQYXRoKSB7CiAgICAgICAgICAgICAg +ICAgICAgU2VuZC1Kc29uICRSZXNwb25zZSBAeyBlcnJvciA9ICJVbmd1ZWx0aWdlciBQZmFkIiB9 +IDQwMAogICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAjIFNjaHJl +aWJzY2h1dHo6IGdvdmVybmFuY2UuanNvbiBpc3QgdWViZXIgL2FwaS93cml0ZSBuaWNodCBiZXNj +aHJlaWJiYXIuCiAgICAgICAgICAgICAgICAgICAgaWYgKCRSZWxQYXRoIC1lcSAnZGF0YS9nb3Zl +cm5hbmNlLmpzb24nKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIFNlbmQtSnNvbiAkUmVzcG9u +c2UgQHsgZXJyb3IgPSAiZ292ZXJuYW5jZS5qc29uIGthbm4gbnVyIHVlYmVyIC9hcGkvZ292ZXJu +YW5jZSBnZWFlbmRlcnQgd2VyZGVuIiB9IDQwMwogICAgICAgICAgICAgICAgICAgICAgICAkUmVz +cG9uc2UuQ2xvc2UoKQogICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZQogICAgICAgICAg +ICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgIyBTY2hyZWlic2NodXR6OiBjb25maWcu +anNvbiBudXIgZHVyY2ggU3VwZXJVc2VyIGFlbmRlcmJhci4KICAgICAgICAgICAgICAgICAgICBp +ZiAoJFJlbFBhdGggLWVxICdkYXRhL2NvbmZpZy5qc29uJykgewogICAgICAgICAgICAgICAgICAg +ICAgICAkR292ID0gR2V0LUdvdmVybmFuY2UKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKC1u +b3QgKFRlc3QtU3VwZXJVc2VyICRHb3YpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBT +ZW5kLUpzb24gJFJlc3BvbnNlIEB7IGVycm9yID0gImNvbmZpZy5qc29uIGthbm4gbnVyIHZvbiBT +dXBlclVzZXJuIGdlYWVuZGVydCB3ZXJkZW4iIH0gNDAzCiAgICAgICAgICAgICAgICAgICAgICAg +ICAgICBXcml0ZS1Ib3N0ICIgIEVSUiAgUE9TVCAvYXBpL3dyaXRlICBjb25maWcuanNvbiBCZXJl +Y2h0aWd1bmcgdmVyd2VpZ2VydCAoJGVudjpVU0VSTkFNRSkiIC1Gb3JlZ3JvdW5kQ29sb3IgUmVk +CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkUmVzcG9uc2UuQ2xvc2UoKQogICAgICAgICAg +ICAgICAgICAgICAgICAgICAgY29udGludWUKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAg +ICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgJERvY0RhdGEgPSAkUGFyc2Vk +LmRhdGEKCiAgICAgICAgICAgICAgICAgICAgIyBVbnRlcnNjaGVpZHVuZzogSlNPTi1Eb2t1bWVu +dCAoUFNDdXN0b21PYmplY3QvSGFzaHRhYmxlL0FycmF5KSB2cy4gUm9oZGF0ZW4gKFN0cmluZywg +ei5CLiBIVE1MKQogICAgICAgICAgICAgICAgICAgIGlmICgkRG9jRGF0YSAtaXMgW1BTQ3VzdG9t +T2JqZWN0XSAtb3IgJERvY0RhdGEgLWlzIFtIYXNodGFibGVdIC1vciAkRG9jRGF0YSAtaXMgW1N5 +c3RlbS5PYmplY3RbXV0pIHsKICAgICAgICAgICAgICAgICAgICAgICAgIyBTdGF0dXNhZW5kZXJ1 +bmcgYXVmICJGcmVpZ2VnZWJlbiIgb2RlciAiQWJnZWxlaG50IiBlcmZvcmRlcnQgUmV2aWV3ZXIt +CiAgICAgICAgICAgICAgICAgICAgICAgICMgb2RlciBTdXBlclVzZXItQmVyZWNodGlndW5nLiBE +ZXIgU2VydmVyIHBydWVmdCBkaWVzIHVuYWJoYWVuZ2lnIHZvbSBDbGllbnQuCiAgICAgICAgICAg +ICAgICAgICAgICAgICROZXdTdGF0dXMgPSAkbnVsbAogICAgICAgICAgICAgICAgICAgICAgICBp +ZiAoJERvY0RhdGEuc3RhdHVzKSB7ICROZXdTdGF0dXMgPSAkRG9jRGF0YS5zdGF0dXMgfQoKICAg +ICAgICAgICAgICAgICAgICAgICAgaWYgKCROZXdTdGF0dXMgLWVxICdGcmVpZ2VnZWJlbicgLW9y +ICROZXdTdGF0dXMgLWVxICdBYmdlbGVobnQnKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAg +ICAkR292ID0gR2V0LUdvdmVybmFuY2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgICREb2NL +YXQgPSAkbnVsbAogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCREb2NEYXRhLmthdGVn +b3JpZSkgeyAkRG9jS2F0ID0gJERvY0RhdGEua2F0ZWdvcmllIH0KICAgICAgICAgICAgICAgICAg +ICAgICAgICAgICRJc1NVID0gVGVzdC1TdXBlclVzZXIgJEdvdgogICAgICAgICAgICAgICAgICAg +ICAgICAgICAgJElzUmV2ID0gVGVzdC1SZXZpZXdlciAkR292ICREb2NLYXQKCiAgICAgICAgICAg +ICAgICAgICAgICAgICAgICBpZiAoLW5vdCAkSXNTVSAtYW5kIC1ub3QgJElzUmV2KSB7CiAgICAg +ICAgICAgICAgICAgICAgICAgICAgICAgICAgU2VuZC1Kc29uICRSZXNwb25zZSBAeyBlcnJvciA9 +ICJLZWluZSBCZXJlY2h0aWd1bmcgZnVlciBTdGF0dXMgJyROZXdTdGF0dXMnIGluIEthdGVnb3Jp +ZSAnJERvY0thdCciIH0gNDAzCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV3JpdGUt +SG9zdCAiICBFUlIgIFBPU1QgL2FwaS93cml0ZSAgU3RhdHVzLUJlcmVjaHRpZ3VuZyB2ZXJ3ZWln +ZXJ0ICgkZW52OlVTRVJOQU1FIC0+ICROZXdTdGF0dXMpIiAtRm9yZWdyb3VuZENvbG9yIFJlZAog +ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRSZXNwb25zZS5DbG9zZSgpCiAgICAgICAg +ICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWUKICAgICAgICAgICAgICAgICAgICAgICAg +ICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAk +V3JpdGVDb250ZW50ID0gJERvY0RhdGEgfCBDb252ZXJ0VG8tSnNvbiAtRGVwdGggMjAKICAgICAg +ICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICAjIFJvaGRhdGVu +IChIVE1MLVN0cmluZ3MgZnVlciBTdGFydHNlaXRlLCBIaWxmZS1JbmhhbHQsIGV0Yy4pCiAgICAg +ICAgICAgICAgICAgICAgICAgICRXcml0ZUNvbnRlbnQgPSBbc3RyaW5nXSREb2NEYXRhCiAgICAg +ICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAjIE9yZG5lciBlcnN0ZWxsZW4g +ZmFsbHMgbm9ldGlnCiAgICAgICAgICAgICAgICAgICAgJERpciA9IFtJTy5QYXRoXTo6R2V0RGly +ZWN0b3J5TmFtZSgkU2FmZVBhdGgpCiAgICAgICAgICAgICAgICAgICAgaWYgKC1ub3QgKFRlc3Qt +UGF0aCAkRGlyKSkgeyBOZXctSXRlbSAtSXRlbVR5cGUgRGlyZWN0b3J5IC1QYXRoICREaXIgLUZv +cmNlIHwgT3V0LU51bGwgfQoKICAgICAgICAgICAgICAgICAgICAjIFNjaHJlaWJzY2h1dHogYXVm +aGViZW4sIEluaGFsdCBzY2hyZWliZW4sIFNjaHJlaWJzY2h1dHogc2V0emVuCiAgICAgICAgICAg +ICAgICAgICAgVW5wcm90ZWN0LUZpbGUgJFNhZmVQYXRoCiAgICAgICAgICAgICAgICAgICAgW0lP +LkZpbGVdOjpXcml0ZUFsbFRleHQoJFNhZmVQYXRoLCAkV3JpdGVDb250ZW50LCBbVGV4dC5VVEY4 +RW5jb2RpbmddOjpuZXcoJGZhbHNlKSkKICAgICAgICAgICAgICAgICAgICBQcm90ZWN0LUZpbGUg +JFNhZmVQYXRoCgogICAgICAgICAgICAgICAgICAgICRGaWxlSW5mbyA9IEdldC1JdGVtICRTYWZl +UGF0aAogICAgICAgICAgICAgICAgICAgIFNlbmQtSnNvbiAkUmVzcG9uc2UgQHsKICAgICAgICAg +ICAgICAgICAgICAgICAgb2sgICAgICAgPSAkdHJ1ZQogICAgICAgICAgICAgICAgICAgICAgICBw +YXRoICAgICA9ICRSZWxQYXRoCiAgICAgICAgICAgICAgICAgICAgICAgIG1vZGlmaWVkID0gJEZp +bGVJbmZvLkxhc3RXcml0ZVRpbWVVdGMuVG9TdHJpbmcoIm8iKQogICAgICAgICAgICAgICAgICAg +IH0KICAgICAgICAgICAgICAgICAgICBXcml0ZS1Ib3N0ICIgIEFQSSAgUE9TVCAvYXBpL3dyaXRl +ICAkUmVsUGF0aCIgLUZvcmVncm91bmRDb2xvciBHcmVlbgogICAgICAgICAgICAgICAgfQogICAg +ICAgICAgICB9IGNhdGNoIHsKICAgICAgICAgICAgICAgIFdyaXRlLUhvc3QgIiAgRVJSICBQT1NU +IC9hcGkvd3JpdGUgICQoJF8uRXhjZXB0aW9uLk1lc3NhZ2UpIiAtRm9yZWdyb3VuZENvbG9yIFJl +ZAogICAgICAgICAgICAgICAgIyBTY2hyZWlic2NodXR6IHdpZWRlcmhlcnN0ZWxsZW4gZmFsbHMg +YXVmZ2Vob2JlbgogICAgICAgICAgICAgICAgaWYgKCRTYWZlUGF0aCkgeyB0cnkgeyBQcm90ZWN0 +LUZpbGUgJFNhZmVQYXRoIH0gY2F0Y2gge30gfQogICAgICAgICAgICAgICAgdHJ5IHsgU2VuZC1K +c29uICRSZXNwb25zZSBAeyBlcnJvciA9ICRfLkV4Y2VwdGlvbi5NZXNzYWdlIH0gNTAwIH0gY2F0 +Y2gge30KICAgICAgICAgICAgfQogICAgICAgICAgICB0cnkgeyAkUmVzcG9uc2UuQ2xvc2UoKSB9 +IGNhdGNoIHt9CiAgICAgICAgICAgIGNvbnRpbnVlCiAgICAgICAgfQoKICAgICAgICAjIC0tLSBQ +T1NUIC9hcGkvZGVsZXRlIC0tLQogICAgICAgICMgQm9keTogeyAicGF0aCI6ICJkYXRhL1Zlcmtl +aHIvRDAwMV94eHguanNvbiIgfQogICAgICAgICMgQXV0b3Jpc2llcnVuZzoKICAgICAgICAjICAg +LSBBcnRpa2VsIChkYXRhL0thdC9EeHh4Lmpzb24pIHVuZCBNZWRpYSAobWVkaWEvLi4uKTogSmVk +ZXIgYXV0aGVudGlmaXppZXJ0ZSBVc2VyCiAgICAgICAgIyAgICAgKFBhcGllcmtvcmItV29ya2Zs +b3cgaW0gRnJvbnRlbmQgcHJ1ZWZ0IE5XLUtlbm51bmcgKyBTb2Z0LURlbGV0ZSkKICAgICAgICAj +ICAgLSBTeXN0ZW1kYXRlaWVuIChjb25maWcuanNvbiwgZ292ZXJuYW5jZS5qc29uLCAudHJhc2gu +anNvbiBldGMuKTogTnVyIFNVL0ZBCiAgICAgICAgaWYgKCRVcmxQYXRoIC1lcSAnL2FwaS9kZWxl +dGUnIC1hbmQgJE1ldGhvZCAtZXEgJ1BPU1QnKSB7CiAgICAgICAgICAgIHRyeSB7CiAgICAgICAg +ICAgICAgICAkQm9keSA9IFJlYWQtQm9keSAkUmVxdWVzdAogICAgICAgICAgICAgICAgJFBhcnNl +ZCA9ICRCb2R5IHwgQ29udmVydEZyb20tSnNvbgogICAgICAgICAgICAgICAgJFJlbFBhdGggPSAk +UGFyc2VkLnBhdGgKCiAgICAgICAgICAgICAgICAjIFN5c3RlbWRhdGVpZW4gc2NodWV0emVuOiBO +dXIgU3VwZXJVc2VyL0ZhY2hhdWZzaWNodAogICAgICAgICAgICAgICAgJElzU3lzdGVtRmlsZSA9 +ICgkUmVsUGF0aCAtZXEgJ2RhdGEvY29uZmlnLmpzb24nIC1vcgogICAgICAgICAgICAgICAgICAg +ICAgICAgICAgICAgICAkUmVsUGF0aCAtZXEgJ2RhdGEvZ292ZXJuYW5jZS5qc29uJyAtb3IKICAg +ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJFJlbFBhdGggLW1hdGNoICdeZGF0YVsvXFxd +XC4nKQogICAgICAgICAgICAgICAgaWYgKCRJc1N5c3RlbUZpbGUpIHsKICAgICAgICAgICAgICAg +ICAgICAkR292ID0gR2V0LUdvdmVybmFuY2UKICAgICAgICAgICAgICAgICAgICBpZiAoLW5vdCAo +VGVzdC1TdXBlclVzZXIgJEdvdikgLWFuZCAtbm90IChUZXN0LUZhY2hhdWZzaWNodCAkR292KSkg +ewogICAgICAgICAgICAgICAgICAgICAgICBTZW5kLUpzb24gJFJlc3BvbnNlIEB7IGVycm9yID0g +Ik51ciBTdXBlclVzZXIgdW5kIEZhY2hhdWZzaWNodCBkdWVyZmVuIFN5c3RlbWRhdGVpZW4gbG9l +c2NoZW4iIH0gNDAzCiAgICAgICAgICAgICAgICAgICAgICAgIFdyaXRlLUhvc3QgIiAgRVJSICBQ +T1NUIC9hcGkvZGVsZXRlICBTeXN0ZW1kYXRlaS1CZXJlY2h0aWd1bmcgdmVyd2VpZ2VydCAoJGVu +djpVU0VSTkFNRSAtPiAkUmVsUGF0aCkiIC1Gb3JlZ3JvdW5kQ29sb3IgUmVkCiAgICAgICAgICAg +ICAgICAgICAgICAgICRSZXNwb25zZS5DbG9zZSgpCiAgICAgICAgICAgICAgICAgICAgICAgIGNv +bnRpbnVlCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAg +ICAgICAgICRTYWZlUGF0aCA9IFJlc29sdmUtU2FmZVBhdGggJFJlbFBhdGgKCiAgICAgICAgICAg +ICAgICBpZiAoLW5vdCAkU2FmZVBhdGgpIHsKICAgICAgICAgICAgICAgICAgICBTZW5kLUpzb24g +JFJlc3BvbnNlIEB7IGVycm9yID0gIlVuZ3VlbHRpZ2VyIFBmYWQiIH0gNDAwCiAgICAgICAgICAg +ICAgICB9IGVsc2VpZiAoVGVzdC1QYXRoICRTYWZlUGF0aCkgewogICAgICAgICAgICAgICAgICAg +IFVucHJvdGVjdC1GaWxlICRTYWZlUGF0aAogICAgICAgICAgICAgICAgICAgIFJlbW92ZS1JdGVt +ICRTYWZlUGF0aCAtUmVjdXJzZSAtRm9yY2UKICAgICAgICAgICAgICAgICAgICBTZW5kLUpzb24g +JFJlc3BvbnNlIEB7IG9rID0gJHRydWU7IHBhdGggPSAkUmVsUGF0aCB9CiAgICAgICAgICAgICAg +ICAgICAgV3JpdGUtSG9zdCAiICBBUEkgIFBPU1QgL2FwaS9kZWxldGUgICRSZWxQYXRoICh2b24g +JGVudjpVU0VSTkFNRSkiIC1Gb3JlZ3JvdW5kQ29sb3IgWWVsbG93CiAgICAgICAgICAgICAgICB9 +IGVsc2UgewogICAgICAgICAgICAgICAgICAgIFNlbmQtSnNvbiAkUmVzcG9uc2UgQHsgZXJyb3Ig +PSAiRGF0ZWkgbmljaHQgZ2VmdW5kZW4iIH0gNDA0CiAgICAgICAgICAgICAgICB9CiAgICAgICAg +ICAgIH0gY2F0Y2ggewogICAgICAgICAgICAgICAgV3JpdGUtSG9zdCAiICBFUlIgIFBPU1QgL2Fw +aS9kZWxldGUgICQoJF8uRXhjZXB0aW9uLk1lc3NhZ2UpIiAtRm9yZWdyb3VuZENvbG9yIFJlZAog +ICAgICAgICAgICAgICAgdHJ5IHsgU2VuZC1Kc29uICRSZXNwb25zZSBAeyBlcnJvciA9ICRfLkV4 +Y2VwdGlvbi5NZXNzYWdlIH0gNTAwIH0gY2F0Y2gge30KICAgICAgICAgICAgfQogICAgICAgICAg +ICB0cnkgeyAkUmVzcG9uc2UuQ2xvc2UoKSB9IGNhdGNoIHt9CiAgICAgICAgICAgIGNvbnRpbnVl +CiAgICAgICAgfQoKICAgICAgICAjIC0tLSBQT1NUIC9hcGkvZmV0Y2gtaW1hZ2U/dXJsPWh0dHBz +Oi8vLi4uIC0tLQogICAgICAgICMgUHJveHk6IEV4dGVybmVzIEJpbGQgaGVydW50ZXJsYWRlbiAo +ZnVlciBQYXN0ZSBhdXMgV1dXLCB1bWdlaHQgQ09SUykKICAgICAgICBpZiAoJFVybFBhdGggLWVx +ICcvYXBpL2ZldGNoLWltYWdlJyAtYW5kICRNZXRob2QgLWVxICdQT1NUJykgewogICAgICAgICAg +ICB0cnkgewogICAgICAgICAgICAgICAgJEJvZHkgPSBSZWFkLUJvZHkgJFJlcXVlc3QKICAgICAg +ICAgICAgICAgICRQYXJzZWQgPSAkQm9keSB8IENvbnZlcnRGcm9tLUpzb24KICAgICAgICAgICAg +ICAgICRJbWdVcmwgPSAkUGFyc2VkLnVybAoKICAgICAgICAgICAgICAgICMgTnVyIGh0dHAvaHR0 +cHMgVVJMcyBlcmxhdWJlbgogICAgICAgICAgICAgICAgaWYgKCRJbWdVcmwgLW5vdG1hdGNoICde +aHR0cHM/Oi8vJykgewogICAgICAgICAgICAgICAgICAgIFNlbmQtSnNvbiAkUmVzcG9uc2UgQHsg +ZXJyb3IgPSAiTnVyIEhUVFAvSFRUUFMgVVJMcyBlcmxhdWJ0IiB9IDQwMAogICAgICAgICAgICAg +ICAgICAgICRSZXNwb25zZS5DbG9zZSgpCiAgICAgICAgICAgICAgICAgICAgY29udGludWUKICAg +ICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAjIFNTUkYtU2NodXR6OiBQcml2YXRlIElQ +cyB1bmQgbG9jYWxob3N0IGJsb2NraWVyZW4KICAgICAgICAgICAgICAgICRQYXJzZWRVcmkgPSBb +U3lzdGVtLlVyaV0kSW1nVXJsCiAgICAgICAgICAgICAgICAkSW1nSG9zdCA9ICRQYXJzZWRVcmku +SG9zdAogICAgICAgICAgICAgICAgaWYgKCRJbWdIb3N0IC1tYXRjaCAnXihsb2NhbGhvc3R8MTI3 +XC58MTBcLnwxOTJcLjE2OFwufDE3MlwuKDFbNi05XXwyWzAtOV18M1swMV0pXC58MFwuMFwuMFwu +MHwxNjlcLjI1NFwuKScgLW9yICRJbWdIb3N0IC1lcSAnOjoxJykgewogICAgICAgICAgICAgICAg +ICAgIFNlbmQtSnNvbiAkUmVzcG9uc2UgQHsgZXJyb3IgPSAiWnVncmlmZiBhdWYgaW50ZXJuZSBB +ZHJlc3NlbiBuaWNodCBlcmxhdWJ0IiB9IDQwMwogICAgICAgICAgICAgICAgICAgICRSZXNwb25z +ZS5DbG9zZSgpCiAgICAgICAgICAgICAgICAgICAgY29udGludWUKICAgICAgICAgICAgICAgIH0K +CiAgICAgICAgICAgICAgICAkV2ViQ2xpZW50ID0gTmV3LU9iamVjdCBTeXN0ZW0uTmV0LldlYkNs +aWVudAogICAgICAgICAgICAgICAgJFdlYkNsaWVudC5IZWFkZXJzLkFkZCgiVXNlci1BZ2VudCIs +ICJNb3ppbGxhLzUuMCBEUklWRS1Qb3J0YWwvMy42IikKICAgICAgICAgICAgICAgICRJbWdCeXRl +cyA9ICRXZWJDbGllbnQuRG93bmxvYWREYXRhKCRJbWdVcmwpCiAgICAgICAgICAgICAgICAkQ29u +dGVudFR5cGUgPSAkV2ViQ2xpZW50LlJlc3BvbnNlSGVhZGVyc1siQ29udGVudC1UeXBlIl0KICAg +ICAgICAgICAgICAgICRXZWJDbGllbnQuRGlzcG9zZSgpCgogICAgICAgICAgICAgICAgIyBOdXIg +QmlsZGVyIGR1cmNobGFzc2VuCiAgICAgICAgICAgICAgICBpZiAoJENvbnRlbnRUeXBlIC1ub3Rs +aWtlICdpbWFnZS8qJykgewogICAgICAgICAgICAgICAgICAgIFNlbmQtSnNvbiAkUmVzcG9uc2Ug +QHsgZXJyb3IgPSAiS2VpbiBCaWxkOiAkQ29udGVudFR5cGUiIH0gNDAwCiAgICAgICAgICAgICAg +ICAgICAgJFJlc3BvbnNlLkNsb3NlKCkKICAgICAgICAgICAgICAgICAgICBjb250aW51ZQogICAg +ICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICRSZXNwb25zZS5TdGF0dXNDb2RlID0gMjAw +CiAgICAgICAgICAgICAgICAkUmVzcG9uc2UuQ29udGVudFR5cGUgPSAkQ29udGVudFR5cGUKICAg +ICAgICAgICAgICAgIEFkZC1TZWN1cml0eUhlYWRlcnMgJFJlc3BvbnNlCiAgICAgICAgICAgICAg +ICAkUmVzcG9uc2UuQ29udGVudExlbmd0aDY0ID0gJEltZ0J5dGVzLkxlbmd0aAogICAgICAgICAg +ICAgICAgJFJlc3BvbnNlLk91dHB1dFN0cmVhbS5Xcml0ZSgkSW1nQnl0ZXMsIDAsICRJbWdCeXRl +cy5MZW5ndGgpCiAgICAgICAgICAgICAgICBXcml0ZS1Ib3N0ICIgIEFQSSAgUE9TVCAvYXBpL2Zl +dGNoLWltYWdlICAkKCRJbWdCeXRlcy5MZW5ndGgpIEJ5dGVzIHZvbiAkSW1nVXJsIiAtRm9yZWdy +b3VuZENvbG9yIEN5YW4KICAgICAgICAgICAgfSBjYXRjaCB7CiAgICAgICAgICAgICAgICBXcml0 +ZS1Ib3N0ICIgIEVSUiAgUE9TVCAvYXBpL2ZldGNoLWltYWdlICAkKCRfLkV4Y2VwdGlvbi5NZXNz +YWdlKSIgLUZvcmVncm91bmRDb2xvciBSZWQKICAgICAgICAgICAgICAgIHRyeSB7IFNlbmQtSnNv +biAkUmVzcG9uc2UgQHsgZXJyb3IgPSAiRG93bmxvYWQgZmVobGdlc2NobGFnZW46ICQoJF8uRXhj +ZXB0aW9uLk1lc3NhZ2UpIiB9IDUwMCB9IGNhdGNoIHt9CiAgICAgICAgICAgIH0KICAgICAgICAg +ICAgdHJ5IHsgJFJlc3BvbnNlLkNsb3NlKCkgfSBjYXRjaCB7fQogICAgICAgICAgICBjb250aW51 +ZQogICAgICAgIH0KCiAgICAgICAgIyAtLS0gUE9TVCAvYXBpL3VwbG9hZD9wYXRoPW1lZGlhL0Qw +MDEvYmlsZC5wbmcgLS0tCiAgICAgICAgIyBBa3plcHRpZXJ0IHJvaGUgQnl0ZXMgdW5kIG11bHRp +cGFydC9mb3JtLWRhdGEgKEZvcm1EYXRhKSBVcGxvYWRzLgogICAgICAgICMgTnVyIHNpY2hlcmUg +TWVkaWVuZm9ybWF0ZSBlcmxhdWJ0IChCaWxkZXIsIFBERiwgVmlkZW8sIEF1ZGlvKS4KICAgICAg +ICBpZiAoJFVybFBhdGggLWVxICcvYXBpL3VwbG9hZCcgLWFuZCAkTWV0aG9kIC1lcSAnUE9TVCcp +IHsKICAgICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgICAgICMgUGZhZCBtYW51ZWxsIGF1cyBS +YXctVVJMIGV4dHJhaGllcmVuIHVuZCBVVEYtOCBkZWtvZGllcmVuCiAgICAgICAgICAgICAgICAj +IChRdWVyeVN0cmluZyB2ZXJ3ZW5kZXQgYXVmIG1hbmNoZW4gV2luZG93cy1TeXN0ZW1lbiBkaWUg +U3lzdGVtY29kZXBhZ2Ugc3RhdHQgVVRGLTgpCiAgICAgICAgICAgICAgICAkUmF3UXVlcnkgPSAk +UmVxdWVzdC5VcmwuUXVlcnkKICAgICAgICAgICAgICAgICRQYXRoTWF0Y2ggPSBbcmVnZXhdOjpN +YXRjaCgkUmF3UXVlcnksICdwYXRoPShbXiZdKyknKQogICAgICAgICAgICAgICAgaWYgKC1ub3Qg +JFBhdGhNYXRjaC5TdWNjZXNzKSB7CiAgICAgICAgICAgICAgICAgICAgU2VuZC1Kc29uICRSZXNw +b25zZSBAeyBlcnJvciA9ICJLZWluIHBhdGgtUGFyYW1ldGVyIiB9IDQwMAogICAgICAgICAgICAg +ICAgICAgICRSZXNwb25zZS5DbG9zZSgpCiAgICAgICAgICAgICAgICAgICAgY29udGludWUKICAg +ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICRSZWxQYXRoID0gW1N5c3RlbS5VcmldOjpV +bmVzY2FwZURhdGFTdHJpbmcoJFBhdGhNYXRjaC5Hcm91cHNbMV0uVmFsdWUpCgogICAgICAgICAg +ICAgICAgIyBEYXRlaXR5cC1XaGl0ZWxpc3Q6IE51ciBzaWNoZXJlIE1lZGllbmZvcm1hdGUgZXJs +YXViZW4KICAgICAgICAgICAgICAgICRVcGxvYWRFeHQgPSBbSU8uUGF0aF06OkdldEV4dGVuc2lv +bigkUmVsUGF0aCkuVG9Mb3dlcigpCiAgICAgICAgICAgICAgICAkQWxsb3dlZFVwbG9hZEV4dHMg +PSBAKCcuanBnJywnLmpwZWcnLCcucG5nJywnLmdpZicsJy53ZWJwJywnLnN2ZycsJy5pY28nLCcu +Ym1wJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJy5wZGYnLCcubXA0 +JywnLndlYm0nLCcubXAzJywnLm9nZycsJy53YXYnKQogICAgICAgICAgICAgICAgaWYgKCRVcGxv +YWRFeHQgLW5vdGluICRBbGxvd2VkVXBsb2FkRXh0cykgewogICAgICAgICAgICAgICAgICAgIFNl +bmQtSnNvbiAkUmVzcG9uc2UgQHsgZXJyb3IgPSAiRGF0ZWl0eXAgJyRVcGxvYWRFeHQnIGlzdCBu +aWNodCBlcmxhdWJ0LiBFcmxhdWJ0OiBCaWxkZXIsIFBERiwgVmlkZW8sIEF1ZGlvLiIgfSA0MDAK +ICAgICAgICAgICAgICAgICAgICBXcml0ZS1Ib3N0ICIgIEVSUiAgUE9TVCAvYXBpL3VwbG9hZCAg +RGF0ZWl0eXAgYWJnZWxlaG50OiAkVXBsb2FkRXh0ICgkUmVsUGF0aCkiIC1Gb3JlZ3JvdW5kQ29s +b3IgUmVkCiAgICAgICAgICAgICAgICAgICAgJFJlc3BvbnNlLkNsb3NlKCkKICAgICAgICAgICAg +ICAgICAgICBjb250aW51ZQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICRTYWZl +UGF0aCA9IFJlc29sdmUtU2FmZVBhdGggJFJlbFBhdGgKCiAgICAgICAgICAgICAgICBpZiAoLW5v +dCAkU2FmZVBhdGgpIHsKICAgICAgICAgICAgICAgICAgICBTZW5kLUpzb24gJFJlc3BvbnNlIEB7 +IGVycm9yID0gIlVuZ3VlbHRpZ2VyIFBmYWQiIH0gNDAwCiAgICAgICAgICAgICAgICB9IGVsc2Ug +ewogICAgICAgICAgICAgICAgICAgICMgT3JkbmVyIGVyc3RlbGxlbgogICAgICAgICAgICAgICAg +ICAgICREaXIgPSBbSU8uUGF0aF06OkdldERpcmVjdG9yeU5hbWUoJFNhZmVQYXRoKQogICAgICAg +ICAgICAgICAgICAgIGlmICgtbm90IChUZXN0LVBhdGggJERpcikpIHsgTmV3LUl0ZW0gLUl0ZW1U +eXBlIERpcmVjdG9yeSAtUGF0aCAkRGlyIC1Gb3JjZSB8IE91dC1OdWxsIH0KCiAgICAgICAgICAg +ICAgICAgICAgIyBCb2R5IGxlc2VuIChtYXguIDEwMCBNQikKICAgICAgICAgICAgICAgICAgICAk +TWF4VXBsb2FkQnl0ZXMgPSAxMDAgKiAxMDI0ICogMTAyNAogICAgICAgICAgICAgICAgICAgICRN +ZW1TdHJlYW0gPSBOZXctT2JqZWN0IElPLk1lbW9yeVN0cmVhbQogICAgICAgICAgICAgICAgICAg +ICRSZXF1ZXN0LklucHV0U3RyZWFtLkNvcHlUbygkTWVtU3RyZWFtKQogICAgICAgICAgICAgICAg +ICAgICRSYXdCeXRlcyA9ICRNZW1TdHJlYW0uVG9BcnJheSgpCiAgICAgICAgICAgICAgICAgICAg +JE1lbVN0cmVhbS5EaXNwb3NlKCkKCiAgICAgICAgICAgICAgICAgICAgaWYgKCRSYXdCeXRlcy5M +ZW5ndGggLWd0ICRNYXhVcGxvYWRCeXRlcykgewogICAgICAgICAgICAgICAgICAgICAgICBTZW5k +LUpzb24gJFJlc3BvbnNlIEB7IGVycm9yID0gIkRhdGVpIHp1IGdyb3NzIChtYXguIDEwMCBNQiki +IH0gNDEzCiAgICAgICAgICAgICAgICAgICAgICAgIFdyaXRlLUhvc3QgIiAgRVJSICBQT1NUIC9h +cGkvdXBsb2FkICBadSBncm9zczogJCgkUmF3Qnl0ZXMuTGVuZ3RoKSBCeXRlcyAoJFJlbFBhdGgp +IiAtRm9yZWdyb3VuZENvbG9yIFJlZAogICAgICAgICAgICAgICAgICAgICAgICAkUmVzcG9uc2Uu +Q2xvc2UoKQogICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZQogICAgICAgICAgICAgICAg +ICAgIH0KCiAgICAgICAgICAgICAgICAgICAgIyBNdWx0aXBhcnQvZm9ybS1kYXRhOiBEYXRlaS1C +eXRlcyBhdXMgQm9keSBleHRyYWhpZXJlbgogICAgICAgICAgICAgICAgICAgICRDVCA9ICRSZXF1 +ZXN0LkNvbnRlbnRUeXBlCiAgICAgICAgICAgICAgICAgICAgaWYgKCRDVCAtYW5kICRDVC5Db250 +YWlucygnbXVsdGlwYXJ0L2Zvcm0tZGF0YScpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICRC +b3VuZGFyeU1hdGNoID0gW3JlZ2V4XTo6TWF0Y2goJENULCAnYm91bmRhcnk9KC4rKScpCiAgICAg +ICAgICAgICAgICAgICAgICAgIGlmICgkQm91bmRhcnlNYXRjaC5TdWNjZXNzKSB7CiAgICAgICAg +ICAgICAgICAgICAgICAgICAgICAkQm91bmRhcnkgPSBbVGV4dC5FbmNvZGluZ106OlVURjguR2V0 +Qnl0ZXMoJy0tJyArICRCb3VuZGFyeU1hdGNoLkdyb3Vwc1sxXS5WYWx1ZS5UcmltKCciJykpCiAg +ICAgICAgICAgICAgICAgICAgICAgICAgICAjIERhdGVpLVBhcnQgZmluZGVuOiBzdWNoZSBuYWNo +ICJmaWxlbmFtZT0iIGltIEhlYWRlciwgZXh0cmFoaWVyZSBEYXRlbiBuYWNoIFxyXG5cclxuCiAg +ICAgICAgICAgICAgICAgICAgICAgICAgICAkUmF3ID0gJFJhd0J5dGVzCiAgICAgICAgICAgICAg +ICAgICAgICAgICAgICAkTmVlZGxlID0gW1RleHQuRW5jb2RpbmddOjpVVEY4LkdldEJ5dGVzKCdm +aWxlbmFtZT0nKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJEhlYWRlckVuZCA9IFtUZXh0 +LkVuY29kaW5nXTo6VVRGOC5HZXRCeXRlcyhbY2hhcl0xMyArIFtjaGFyXTEwICsgW2NoYXJdMTMg +KyBbY2hhcl0xMCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgRWluZmFjaGVyIEFuc2F0 +ejogS29udmVydGllcmUgenUgU3RyaW5nLCBmaW5kZSBPZmZzZXRzCiAgICAgICAgICAgICAgICAg +ICAgICAgICAgICAkUmF3U3RyID0gW1RleHQuRW5jb2RpbmddOjpHZXRFbmNvZGluZygnaXNvLTg4 +NTktMScpLkdldFN0cmluZygkUmF3KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJEZuUG9z +ID0gJFJhd1N0ci5JbmRleE9mKCdmaWxlbmFtZT0nKQogICAgICAgICAgICAgICAgICAgICAgICAg +ICAgaWYgKCRGblBvcyAtZ2UgMCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRE +YXRhU3RhcnQgPSAkUmF3U3RyLkluZGV4T2YoKFtjaGFyXTEzKS5Ub1N0cmluZygpICsgKFtjaGFy +XTEwKS5Ub1N0cmluZygpICsgKFtjaGFyXTEzKS5Ub1N0cmluZygpICsgKFtjaGFyXTEwKS5Ub1N0 +cmluZygpLCAkRm5Qb3MpICsgNAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgRW5k +ZTogbmFlY2hzdGUgQm91bmRhcnkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkQm91 +bmRhcnlTdHIgPSBbVGV4dC5FbmNvZGluZ106OkdldEVuY29kaW5nKCdpc28tODg1OS0xJykuR2V0 +U3RyaW5nKCRCb3VuZGFyeSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkRGF0YUVu +ZCA9ICRSYXdTdHIuSW5kZXhPZigkQm91bmRhcnlTdHIsICREYXRhU3RhcnQpCiAgICAgICAgICAg +ICAgICAgICAgICAgICAgICAgICAgaWYgKCREYXRhRW5kIC1ndCAkRGF0YVN0YXJ0KSB7CiAgICAg +ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgRW50ZmVybmUgXHJcbiB2b3IgZGVyIEJv +dW5kYXJ5CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkRGF0YUVuZCAt +Z2UgMiAtYW5kICRSYXdTdHIuU3Vic3RyaW5nKCREYXRhRW5kIC0gMiwgMikgLWVxIChbY2hhcl0x +MykuVG9TdHJpbmcoKSArIChbY2hhcl0xMCkuVG9TdHJpbmcoKSkgewogICAgICAgICAgICAgICAg +ICAgICAgICAgICAgICAgICAgICAgICAgJERhdGFFbmQgLT0gMgogICAgICAgICAgICAgICAgICAg +ICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRS +YXdCeXRlcyA9ICRSYXdbJERhdGFTdGFydC4uKCREYXRhRW5kIC0gMSldCiAgICAgICAgICAgICAg +ICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAg +ICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAg +ICAgICAjIFNjaHJlaWJzY2h1dHogYXVmaGViZW4sIERhdGVpIHNjaHJlaWJlbiwgU2NocmVpYnNj +aHV0eiBzZXR6ZW4KICAgICAgICAgICAgICAgICAgICBVbnByb3RlY3QtRmlsZSAkU2FmZVBhdGgK +ICAgICAgICAgICAgICAgICAgICBbSU8uRmlsZV06OldyaXRlQWxsQnl0ZXMoJFNhZmVQYXRoLCAk +UmF3Qnl0ZXMpCiAgICAgICAgICAgICAgICAgICAgUHJvdGVjdC1GaWxlICRTYWZlUGF0aAoKICAg +ICAgICAgICAgICAgICAgICBTZW5kLUpzb24gJFJlc3BvbnNlIEB7IG9rID0gJHRydWU7IHBhdGgg +PSAkUmVsUGF0aCB9CiAgICAgICAgICAgICAgICAgICAgV3JpdGUtSG9zdCAiICBBUEkgIFBPU1Qg +L2FwaS91cGxvYWQgICRSZWxQYXRoICgkKCRSYXdCeXRlcy5MZW5ndGgpIEJ5dGVzKSIgLUZvcmVn +cm91bmRDb2xvciBHcmVlbgogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9IGNhdGNoIHsK +ICAgICAgICAgICAgICAgIFdyaXRlLUhvc3QgIiAgRVJSICBQT1NUIC9hcGkvdXBsb2FkICAkKCRf +LkV4Y2VwdGlvbi5NZXNzYWdlKSIgLUZvcmVncm91bmRDb2xvciBSZWQKICAgICAgICAgICAgICAg +IHRyeSB7IFNlbmQtSnNvbiAkUmVzcG9uc2UgQHsgZXJyb3IgPSAkXy5FeGNlcHRpb24uTWVzc2Fn +ZSB9IDUwMCB9IGNhdGNoIHt9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgdHJ5IHsgJFJlc3Bv +bnNlLkNsb3NlKCkgfSBjYXRjaCB7fQogICAgICAgICAgICBjb250aW51ZQogICAgICAgIH0KCiAg +ICAgICAgIyAtLS0gUE9TVCAvYXBpL3NodXRkb3duIC0tLQogICAgICAgICMgV2lyZCB2b24gYmVm +b3JldW5sb2FkIGdlc2VuZGV0IChUYWItQ2xvc2UgT0RFUiBGNS1SZWZyZXNoKS4KICAgICAgICAj +IFN0YXJ0ZXQgZWluZSBHbmFkZW5mcmlzdCBzdGF0dCBzb2ZvcnRpZ2VtIFNodXRkb3duLgogICAg +ICAgICMgQmVpIEY1L1JlZnJlc2gga29tbXQgaW5uZXJoYWxiIHZvbiA1cyBlaW4gbmV1ZXIgSGVh +cnRiZWF0IHVuZCBicmljaHQgYWIuCiAgICAgICAgIyBCZWkgZWNodGVtIFRhYi1DbG9zZSBrb21t +dCBrZWluIEhlYXJ0YmVhdCAtPiBTZXJ2ZXIgYmVlbmRldCBzaWNoIG5hY2ggR25hZGVuZnJpc3Qu +CiAgICAgICAgaWYgKCRVcmxQYXRoIC1lcSAnL2FwaS9zaHV0ZG93bicgLWFuZCAkTWV0aG9kIC1l +cSAnUE9TVCcpIHsKICAgICAgICAgICAgU2VuZC1Kc29uICRSZXNwb25zZSBAeyBvayA9ICR0cnVl +IH0KICAgICAgICAgICAgdHJ5IHsgJFJlc3BvbnNlLkNsb3NlKCkgfSBjYXRjaCB7fQogICAgICAg +ICAgICAkc2NyaXB0OlNodXRkb3duUGVuZGluZyA9IEdldC1EYXRlCiAgICAgICAgICAgIFdyaXRl +LUhvc3QgIiAgUE9TVCAvYXBpL3NodXRkb3duIC0gR25hZGVuZnJpc3QgZ2VzdGFydGV0ICgkKCRz +Y3JpcHQ6U2h1dGRvd25HcmFjZVNlYylzLCB3aXJkIGJlaSBIZWFydGJlYXQgYWJnZWJyb2NoZW4p +IiAtRm9yZWdyb3VuZENvbG9yIFllbGxvdwogICAgICAgICAgICBjb250aW51ZQogICAgICAgIH0K +CiAgICAgICAgIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 +PT09PT09PT09PT09PT09CiAgICAgICAgIyBTdGF0aXNjaGUgRGF0ZWllbiAobWl0IENhY2hlIGZ1 +ZXIgaGFldWZpZyBnZWxhZGVuZSBEYXRlaWVuKQogICAgICAgICMgPT09PT09PT09PT09PT09PT09 +PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKICAgICAgICBpZiAo +JFVybFBhdGggLWVxICcvJykgeyAkVXJsUGF0aCA9ICcvaW5kZXguaHRtbCcgfQogICAgICAgICRV +cmxQYXRoID0gW1N5c3RlbS5VcmldOjpVbmVzY2FwZURhdGFTdHJpbmcoJFVybFBhdGgpCiAgICAg +ICAgIyBQYXRoLVRyYXZlcnNhbC1TY2h1dHo6IFJlc29sdmUtU2FmZVBhdGggcHJ1ZWZ0IENvbnRh +aW5tZW50IGltIFJvb3QtVmVyemVpY2huaXMKICAgICAgICAkRmlsZVBhdGggPSBSZXNvbHZlLVNh +ZmVQYXRoICgkVXJsUGF0aC5UcmltU3RhcnQoJy8nKSkKCiAgICAgICAgdHJ5IHsKICAgICAgICAg +ICAgaWYgKCRGaWxlUGF0aCAtYW5kIChUZXN0LVBhdGggJEZpbGVQYXRoIC1QYXRoVHlwZSBMZWFm +KSkgewogICAgICAgICAgICAgICAgJEV4dGVuc2lvbiA9IFtJTy5QYXRoXTo6R2V0RXh0ZW5zaW9u +KCRGaWxlUGF0aCkuVG9Mb3dlcigpCiAgICAgICAgICAgICAgICAkQ29udGVudFR5cGUgPSAkTWlt +ZVR5cGVzWyRFeHRlbnNpb25dCiAgICAgICAgICAgICAgICBpZiAoLW5vdCAkQ29udGVudFR5cGUp +IHsgJENvbnRlbnRUeXBlID0gJ2FwcGxpY2F0aW9uL29jdGV0LXN0cmVhbScgfQoKICAgICAgICAg +ICAgICAgICRSZXNwb25zZS5Db250ZW50VHlwZSA9ICRDb250ZW50VHlwZQogICAgICAgICAgICAg +ICAgJFJlc3BvbnNlLlN0YXR1c0NvZGUgPSAyMDAKICAgICAgICAgICAgICAgIEFkZC1TZWN1cml0 +eUhlYWRlcnMgJFJlc3BvbnNlCgogICAgICAgICAgICAgICAgIyBDYWNoZSBmdWVyIHN0YXRpc2No +ZSBEYXRlaWVuIChpbmRleC5odG1sLCBDU1MsIEpTLCBKU09OKQogICAgICAgICAgICAgICAgJEJ5 +dGVzID0gJG51bGwKICAgICAgICAgICAgICAgICRGaWxlTGFzdFdyaXRlID0gKEdldC1JdGVtICRG +aWxlUGF0aCAtRm9yY2UpLkxhc3RXcml0ZVRpbWVVdGMKICAgICAgICAgICAgICAgIGlmICgkc2Ny +aXB0OlN0YXRpY0NhY2hlLkNvbnRhaW5zS2V5KCRGaWxlUGF0aCkpIHsKICAgICAgICAgICAgICAg +ICAgICAkY2FjaGVkID0gJHNjcmlwdDpTdGF0aWNDYWNoZVskRmlsZVBhdGhdCiAgICAgICAgICAg +ICAgICAgICAgaWYgKCRjYWNoZWQuTW9kaWZpZWQgLWdlICRGaWxlTGFzdFdyaXRlKSB7CiAgICAg +ICAgICAgICAgICAgICAgICAgICRCeXRlcyA9ICRjYWNoZWQuQnl0ZXMKICAgICAgICAgICAgICAg +ICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBpZiAoLW5vdCAkQnl0ZXMp +IHsKICAgICAgICAgICAgICAgICAgICAkQnl0ZXMgPSBbSU8uRmlsZV06OlJlYWRBbGxCeXRlcygk +RmlsZVBhdGgpCiAgICAgICAgICAgICAgICAgICAgaWYgKCRFeHRlbnNpb24gLW1hdGNoICdeXC4o +aHRtbHxjc3N8anN8anNvbnxzdmd8aWNvKSQnKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICRz +Y3JpcHQ6U3RhdGljQ2FjaGVbJEZpbGVQYXRoXSA9IEB7IEJ5dGVzID0gJEJ5dGVzOyBNb2RpZmll +ZCA9ICRGaWxlTGFzdFdyaXRlIH0KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg +ICB9CiAgICAgICAgICAgICAgICAkUmVzcG9uc2UuQ29udGVudExlbmd0aDY0ID0gJEJ5dGVzLkxl +bmd0aAogICAgICAgICAgICAgICAgJFJlc3BvbnNlLk91dHB1dFN0cmVhbS5Xcml0ZSgkQnl0ZXMs +IDAsICRCeXRlcy5MZW5ndGgpCiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAk +UmVzcG9uc2UuU3RhdHVzQ29kZSA9IDQwNAogICAgICAgICAgICAgICAgJE5vdEZvdW5kID0gW1Rl +eHQuRW5jb2RpbmddOjpVVEY4LkdldEJ5dGVzKCI0MDQgLSBEYXRlaSBuaWNodCBnZWZ1bmRlbjog +JFVybFBhdGgiKQogICAgICAgICAgICAgICAgJFJlc3BvbnNlLkNvbnRlbnRUeXBlID0gJ3RleHQv +cGxhaW47IGNoYXJzZXQ9dXRmLTgnCiAgICAgICAgICAgICAgICAkUmVzcG9uc2UuQ29udGVudExl +bmd0aDY0ID0gJE5vdEZvdW5kLkxlbmd0aAogICAgICAgICAgICAgICAgJFJlc3BvbnNlLk91dHB1 +dFN0cmVhbS5Xcml0ZSgkTm90Rm91bmQsIDAsICROb3RGb3VuZC5MZW5ndGgpCiAgICAgICAgICAg +ICAgICBXcml0ZS1Ib3N0ICIgIDQwNCAgJFVybFBhdGgiIC1Gb3JlZ3JvdW5kQ29sb3IgUmVkCiAg +ICAgICAgICAgIH0KICAgICAgICB9IGNhdGNoIHsKICAgICAgICAgICAgV3JpdGUtSG9zdCAiICBF +UlIgIERhdGVpICRVcmxQYXRoICAkKCRfLkV4Y2VwdGlvbi5NZXNzYWdlKSIgLUZvcmVncm91bmRD +b2xvciBSZWQKICAgICAgICB9CiAgICAgICAgdHJ5IHsgJFJlc3BvbnNlLkNsb3NlKCkgfSBjYXRj +aCB7fQogICAgfQp9IGNhdGNoIHsKICAgICMgU3RyZytDIG9kZXIgRmVobGVyCn0gZmluYWxseSB7 +CiAgICAkTGlzdGVuZXIuU3RvcCgpCgogICAgIyBTY2hyZWlic2NodXR6IGJlaW0gQmVlbmRlbiB3 +aWVkZXIgc2V0emVuCiAgICBXcml0ZS1Ib3N0ICIgIFNjaHJlaWJzY2h1dHogd2lyZCB3aWVkZXJo +ZXJnZXN0ZWxsdC4uLiIgLUZvcmVncm91bmRDb2xvciBHcmF5CiAgICBHZXQtQ2hpbGRJdGVtICIk +Um9vdFxkYXRhIiAtUmVjdXJzZSAtRmlsdGVyICIqLmpzb24iIC1FcnJvckFjdGlvbiBTaWxlbnRs +eUNvbnRpbnVlIHwgRm9yRWFjaC1PYmplY3QgeyBQcm90ZWN0LUZpbGUgJF8uRnVsbE5hbWUgfQog +ICAgUHJvdGVjdC1GaWxlIChKb2luLVBhdGggJFJvb3QgImluZGV4Lmh0bWwiKQoKICAgICMgTG9r +YWxlIFRFTVAtS29waWUgYXVmcmFldW1lbiAodmVyaGluZGVydCB2ZXJ3YWlzdGUgRGF0ZWllbikK +ICAgICRUZW1wRGlyID0gSm9pbi1QYXRoICRlbnY6VEVNUCAiRFJJVkVfU2VydmVyIgogICAgaWYg +KFRlc3QtUGF0aCAkVGVtcERpcikgewogICAgICAgIFJlbW92ZS1JdGVtICRUZW1wRGlyIC1SZWN1 +cnNlIC1Gb3JjZSAtRXJyb3JBY3Rpb24gU2lsZW50bHlDb250aW51ZQogICAgICAgIFdyaXRlLUhv +c3QgIiAgVEVNUC1Lb3BpZSBiZXJlaW5pZ3QuIiAtRm9yZWdyb3VuZENvbG9yIEdyYXkKICAgIH0K +CiAgICBXcml0ZS1Ib3N0ICIiCiAgICBXcml0ZS1Ib3N0ICJTZXJ2ZXIgYmVlbmRldC4iIC1Gb3Jl +Z3JvdW5kQ29sb3IgWWVsbG93Cn0K diff --git a/DRIVE/sync-entpacken.bat b/DRIVE/sync-entpacken.bat new file mode 100644 index 0000000..0c99566 --- /dev/null +++ b/DRIVE/sync-entpacken.bat @@ -0,0 +1,48 @@ +@echo off +setlocal +set "BDIR=%~dp0" +echo. +echo === D.R.I.V.E.: Code aktualisieren === +echo. +powershell -NoProfile -ExecutionPolicy Bypass -Command "$m='### PS'+'CODE ###';$me=[IO.File]::ReadAllText('%~f0');$p=$me.IndexOf($m);$nl=$me.IndexOf([char]10,$p);Invoke-Expression $me.Substring($nl+1)" +echo. +pause +exit /b +### PSCODE ### +$ErrorActionPreference = 'Stop' +$here = $env:BDIR +$root = Split-Path -Parent ($here.TrimEnd('\')) +if (-not (Test-Path -LiteralPath (Join-Path $root 'index.html'))) { + Write-Host ('FEHLER: ' + $root + ' ist nicht die App-Wurzel.') -ForegroundColor Red; return +} +Write-Host ('Ziel: ' + $root) +$bundles = Get-ChildItem -LiteralPath $here -Filter 'sync-bundle-*.txt' | Sort-Object Name +if (-not $bundles) { Write-Host 'FEHLER: keine sync-bundle-*.txt gefunden.' -ForegroundColor Red; return } +$flush = { + param($d, $rel, $expLen, $b64) + if (-not $rel) { return $null } + $bytes = [Convert]::FromBase64String($b64) + $full = Join-Path $d ($rel -replace '/', '\') + $pd = Split-Path -Parent $full + if (-not (Test-Path -LiteralPath $pd)) { New-Item -ItemType Directory -Path $pd -Force | Out-Null } + [IO.File]::WriteAllBytes($full, $bytes) + return ($bytes.Length -eq $expLen) +} +$ok = 0; $bad = 0; $rel = $null; $expLen = 0; $sb = New-Object System.Text.StringBuilder +foreach ($b in $bundles) { + Write-Host ('-> ' + $b.Name) + foreach ($line in [IO.File]::ReadAllLines($b.FullName)) { + if ($line.StartsWith('### FILE: ')) { + $r = & $flush $root $rel $expLen $sb.ToString() + if ($r -eq $true) { $ok++ } elseif ($r -eq $false) { $bad++ } + $meta = $line.Substring(10); $k = $meta.LastIndexOf(' | ') + $rel = $meta.Substring(0, $k); $expLen = [int]$meta.Substring($k + 3); $sb = New-Object System.Text.StringBuilder + } elseif ($line.StartsWith('###')) { continue } + elseif ($line.Length -gt 0) { [void]$sb.Append($line) } + } +} +$r = & $flush $root $rel $expLen $sb.ToString() +if ($r -eq $true) { $ok++ } elseif ($r -eq $false) { $bad++ } +Write-Host '' +if ($bad -eq 0) { Write-Host ('FERTIG: ' + $ok + ' Dateien.') -ForegroundColor Green } +else { Write-Host ('FERTIG: ' + $ok + ' ok, ' + $bad + ' Fehler.') -ForegroundColor Yellow }